
From infinity@lindenlab.com  Mon Jun  1 02:42:17 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BC3833A6DB0 for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 02:42:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.623
X-Spam-Level: 
X-Spam-Status: No, score=0.623 tagged_above=-999 required=5 tests=[BAYES_50=0.001, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GFPqecbKCyEq for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 02:42:16 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.243]) by core3.amsl.com (Postfix) with ESMTP id D470D3A6E96 for <ogpx@ietf.org>; Mon,  1 Jun 2009 02:42:11 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so5513308ana.4 for <ogpx@ietf.org>; Mon, 01 Jun 2009 02:42:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.46.3 with SMTP id t3mr6785053ant.94.1243849329484; Mon, 01  Jun 2009 02:42:09 -0700 (PDT)
Date: Mon, 1 Jun 2009 02:42:09 -0700
Message-ID: <3a880e2c0906010242q5ac85944v716cda01ae47459c@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: "ogpx@ietf.org" <ogpx@ietf.org>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Subject: [ogpx] Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2009 09:42:17 -0000

The Open Grid Protocol (OGP) is an open protocol used to carry
information about virtual worlds applications. [1] A key element of
OGP state transitions is the use of HTTP(S) to transport serialized
LLSD dynamic structured data. [2] OGP makes extensive use of
cryptographically unguessable web URLs as capabilities to address
RESTful application resources. [3] Before the client is provided the
address of these capabilities, the client application must
authenticate themselves to the server, demonstrating the client has
authority to access the resource. [4] OGP identifies three modes of
authorization:

	=95	authorization following user authentication
	=95	authorization following successful negotiation of a TLS session
with a client certificate
	=95	authorization following presentation of a recognized OAuth token [5]

Following successful authorization, a capability exposing a RESTful
interface to the server's application state is provided to the client.
The client application may then access the capability as a protocol
endpoint, sending and receiving appropriate data. The process of
authenticating the client, determining if it's authorized and then
granting an appropriate capability is part of the "OGP service
establishment pattern."

Services in OGP

For the most part, OGP does not define "services" as much as it
defines "restful resources". [6] Community input seems to indicate
many participants prefer to group functionally similar resources into
"services." It should be noted however, the use of "resources" as the
fundamental atom of interoperability will likely continue, though
systems that support all the resources defined under a given "service"
may be said to support not only the resources, but that named service
as well. In other words, users of OGP should take special care when
they say they implement a "service" as it implies that they support
each resource defined in that service. Still, collecting resources
into services is a convenient shorthand for describing related
resources. caveat emptor.

Service Establishment

The inputs to service establishment are the URL of a service
establishment protocol endpoint and a credential of some form. The
output is a seed capability from which the client application may
request resources related to the service. Currently defined
credentials include:

	=95	a username / password pair
	=95	a client certificate recognized by the domain administering the
host serving the service establishment URL
	=95	a valid OAuth token

After the client is identified and the request authenticated, the
client is given a seed capability from which it requests further
capabilities.

In Other Words...

The client application needs a collection of capabilities to signal
the server that it wants to do things (like put an avatar in a certain
location or rez an object in the virtual world or send an IM message,
etc.) Capabilities have the feature that they are "portable
authentication tokens" which combine a resource, a permission on a
resource and in many cases the identity of the requester. Possession
of a capability implies permission to access the resource (i.e. - you
don't send a username / password pair with the resource access
request.) Capabilities are unguessable URLs, a portion of which is
randomly generated.

The client application gets these capabilities by sending the "seed
capability" a list of capability names. If the server doesn't know how
about a particular named capability (say it's only a group IM server
and someone tries to ask it for a capability exposing an asset related
service), the server simply ignores that capability name. Also, if a
client application's user
is not authorized to access a certain service, it is again ignored.

The seed capability comes as the result of successful authentication.
The client must provide a valid username / password pair, client
certificate or OAuth token before the server will give it a seed
capability.

Service Establishment with a Username / Password Credential

This is the process currently described in the OGP : Auth document
[4]. It begins with the client posting an agent_login request to a
well known login URL. (note that this URL is properly termed a
"protocol endpoint" instead of a "capability" because it is well
known.) If the client is accessing this URL via HTTPS it SHOULD check
that the server's certificate is valid and trustworthy. OGP does not
define a list of valid root certificates for servers; this is left as
a configuration issue for deployers. Assuming the server certificate
is valid, the client posts the  username / password as described in
the OGP : Auth specification [4]. Assuming everything is in order, the
server returns a seed capability.

Service Establishment with a TLS Certificate

This manner of service establishment is intended to support
communication between different domains. (Remember, a domain is the
administrative authority that controls a collection of hosts.) The
"agent domain" is intended to be a trust broker; that is... on one
side there are a number of users who trust it and on the other is a
collection of service providers who trust it. Users are generally
authenticated by presenting a username and a shared secret (i.e. - a
password.) But two hosts in two different domains need a mechanism to
establish each other's identity. They could distribute a username and
password to each trusted service, but security concerns arise when all
hosts in a given domain are using the same credential and provisioning
a separate username / password pair for each host in a domain is
difficult to manage. The use of X.509 certificate chains provides a
manageable, yet secure alternative. [7]

The trust provided a network peer derives from an X.509 certificate in
the certificate chain presented by the peer. In the case of the
server, the client evaluates the trustworthiness of each certificate
in the server's chain. In the case of the client, the server requests
a client certificate and looks for a trusted certificate in the
client's chain. If either part decides they do not trust the other,
the connection is dropped.

Certificates in TLS frequently come in "chains". That is, the private
key associated with the public key in a trusted root self-signed
certificate is used to sign a subordinate certificate. That
subordinate certificate may be used to sign additional certificates.
In theory, a signing chain can be arbitrarily long, though in practice
short chains are the norm.

An OGP domain wishing to use TLS certificates for authentication must
first generate a "root certificate". Each peer domain that wishes to
interoperate must provide the original domain with a certificate
signing request (which includes the peer domain's identity and it's
public key.) Assuming the original domain trusts the peer domain, it
will sign the peer domain's public key and identity and provide the
peer with a signed peer-domain certificate. The peer domain may then
use the private key associated with the public key in it's peer-domain
certificate to sign server certificates for each of it's hosts.

Before trusting the peer, the consumer of the certificate chain
verifies that each of the following statements are true:

	=95	the top most certificate our domain's root
	=95	the next certificate in the chain has been issued to a trusted peer
	=95	(for clients) the subject name in the bottom certificate of the
chain correctly identifies the server
	=95	(for servers) the public key in the bottom certificate of the chain
correctly verifies the client as described in the ClientVerify section
of the TLS specification [8]

Service Establishment with an OAuth Token

OAuth is an emerging system used for authorization across domains. [9]
OAuth is appropriate in the OGP context when a host in one domain must
access a resource maintained in another. OAuth produces a request
specific token the peer may use to verify a requests authorization
without requiring the user's password. This is especially important
when accessing resources on systems which do not have an established
trust relationship. OAuth may be used in conjunction TLS; the OAuth
component is used to verify the user's intent while the TLS
certificate chain establishes the trust between domains.

The OAuth protocol concludes with a distant peer in possession of a
verifiable token used to demonstrate the user's intent. In OGP service
establishment, the protocol endpoint for this interaction is a well
known public endpoint used to authenticate OAuth tokens and return a
seed capability.

Conclusion

Establishing an authenticated, authorized connection between a client
and a server can be accomplished with several methods, depending on
context.

1. Open Grid Protocol : Introduction and Requirements (
http://tools.ietf.org/html/draft-hamrick-ogp-auth-00  )
2. LLSD Abstract Type System (
http://www.ietf.org/internet-drafts/draft-hamrick-llsd-00.txt )
3. Open Grid Protocol : Foundation, Section 2.3 (
http://www.ietf.org/internet-drafts/draft-lentczner-ogp-base-00.txt )
4. Open Grid Protocol : Authentication (
http://tools.ietf.org/html/draft-hamrick-ogp-auth-00 )
5. OAuth Core ( http://tools.ietf.org/html/draft-hammer-oauth-02 )
6. Architectural Styles and the Design of Network-based Software
Architectures (
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm )
7. Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile (
http://www.ietf.org/rfc/rfc5280.txt )
8. The Transport Layer Security (TLS) Protocol Version 1.2 (
http://tools.ietf.org/html/rfc5246#section-7.4.8 )
9. The OAuth Core Protocol ( http://tools.ietf.org/html/draft-hammer-oauth-=
02 )

From infinity@lindenlab.com  Mon Jun  1 02:49:51 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 92AD53A6DBC for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 02:49:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.067
X-Spam-Level: 
X-Spam-Status: No, score=0.067 tagged_above=-999 required=5 tests=[AWL=0.555,  BAYES_05=-1.11, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nFmcQS3A+H+r for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 02:49:51 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.244]) by core3.amsl.com (Postfix) with ESMTP id D31393A6E0D for <ogpx@ietf.org>; Mon,  1 Jun 2009 02:49:50 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so5514987ana.4 for <ogpx@ietf.org>; Mon, 01 Jun 2009 02:49:48 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.132.4 with SMTP id f4mr6863823and.109.1243849788918; Mon,  01 Jun 2009 02:49:48 -0700 (PDT)
Date: Mon, 1 Jun 2009 02:49:48 -0700
Message-ID: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: "ogpx@ietf.org" <ogpx@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: [ogpx] Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2009 09:49:51 -0000

whoops... that last message went out without context...

i've been talking with John Hurliman about OAuth and David Lavine
regarding X.509, and at some point it made sense to abstract the three
different authentication / authorization schemes into a single
"service establishment pattern." The message I just sent out really
describes only the mechanism (and only enough mechanism to understand
the concept.) over the next couple of weeks, i'd like to add some more
detail to this and integrate it into the OGP : Authentication
document. So feedback will definitely be welcomed.

to recap:

* there are three different types of authentication / authorization:
password, X.509 and OAuth
* password auth is appropriate for user -> server authentication
* X.509 is appropriate for server <-> server authentication, and
* OAuth is appropriate for server -> distant peer (whom you may not
have an explicit trust relationship with.)
* in all cases, you start with an authenticator (a password, a
certificate or a token) and by presenting it to a server at a well
defined service establishment URL, you'll get a seed cap back
* with that seed cap, you can request those specific capabilities you require

more details and examples forthcoming.

-cheers
-meadhbh

From john.hurliman@intel.com  Mon Jun  1 10:44:05 2009
Return-Path: <john.hurliman@intel.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 986BF3A6AED for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 10:44:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P9ctzttHTBN4 for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 10:44:04 -0700 (PDT)
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by core3.amsl.com (Postfix) with ESMTP id 89BBC3A67EF for <ogpx@ietf.org>; Mon,  1 Jun 2009 10:44:04 -0700 (PDT)
Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 01 Jun 2009 10:35:57 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.41,285,1241420400"; d="scan'208";a="417814621"
Received: from rrsmsx603.amr.corp.intel.com ([10.31.0.57]) by orsmga002.jf.intel.com with ESMTP; 01 Jun 2009 10:51:32 -0700
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx603.amr.corp.intel.com ([10.31.0.57]) with mapi; Mon, 1 Jun 2009 11:44:01 -0600
From: "Hurliman, John" <john.hurliman@intel.com>
To: Infinity Linden <infinity@lindenlab.com>, "ogpx@ietf.org" <ogpx@ietf.org>
Date: Mon, 1 Jun 2009 11:43:58 -0600
Thread-Topic: [ogpx] Context for Service Establishment in OGP
Thread-Index: AcninlH76EaPwbBWTbGp1NRsgoNMGwAQf8og
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D90EA7AC2@rrsmsx506.amr.corp.intel.com>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com>
In-Reply-To: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [ogpx] Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2009 17:44:05 -0000

Great to see these ideas written down and being refined. I'm eager to see t=
he client cert + OAuth example.

John

> -----Original Message-----
> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On Behalf=20
> Of Infinity Linden
> Sent: Monday, June 01, 2009 2:50 AM
> To: ogpx@ietf.org
> Subject: [ogpx] Context for Service Establishment in OGP
>=20
> whoops... that last message went out without context...
>=20
> i've been talking with John Hurliman about OAuth and David Lavine
> regarding X.509, and at some point it made sense to abstract the three
> different authentication / authorization schemes into a single "service
> establishment pattern." The message I just sent out really describes
> only the mechanism (and only enough mechanism to understand the
> concept.) over the next couple of weeks, i'd like to add some more
> detail to this and integrate it into the OGP : Authentication document.
> So feedback will definitely be welcomed.
>=20
> to recap:
>=20
> * there are three different types of authentication / authorization:
> password, X.509 and OAuth * password auth is appropriate for user ->
> server authentication * X.509 is appropriate for server <-> server
> authentication, and * OAuth is appropriate for server -> distant peer
> (whom you may not have an explicit trust relationship with.) * in all
> cases, you start with an authenticator (a password, a certificate or a
> token) and by presenting it to a server at a well defined service
> establishment URL, you'll get a seed cap back * with that seed cap, you
> can request those specific capabilities you require
>=20
> more details and examples forthcoming.
>=20
> -cheers
> -meadhbh
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx

From infinity@lindenlab.com  Mon Jun  1 11:04:23 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0E4163A68B5 for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 11:04:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.955
X-Spam-Level: 
X-Spam-Status: No, score=-0.955 tagged_above=-999 required=5 tests=[AWL=1.022,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0g-8QRQajQ7q for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 11:04:22 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.243]) by core3.amsl.com (Postfix) with ESMTP id 1D85F3A682F for <ogpx@ietf.org>; Mon,  1 Jun 2009 11:04:22 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so5686002ana.4 for <ogpx@ietf.org>; Mon, 01 Jun 2009 11:04:20 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.47.10 with SMTP id u10mr7612804anu.17.1243879460636; Mon,  01 Jun 2009 11:04:20 -0700 (PDT)
In-Reply-To: <3a880e2c0906011103y2ad4482bh42a688eacb3876d7@mail.gmail.com>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D90EA7AC2@rrsmsx506.amr.corp.intel.com> <3a880e2c0906011103y2ad4482bh42a688eacb3876d7@mail.gmail.com>
Date: Mon, 1 Jun 2009 11:04:20 -0700
Message-ID: <3a880e2c0906011104l5969aedatc7b93e89a19f5aca@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: "ogpx@ietf.org" <ogpx@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: [ogpx] Fwd:  Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2009 18:04:23 -0000

whoops... sent "reply" instead of "reply to all"...


---------- Forwarded message ----------
From: Infinity Linden <infinity@lindenlab.com>
Date: Mon, Jun 1, 2009 at 11:03 AM
Subject: Re: [ogpx] Context for Service Establishment in OGP
To: "Hurliman, John" <john.hurliman@intel.com>


kk. david and i are threatening to just go off and hack OpenSim to
handle the X.509 client certiness. i think we're probably going to do
a few more rounds of thought experiments and documenting before we run
off and do that, though.

we might want to all three meet in world somewhere (with the agenda
and minutes of the meeting posted here so other interested peeps can
participate) and come up with a plan for merging your OAuth stuff with
the X.509 stuff we're doing.

in theory... at the end of this process, we'll have a document that
describes what we've been doing; what worked; what didn't. we then get
to add that to a draft somewhere and declare victory.

-cheers

On Mon, Jun 1, 2009 at 10:43 AM, Hurliman, John <john.hurliman@intel.com> wrote:
> Great to see these ideas written down and being refined. I'm eager to see the client cert + OAuth example.
>
> John
>
>> -----Original Message-----
>> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On Behalf
>> Of Infinity Linden
>> Sent: Monday, June 01, 2009 2:50 AM
>> To: ogpx@ietf.org
>> Subject: [ogpx] Context for Service Establishment in OGP
>>
>> whoops... that last message went out without context...
>>
>> i've been talking with John Hurliman about OAuth and David Lavine
>> regarding X.509, and at some point it made sense to abstract the three
>> different authentication / authorization schemes into a single "service
>> establishment pattern." The message I just sent out really describes
>> only the mechanism (and only enough mechanism to understand the
>> concept.) over the next couple of weeks, i'd like to add some more
>> detail to this and integrate it into the OGP : Authentication document.
>> So feedback will definitely be welcomed.
>>
>> to recap:
>>
>> * there are three different types of authentication / authorization:
>> password, X.509 and OAuth * password auth is appropriate for user ->
>> server authentication * X.509 is appropriate for server <-> server
>> authentication, and * OAuth is appropriate for server -> distant peer
>> (whom you may not have an explicit trust relationship with.) * in all
>> cases, you start with an authenticator (a password, a certificate or a
>> token) and by presenting it to a server at a well defined service
>> establishment URL, you'll get a seed cap back * with that seed cap, you
>> can request those specific capabilities you require
>>
>> more details and examples forthcoming.
>>
>> -cheers
>> -meadhbh
>> _______________________________________________
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>

From john.hurliman@intel.com  Mon Jun  1 11:09:40 2009
Return-Path: <john.hurliman@intel.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id CEABA3A6AB3 for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 11:09:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id i-h5Kga0TcmT for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 11:09:39 -0700 (PDT)
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by core3.amsl.com (Postfix) with ESMTP id E0AB53A6E55 for <ogpx@ietf.org>; Mon,  1 Jun 2009 11:09:37 -0700 (PDT)
Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP; 01 Jun 2009 10:58:40 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.41,285,1241420400"; d="scan'208";a="417826313"
Received: from rrsmsx604.amr.corp.intel.com ([10.31.0.170]) by orsmga002.jf.intel.com with ESMTP; 01 Jun 2009 11:17:07 -0700
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx604.amr.corp.intel.com ([10.31.0.170]) with mapi; Mon, 1 Jun 2009 12:09:38 -0600
From: "Hurliman, John" <john.hurliman@intel.com>
To: Infinity Linden <infinity@lindenlab.com>, "ogpx@ietf.org" <ogpx@ietf.org>
Date: Mon, 1 Jun 2009 12:09:34 -0600
Thread-Topic: [ogpx] Fwd:  Context for Service Establishment in OGP
Thread-Index: Acni420dz4vcpQD8SmGbyULEvP/lIwAAKlLQ
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D90EA7B13@rrsmsx506.amr.corp.intel.com>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D90EA7AC2@rrsmsx506.amr.corp.intel.com> <3a880e2c0906011103y2ad4482bh42a688eacb3876d7@mail.gmail.com> <3a880e2c0906011104l5969aedatc7b93e89a19f5aca@mail.gmail.com>
In-Reply-To: <3a880e2c0906011104l5969aedatc7b93e89a19f5aca@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [ogpx] Fwd:  Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2009 18:09:40 -0000

(I made the same mistake in response)

If it's of any use, I wrote a C# library called OpenMetaverse.Http that is =
capable of generating root certificates and signed client certificates that=
 can be fed into HttpWebRequest as an SSL client cert, plus some basic rout=
ines for doing the cert checks on the server. Right now it's only doing a v=
ery crude check to make sure the root certificate shows up somewhere in the=
 certificate chain of the client cert and that the chain is valid. No revoc=
ation checks or anything.

John

> -----Original Message-----
> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On Behalf=20
> Of Infinity Linden
> Sent: Monday, June 01, 2009 11:04 AM
> To: ogpx@ietf.org
> Subject: [ogpx] Fwd: Context for Service Establishment in OGP
>=20
> whoops... sent "reply" instead of "reply to all"...
>=20
>=20
> ---------- Forwarded message ----------
> From: Infinity Linden <infinity@lindenlab.com>
> Date: Mon, Jun 1, 2009 at 11:03 AM
> Subject: Re: [ogpx] Context for Service Establishment in OGP
> To: "Hurliman, John" <john.hurliman@intel.com>
>=20
>=20
> kk. david and i are threatening to just go off and hack OpenSim to
> handle the X.509 client certiness. i think we're probably going to do
> a few more rounds of thought experiments and documenting before we run
> off and do that, though.
>=20
> we might want to all three meet in world somewhere (with the agenda
> and minutes of the meeting posted here so other interested peeps can
> participate) and come up with a plan for merging your OAuth stuff with
> the X.509 stuff we're doing.
>=20
> in theory... at the end of this process, we'll have a document that
> describes what we've been doing; what worked; what didn't. we then get
> to add that to a draft somewhere and declare victory.
>=20
> -cheers
>=20
> On Mon, Jun 1, 2009 at 10:43 AM, Hurliman, John
> <john.hurliman@intel.com> wrote:
>> Great to see these ideas written down and being refined. I'm eager to
>> see the client cert + OAuth example.
>>=20
>> John
>>=20
>>> -----Original Message-----
>>> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On
>>> Behalf Of Infinity Linden
>>> Sent: Monday, June 01, 2009 2:50 AM
>>> To: ogpx@ietf.org
>>> Subject: [ogpx] Context for Service Establishment in OGP
>>>=20
>>> whoops... that last message went out without context...
>>>=20
>>> i've been talking with John Hurliman about OAuth and David Lavine
>>> regarding X.509, and at some point it made sense to abstract the three
>>> different authentication / authorization schemes into a single
>>> "service establishment pattern." The message I just sent out really
>>> describes only the mechanism (and only enough mechanism to understand
>>> the concept.) over the next couple of weeks, i'd like to add some more
>>> detail to this and integrate it into the OGP : Authentication
>>> document. So feedback will definitely be welcomed.
>>>=20
>>> to recap:
>>>=20
>>> * there are three different types of authentication / authorization:
>>> password, X.509 and OAuth * password auth is appropriate for user ->
>>> server authentication * X.509 is appropriate for server <-> server
>>> authentication, and * OAuth is appropriate for server -> distant peer
>>> (whom you may not have an explicit trust relationship with.) * in all
>>> cases, you start with an authenticator (a password, a certificate or a
>>> token) and by presenting it to a server at a well defined service
>>> establishment URL, you'll get a seed cap back * with that seed cap,
>>> you can request those specific capabilities you require
>>>=20
>>> more details and examples forthcoming.
>>>=20
>>> -cheers
>>> -meadhbh
>>> _______________________________________________
>>> ogpx mailing list
>>> ogpx@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ogpx
>> _______________________________________________
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
>>=20
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx

From infinity@lindenlab.com  Mon Jun  1 11:19:39 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EC86D3A6A74 for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 11:19:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.75
X-Spam-Level: 
X-Spam-Status: No, score=-0.75 tagged_above=-999 required=5 tests=[AWL=1.228,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qDnXC-FWaE4E for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 11:19:39 -0700 (PDT)
Received: from yw-out-2324.google.com (yw-out-2324.google.com [74.125.46.31]) by core3.amsl.com (Postfix) with ESMTP id E2DDA3A68AF for <ogpx@ietf.org>; Mon,  1 Jun 2009 11:19:38 -0700 (PDT)
Received: by yw-out-2324.google.com with SMTP id 3so7934960ywj.49 for <ogpx@ietf.org>; Mon, 01 Jun 2009 11:19:37 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.211.3 with SMTP id j3mr7786467ang.19.1243880377120; Mon,  01 Jun 2009 11:19:37 -0700 (PDT)
In-Reply-To: <62BFE5680C037E4DA0B0A08946C0933D90EA7B13@rrsmsx506.amr.corp.intel.com>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D90EA7AC2@rrsmsx506.amr.corp.intel.com> <3a880e2c0906011103y2ad4482bh42a688eacb3876d7@mail.gmail.com> <3a880e2c0906011104l5969aedatc7b93e89a19f5aca@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D90EA7B13@rrsmsx506.amr.corp.intel.com>
Date: Mon, 1 Jun 2009 11:19:36 -0700
Message-ID: <3a880e2c0906011119j2de54060vddcc75734ea1ebd2@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: "Hurliman, John" <john.hurliman@intel.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] Fwd: Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2009 18:19:40 -0000

cool. lemme go look at it. i think the one thing we're looking at
doing that's "allowed by pkix, x.509 and TLS; but not implemented by
many libraries" is the ability to do cert chain validation based on
the root AND an intermediate cert. i'm most familiar with OpenSSL that
allows you to define a callout for cert chain validation (but which is
a royal pain in the keester to implement). i'm assuming other stacks
have the ability to do similar callouts, and it sounds like you're
about 95% of the way there already.

hmm... lemme write down a few notes about where i think we're at with
the PKI stuff so peeps can see if it makes sense to them

-cheers
-m

On Mon, Jun 1, 2009 at 11:09 AM, Hurliman, John <john.hurliman@intel.com> w=
rote:
> (I made the same mistake in response)
>
> If it's of any use, I wrote a C# library called OpenMetaverse.Http that i=
s capable of generating root certificates and signed client certificates th=
at can be fed into HttpWebRequest as an SSL client cert, plus some basic ro=
utines for doing the cert checks on the server. Right now it's only doing a=
 very crude check to make sure the root certificate shows up somewhere in t=
he certificate chain of the client cert and that the chain is valid. No rev=
ocation checks or anything.
>
> John
>
>> -----Original Message-----
>> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On Behalf
>> Of Infinity Linden
>> Sent: Monday, June 01, 2009 11:04 AM
>> To: ogpx@ietf.org
>> Subject: [ogpx] Fwd: Context for Service Establishment in OGP
>>
>> whoops... sent "reply" instead of "reply to all"...
>>
>>
>> ---------- Forwarded message ----------
>> From: Infinity Linden <infinity@lindenlab.com>
>> Date: Mon, Jun 1, 2009 at 11:03 AM
>> Subject: Re: [ogpx] Context for Service Establishment in OGP
>> To: "Hurliman, John" <john.hurliman@intel.com>
>>
>>
>> kk. david and i are threatening to just go off and hack OpenSim to
>> handle the X.509 client certiness. i think we're probably going to do
>> a few more rounds of thought experiments and documenting before we run
>> off and do that, though.
>>
>> we might want to all three meet in world somewhere (with the agenda
>> and minutes of the meeting posted here so other interested peeps can
>> participate) and come up with a plan for merging your OAuth stuff with
>> the X.509 stuff we're doing.
>>
>> in theory... at the end of this process, we'll have a document that
>> describes what we've been doing; what worked; what didn't. we then get
>> to add that to a draft somewhere and declare victory.
>>
>> -cheers
>>
>> On Mon, Jun 1, 2009 at 10:43 AM, Hurliman, John
>> <john.hurliman@intel.com> wrote:
>>> Great to see these ideas written down and being refined. I'm eager to
>>> see the client cert + OAuth example.
>>>
>>> John
>>>
>>>> -----Original Message-----
>>>> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On
>>>> Behalf Of Infinity Linden
>>>> Sent: Monday, June 01, 2009 2:50 AM
>>>> To: ogpx@ietf.org
>>>> Subject: [ogpx] Context for Service Establishment in OGP
>>>>
>>>> whoops... that last message went out without context...
>>>>
>>>> i've been talking with John Hurliman about OAuth and David Lavine
>>>> regarding X.509, and at some point it made sense to abstract the three
>>>> different authentication / authorization schemes into a single
>>>> "service establishment pattern." The message I just sent out really
>>>> describes only the mechanism (and only enough mechanism to understand
>>>> the concept.) over the next couple of weeks, i'd like to add some more
>>>> detail to this and integrate it into the OGP : Authentication
>>>> document. So feedback will definitely be welcomed.
>>>>
>>>> to recap:
>>>>
>>>> * there are three different types of authentication / authorization:
>>>> password, X.509 and OAuth * password auth is appropriate for user ->
>>>> server authentication * X.509 is appropriate for server <-> server
>>>> authentication, and * OAuth is appropriate for server -> distant peer
>>>> (whom you may not have an explicit trust relationship with.) * in all
>>>> cases, you start with an authenticator (a password, a certificate or a
>>>> token) and by presenting it to a server at a well defined service
>>>> establishment URL, you'll get a seed cap back * with that seed cap,
>>>> you can request those specific capabilities you require
>>>>
>>>> more details and examples forthcoming.
>>>>
>>>> -cheers
>>>> -meadhbh
>>>> _______________________________________________
>>>> ogpx mailing list
>>>> ogpx@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/ogpx
>>> _______________________________________________
>>> ogpx mailing list
>>> ogpx@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ogpx
>>>
>> _______________________________________________
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
>

From john.hurliman@intel.com  Mon Jun  1 11:58:20 2009
Return-Path: <john.hurliman@intel.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B07833A6E5B for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 11:58:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a2s8ELaX7IXv for <ogpx@core3.amsl.com>; Mon,  1 Jun 2009 11:58:15 -0700 (PDT)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by core3.amsl.com (Postfix) with ESMTP id B53353A6F10 for <ogpx@ietf.org>; Mon,  1 Jun 2009 11:58:15 -0700 (PDT)
Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 01 Jun 2009 11:45:46 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.41,285,1241420400"; d="scan'208";a="695491776"
Received: from rrsmsx603.amr.corp.intel.com ([10.31.0.57]) by fmsmga001.fm.intel.com with ESMTP; 01 Jun 2009 12:01:32 -0700
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx603.amr.corp.intel.com ([10.31.0.57]) with mapi; Mon, 1 Jun 2009 12:58:03 -0600
From: "Hurliman, John" <john.hurliman@intel.com>
To: Infinity Linden <infinity@lindenlab.com>
Date: Mon, 1 Jun 2009 12:57:59 -0600
Thread-Topic: [ogpx] Fwd: Context for Service Establishment in OGP
Thread-Index: Acni5YlsqIpLskWmQsqpZLzYEvEK5QABRV6A
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D90EA7BAA@rrsmsx506.amr.corp.intel.com>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D90EA7AC2@rrsmsx506.amr.corp.intel.com> <3a880e2c0906011103y2ad4482bh42a688eacb3876d7@mail.gmail.com> <3a880e2c0906011104l5969aedatc7b93e89a19f5aca@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D90EA7B13@rrsmsx506.amr.corp.intel.com> <3a880e2c0906011119j2de54060vddcc75734ea1ebd2@mail.gmail.com>
In-Reply-To: <3a880e2c0906011119j2de54060vddcc75734ea1ebd2@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] Fwd: Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2009 18:58:20 -0000

Yes, that's what .NET does. You define a callback that has access to a help=
er function to determine if all the crypto bits are in the right spot, but =
other than a basic sanity check you have to walk the certificate chain your=
self and do your own checks. "Does the fingerprint of this cert match my in=
termediate cert or the root cert? If yes..."

John

> -----Original Message-----
> From: Infinity Linden [mailto:infinity@lindenlab.com]
> Sent: Monday, June 01, 2009 11:20 AM
> To: Hurliman, John
> Cc: ogpx@ietf.org
> Subject: Re: [ogpx] Fwd: Context for Service Establishment in OGP
>=20
> cool. lemme go look at it. i think the one thing we're looking at
> doing that's "allowed by pkix, x.509 and TLS; but not implemented by
> many libraries" is the ability to do cert chain validation based on
> the root AND an intermediate cert. i'm most familiar with OpenSSL that
> allows you to define a callout for cert chain validation (but which is
> a royal pain in the keester to implement). i'm assuming other stacks
> have the ability to do similar callouts, and it sounds like you're
> about 95% of the way there already.
>=20
> hmm... lemme write down a few notes about where i think we're at with
> the PKI stuff so peeps can see if it makes sense to them
>=20
> -cheers
> -m
>=20
> On Mon, Jun 1, 2009 at 11:09 AM, Hurliman, John
> <john.hurliman@intel.com> wrote:
>> (I made the same mistake in response)
>>=20
>> If it's of any use, I wrote a C# library called OpenMetaverse.Http
> that is capable of generating root certificates and signed client
> certificates that can be fed into HttpWebRequest as an SSL client
> cert, plus some basic routines for doing the cert checks on the
> server. Right now it's only doing a very crude check to make sure the
> root certificate shows up somewhere in the certificate chain of the
> client cert and that the chain is valid. No revocation checks or anything=
.
>>=20
>> John
>>=20
>>> -----Original Message-----
>>> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On
>>> Behalf Of Infinity Linden
>>> Sent: Monday, June 01, 2009 11:04 AM
>>> To: ogpx@ietf.org
>>> Subject: [ogpx] Fwd: Context for Service Establishment in OGP
>>>=20
>>> whoops... sent "reply" instead of "reply to all"...
>>>=20
>>>=20
>>> ---------- Forwarded message ----------
>>> From: Infinity Linden <infinity@lindenlab.com>
>>> Date: Mon, Jun 1, 2009 at 11:03 AM
>>> Subject: Re: [ogpx] Context for Service Establishment in OGP
>>> To: "Hurliman, John" <john.hurliman@intel.com>
>>>=20
>>>=20
>>> kk. david and i are threatening to just go off and hack OpenSim to
>>> handle the X.509 client certiness. i think we're probably going to do
>>> a few more rounds of thought experiments and documenting before we run
>>> off and do that, though.
>>>=20
>>> we might want to all three meet in world somewhere (with the agenda
>>> and minutes of the meeting posted here so other interested peeps
>>> can
>>> participate) and come up with a plan for merging your OAuth stuff
>>> with the X.509 stuff we're doing.
>>>=20
>>> in theory... at the end of this process, we'll have a document that
>>> describes what we've been doing; what worked; what didn't. we then
>>> get to add that to a draft somewhere and declare victory.
>>>=20
>>> -cheers
>>>=20
>>> On Mon, Jun 1, 2009 at 10:43 AM, Hurliman, John
>>> <john.hurliman@intel.com> wrote:
>>>> Great to see these ideas written down and being refined. I'm eager
>>>> to see the client cert + OAuth example.
>>>>=20
>>>> John
>>>>=20
>>>>> -----Original Message-----
>>>>> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On
>>>>> Behalf Of Infinity Linden
>>>>> Sent: Monday, June 01, 2009 2:50 AM
>>>>> To: ogpx@ietf.org
>>>>> Subject: [ogpx] Context for Service Establishment in OGP
>>>>>=20
>>>>> whoops... that last message went out without context...
>>>>>=20
>>>>> i've been talking with John Hurliman about OAuth and David Lavine
>>>>> regarding X.509, and at some point it made sense to abstract the
>>>>> three different authentication / authorization schemes into a single
>>>>> "service establishment pattern." The message I just sent out really
>>>>> describes only the mechanism (and only enough mechanism to
>>>>> understand the concept.) over the next couple of weeks, i'd like to
>>>>> add some more detail to this and integrate it into the OGP :
>>>>> Authentication document. So feedback will definitely be welcomed.
>>>>>=20
>>>>> to recap:
>>>>>=20
>>>>> * there are three different types of authentication / authorization:
>>>>> password, X.509 and OAuth * password auth is appropriate for user ->
>>>>> server authentication * X.509 is appropriate for server <-> server
>>>>> authentication, and * OAuth is appropriate for server -> distant
>>>>> peer (whom you may not have an explicit trust relationship with.) *
>>>>> in all cases, you start with an authenticator (a password, a
>>>>> certificate or a token) and by presenting it to a server at a well
>>>>> defined service establishment URL, you'll get a seed cap back * with
>>>>> that seed cap, you can request those specific capabilities you
>>>>> require
>>>>>=20
>>>>> more details and examples forthcoming.
>>>>>=20
>>>>> -cheers
>>>>> -meadhbh
>>>>> _______________________________________________
>>>>> ogpx mailing list
>>>>> ogpx@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/ogpx
>>>> _______________________________________________
>>>> ogpx mailing list
>>>> ogpx@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/ogpx
>>>>=20
>>> _______________________________________________
>>> ogpx mailing list
>>> ogpx@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ogpx
>>

From cs@comlounge.net  Tue Jun  2 12:22:58 2009
Return-Path: <cs@comlounge.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 662E828C24B for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 12:22:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_36=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Re3DNoDl8z9p for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 12:22:57 -0700 (PDT)
Received: from post.comlounge.net (post.comlounge.net [85.214.59.142]) by core3.amsl.com (Postfix) with ESMTP id 2D5BF28C186 for <ogpx@ietf.org>; Tue,  2 Jun 2009 12:22:57 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by post.comlounge.net (Postfix) with ESMTP id 2CFD71CE00DF; Tue,  2 Jun 2009 21:22:56 +0200 (CEST)
Received: from post.comlounge.net ([127.0.0.1]) by localhost (h1346004.stratoserver.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y6LcYbKwp3UZ; Tue,  2 Jun 2009 21:22:55 +0200 (CEST)
Received: from [192.168.2.101] (p5B3D7B56.dip.t-dialin.net [91.61.123.86]) by post.comlounge.net (Postfix) with ESMTP id 3C5041CE002B; Tue,  2 Jun 2009 21:22:55 +0200 (CEST)
Message-ID: <4A257C13.20407@comlounge.net>
Date: Tue, 02 Jun 2009 21:22:59 +0200
From: Christian Scholz <cs@comlounge.net>
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
MIME-Version: 1.0
To: Infinity Linden <infinity@lindenlab.com>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com>
In-Reply-To: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jun 2009 19:22:58 -0000

Hi!

First of all great to see some action again :-)

And who is actually coming to Stockholm?

> i've been talking with John Hurliman about OAuth and David Lavine
> regarding X.509, and at some point it made sense to abstract the three
> different authentication / authorization schemes into a single
> "service establishment pattern." The message I just sent out really
> describes only the mechanism (and only enough mechanism to understand
> the concept.) over the next couple of weeks, i'd like to add some more
> detail to this and integrate it into the OGP : Authentication
> document. So feedback will definitely be welcomed.
> 
> to recap:
> 
> * there are three different types of authentication / authorization:
> password, X.509 and OAuth
> * password auth is appropriate for user -> server authentication
> * X.509 is appropriate for server <-> server authentication, and
> * OAuth is appropriate for server -> distant peer (whom you may not
> have an explicit trust relationship with.)
> * in all cases, you start with an authenticator (a password, a
> certificate or a token) and by presenting it to a server at a well
> defined service establishment URL, you'll get a seed cap back
> * with that seed cap, you can request those specific capabilities you require

I personally would prefer it more if OAuth would replace those caps (as 
you probably know). Are there any plans to do more than just the initial 
step? Also what problem we are trying to solve here? What is an example 
use case? I think that would help me to understand the context even more :-)


-- Christian


-- 
COM.lounge GmbH
http://comlounge.net
Hanbrucher Strasse 33, 52064 Aachen
Amtsgericht Aachen HRB 15170
Geschäftsführer: Dr. Ben Scheffler, Christian Scholz

email: info@comlounge.net
fon: +49-241-4007300
fax: +49-241-97900850

personal email: cs@comlounge.net
personal blog: http://mrtopf.de/blog
personal podcasts: http://openweb-podcast.de, http://datawithoutborders.net


From dwl@us.ibm.com  Tue Jun  2 12:32:18 2009
Return-Path: <dwl@us.ibm.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 42D6A3A6D90; Tue,  2 Jun 2009 12:32:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.998
X-Spam-Level: 
X-Spam-Status: No, score=-5.998 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_36=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PxBc88coadwl; Tue,  2 Jun 2009 12:32:17 -0700 (PDT)
Received: from e4.ny.us.ibm.com (e4.ny.us.ibm.com [32.97.182.144]) by core3.amsl.com (Postfix) with ESMTP id B4ACB28C17E; Tue,  2 Jun 2009 12:32:13 -0700 (PDT)
Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e4.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id n52JRZm7012279; Tue, 2 Jun 2009 15:27:35 -0400
Received: from d01av05.pok.ibm.com (d01av05.pok.ibm.com [9.56.224.195]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n52JWDGK115226; Tue, 2 Jun 2009 15:32:14 -0400
Received: from d01av05.pok.ibm.com (loopback [127.0.0.1]) by d01av05.pok.ibm.com (8.13.1/8.13.3) with ESMTP id n52JWD54003194; Tue, 2 Jun 2009 15:32:13 -0400
Received: from d01ml605.pok.ibm.com (d01ml605.pok.ibm.com [9.56.227.91]) by d01av05.pok.ibm.com (8.13.1/8.12.11) with ESMTP id n52JWDge003188; Tue, 2 Jun 2009 15:32:13 -0400
In-Reply-To: <4A257C13.20407@comlounge.net>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com> <4A257C13.20407@comlounge.net>
To: Christian Scholz <cs@comlounge.net>
MIME-Version: 1.0
X-KeepSent: 25AA132B:6AECBFF3-852575C9:006B4B9F; type=4; name=$KeepSent
X-Mailer: Lotus Notes Release 8.0.1 HF105 April 10, 2008
Message-ID: <OF25AA132B.6AECBFF3-ON852575C9.006B4B9F-852575C9.006B51E5@us.ibm.com>
From: David W Levine <dwl@us.ibm.com>
Date: Tue, 2 Jun 2009 15:32:13 -0400
X-MIMETrack: Serialize by Router on D01ML605/01/M/IBM(Release 8.5|December 05, 2008) at 06/02/2009 15:32:13, Serialize complete at 06/02/2009 15:32:13
Content-Type: multipart/alternative; boundary="=_alternative 006B51E3852575C9_="
Cc: Infinity Linden <infinity@lindenlab.com>, ogpx-bounces@ietf.org, "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jun 2009 19:32:18 -0000

This is a multipart message in MIME format.
--=_alternative 006B51E3852575C9_=
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable

I will be there.=20



Christian Scholz <cs@comlounge.net>=20
Sent by: ogpx-bounces@ietf.org
06/02/2009 03:22 PM

To
Infinity Linden <infinity@lindenlab.com>
cc
"ogpx@ietf.org" <ogpx@ietf.org>
Subject
Re: [ogpx] Context for Service Establishment in OGP






Hi!

First of all great to see some action again :-)

And who is actually coming to Stockholm?

> i've been talking with John Hurliman about OAuth and David Lavine
> regarding X.509, and at some point it made sense to abstract the three
> different authentication / authorization schemes into a single
> "service establishment pattern." The message I just sent out really
> describes only the mechanism (and only enough mechanism to understand
> the concept.) over the next couple of weeks, i'd like to add some more
> detail to this and integrate it into the OGP : Authentication
> document. So feedback will definitely be welcomed.
>=20
> to recap:
>=20
> * there are three different types of authentication / authorization:
> password, X.509 and OAuth
> * password auth is appropriate for user -> server authentication
> * X.509 is appropriate for server <-> server authentication, and
> * OAuth is appropriate for server -> distant peer (whom you may not
> have an explicit trust relationship with.)
> * in all cases, you start with an authenticator (a password, a
> certificate or a token) and by presenting it to a server at a well
> defined service establishment URL, you'll get a seed cap back
> * with that seed cap, you can request those specific capabilities you=20
require

I personally would prefer it more if OAuth would replace those caps (as=20
you probably know). Are there any plans to do more than just the initial=20
step? Also what problem we are trying to solve here? What is an example=20
use case? I think that would help me to understand the context even more=20
:-)


-- Christian


--=20
COM.lounge GmbH
http://comlounge.net
Hanbrucher Strasse 33, 52064 Aachen
Amtsgericht Aachen HRB 15170
Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz

email: info@comlounge.net
fon: +49-241-4007300
fax: +49-241-97900850

personal email: cs@comlounge.net
personal blog: http://mrtopf.de/blog
personal podcasts: http://openweb-podcast.de,=20
http://datawithoutborders.net

=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
ogpx mailing list
ogpx@ietf.org
https://www.ietf.org/mailman/listinfo/ogpx


--=_alternative 006B51E3852575C9_=
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable


<br><font size=3D2 face=3D"sans-serif">I will be there. </font>
<br>
<br>
<br>
<table width=3D100%>
<tr valign=3Dtop>
<td width=3D40%><font size=3D1 face=3D"sans-serif"><b>Christian Scholz &lt;=
cs@comlounge.net&gt;</b>
</font>
<br><font size=3D1 face=3D"sans-serif">Sent by: ogpx-bounces@ietf.org</font>
<p><font size=3D1 face=3D"sans-serif">06/02/2009 03:22 PM</font>
<td width=3D59%>
<table width=3D100%>
<tr valign=3Dtop>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">To</font></div>
<td><font size=3D1 face=3D"sans-serif">Infinity Linden &lt;infinity@lindenl=
ab.com&gt;</font>
<tr valign=3Dtop>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">cc</font></div>
<td><font size=3D1 face=3D"sans-serif">&quot;ogpx@ietf.org&quot; &lt;ogpx@i=
etf.org&gt;</font>
<tr valign=3Dtop>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">Subject</font></div>
<td><font size=3D1 face=3D"sans-serif">Re: [ogpx] Context for Service Estab=
lishment
in OGP</font></table>
<br>
<table>
<tr valign=3Dtop>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=3D2>Hi!<br>
<br>
First of all great to see some action again :-)<br>
<br>
And who is actually coming to Stockholm?<br>
<br>
&gt; i've been talking with John Hurliman about OAuth and David Lavine<br>
&gt; regarding X.509, and at some point it made sense to abstract the three=
<br>
&gt; different authentication / authorization schemes into a single<br>
&gt; &quot;service establishment pattern.&quot; The message I just sent
out really<br>
&gt; describes only the mechanism (and only enough mechanism to understand<=
br>
&gt; the concept.) over the next couple of weeks, i'd like to add some
more<br>
&gt; detail to this and integrate it into the OGP : Authentication<br>
&gt; document. So feedback will definitely be welcomed.<br>
&gt; <br>
&gt; to recap:<br>
&gt; <br>
&gt; * there are three different types of authentication / authorization:<b=
r>
&gt; password, X.509 and OAuth<br>
&gt; * password auth is appropriate for user -&gt; server authentication<br>
&gt; * X.509 is appropriate for server &lt;-&gt; server authentication,
and<br>
&gt; * OAuth is appropriate for server -&gt; distant peer (whom you may
not<br>
&gt; have an explicit trust relationship with.)<br>
&gt; * in all cases, you start with an authenticator (a password, a<br>
&gt; certificate or a token) and by presenting it to a server at a well<br>
&gt; defined service establishment URL, you'll get a seed cap back<br>
&gt; * with that seed cap, you can request those specific capabilities
you require<br>
<br>
I personally would prefer it more if OAuth would replace those caps (as
<br>
you probably know). Are there any plans to do more than just the initial
<br>
step? Also what problem we are trying to solve here? What is an example
<br>
use case? I think that would help me to understand the context even more
:-)<br>
<br>
<br>
-- Christian<br>
<br>
<br>
-- <br>
COM.lounge GmbH<br>
</font></tt><a href=3Dhttp://comlounge.net/><tt><font size=3D2>http://comlo=
unge.net</font></tt></a><tt><font size=3D2><br>
Hanbrucher Strasse 33, 52064 Aachen<br>
Amtsgericht Aachen HRB 15170<br>
Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz<br>
<br>
email: info@comlounge.net<br>
fon: +49-241-4007300<br>
fax: +49-241-97900850<br>
<br>
personal email: cs@comlounge.net<br>
personal blog: </font></tt><a href=3Dhttp://mrtopf.de/blog><tt><font size=
=3D2>http://mrtopf.de/blog</font></tt></a><tt><font size=3D2><br>
personal podcasts: </font></tt><a href=3D"http://openweb-podcast.de/"><tt><=
font size=3D2>http://openweb-podcast.de</font></tt></a><tt><font size=3D2>,
</font></tt><a href=3Dhttp://datawithoutborders.net/><tt><font size=3D2>htt=
p://datawithoutborders.net</font></tt></a><tt><font size=3D2><br>
<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
ogpx mailing list<br>
ogpx@ietf.org<br>
</font></tt><a href=3Dhttps://www.ietf.org/mailman/listinfo/ogpx><tt><font =
size=3D2>https://www.ietf.org/mailman/listinfo/ogpx</font></tt></a><tt><fon=
t size=3D2><br>
</font></tt>
<br>
--=_alternative 006B51E3852575C9_=--

From infinity@lindenlab.com  Tue Jun  2 14:52:29 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 1D9D03A69D4 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 14:52:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.996
X-Spam-Level: 
X-Spam-Status: No, score=-0.996 tagged_above=-999 required=5 tests=[AWL=0.382,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_36=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qysuBj8QioLZ for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 14:52:28 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.246]) by core3.amsl.com (Postfix) with ESMTP id 200823A68E0 for <ogpx@ietf.org>; Tue,  2 Jun 2009 14:52:28 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so6274101ana.4 for <ogpx@ietf.org>; Tue, 02 Jun 2009 14:52:27 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.126.15 with SMTP id y15mr327749anc.71.1243979547304; Tue,  02 Jun 2009 14:52:27 -0700 (PDT)
In-Reply-To: <4A257C13.20407@comlounge.net>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com> <4A257C13.20407@comlounge.net>
Date: Tue, 2 Jun 2009 14:52:27 -0700
Message-ID: <3a880e2c0906021452v2af887b0q98a5a971155dd2ef@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Christian Scholz <cs@comlounge.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jun 2009 21:52:29 -0000

hey tao. i'll be in stockholm too.

as for OAuth... i think right now we're looking at just service
establishment, and i think the main use case is for an agent domain to
use a remote service that already has OAuth enabled (perhaps something
like Zha's AD pointing towards OpenSim instances with a cable beach
asset backend.) it is NOT a complete re-imagining of the protocol to
abandon caps and replace then with OpenID/OAuth/XRDS.

-cheers
-m

On Tue, Jun 2, 2009 at 12:22 PM, Christian Scholz <cs@comlounge.net> wrote:
> Hi!
>
> First of all great to see some action again :-)
>
> And who is actually coming to Stockholm?
>
>> i've been talking with John Hurliman about OAuth and David Lavine
>> regarding X.509, and at some point it made sense to abstract the three
>> different authentication / authorization schemes into a single
>> "service establishment pattern." The message I just sent out really
>> describes only the mechanism (and only enough mechanism to understand
>> the concept.) over the next couple of weeks, i'd like to add some more
>> detail to this and integrate it into the OGP : Authentication
>> document. So feedback will definitely be welcomed.
>>
>> to recap:
>>
>> * there are three different types of authentication / authorization:
>> password, X.509 and OAuth
>> * password auth is appropriate for user -> server authentication
>> * X.509 is appropriate for server <-> server authentication, and
>> * OAuth is appropriate for server -> distant peer (whom you may not
>> have an explicit trust relationship with.)
>> * in all cases, you start with an authenticator (a password, a
>> certificate or a token) and by presenting it to a server at a well
>> defined service establishment URL, you'll get a seed cap back
>> * with that seed cap, you can request those specific capabilities you
>> require
>
> I personally would prefer it more if OAuth would replace those caps (as y=
ou
> probably know). Are there any plans to do more than just the initial step=
?
> Also what problem we are trying to solve here? What is an example use cas=
e?
> I think that would help me to understand the context even more :-)
>
>
> -- Christian
>
>
> --
> COM.lounge GmbH
> http://comlounge.net
> Hanbrucher Strasse 33, 52064 Aachen
> Amtsgericht Aachen HRB 15170
> Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz
>
> email: info@comlounge.net
> fon: +49-241-4007300
> fax: +49-241-97900850
>
> personal email: cs@comlounge.net
> personal blog: http://mrtopf.de/blog
> personal podcasts: http://openweb-podcast.de, http://datawithoutborders.n=
et
>
>

From infinity@lindenlab.com  Tue Jun  2 15:22:26 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C78743A6C50 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 15:22:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.391
X-Spam-Level: 
X-Spam-Status: No, score=-1.391 tagged_above=-999 required=5 tests=[AWL=0.586,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cRxYEtrE7LXN for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 15:22:26 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.240]) by core3.amsl.com (Postfix) with ESMTP id CE5003A6AA3 for <ogpx@ietf.org>; Tue,  2 Jun 2009 15:22:25 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so6286505ana.4 for <ogpx@ietf.org>; Tue, 02 Jun 2009 15:22:24 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.133.2 with SMTP id g2mr399922and.23.1243981344331; Tue, 02  Jun 2009 15:22:24 -0700 (PDT)
Date: Tue, 2 Jun 2009 15:22:24 -0700
Message-ID: <3a880e2c0906021522g1883adh326fa837d6189130@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: "ogpx@ietf.org" <ogpx@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: [ogpx] event queues for fun and profit
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jun 2009 22:22:26 -0000

so... event queues...

to recap.. you can find info re: event queues in the OGP : Base
document at http://tools.ietf.org/html/draft-lentczner-ogp-base-00 .
an event queue is a service used by an HTTP client to get unsolicited
event notifications from a server. After logging into the agent
domain, one of the caps you should request is the event queue. You
then listen on the event queue for messages, process the server to
client messages and send the response back to the server via the event
queue cap.

and here are some issues open for discussion...

* how many event queues do we need? are we only going to have one
event queue from the client to the agent domain, and then have all
other services forward messages they want to send to the client to the
AD? or do we say... "one event queue per client : host pair"? or do we
further define the concept of a "service" as a collection of related
caps, including an event queue?

* asynchronicity - the event queue as it is defined currently defines
synchronous messages. the benefit here is that synchronicity is
"simple" in terms of state. the drawback is that the client
application MUST respond to the current message BEFORE it can request
the next one in the queue. an asynchronous message queue may require
application layer protocol equivalents of re-transmitting, windowing
and message time outs that would complicate the server -> client
interaction. if we're worried that one synchronous message that took a
long time to process could hold up the entire queue, we might want to
make the implementation of that message have the pattern of... "create
a capability on the client representing the client's response to a
message. i (the server) will poll it and see if it's done."
honestly... all the solutions to this problem have warts.

* message count - should we let multiple server -> client messages
flow in a single request to the event queue cap?

* RHTTP - right now we're looking at the event queue being implemented
as a long poll over HTTP. ultimately, a technology like RHTTP would
reduce server overhead. (
http://tools.ietf.org/html/draft-lentczner-rhttp-00 ) i think the
discussion around this point is... let's not do anything with the
event queue that makes it harder to implement RHTTP later. Or
websockets or bosch or beyaux for that matter.

* capabilities on the client - readers familiar with COMET or AJAX
will remember that simply defining an event queue is just half the
battle; rich clients are likely to have multiple objects that will
receive messages along the queue, so you have to have some way to
demultiplex messages. one way to do this is to model capabilities on
the client as endpoints for messages flowing across the event queue.
an advantage of this approach might be the ability for the server to
pass off a client capability to another server that will complete a
service request. hmm... more on this later... this probably warrants
it's own conversation thread and involves the concept of RHTTP URLs

* externally identifying event queues - so imagine you're a client.
you authenticate yourself to the agent domain and ask for caps for a
couple services. we'll call them "search:group",
"search:group:event_queue", "group:im" and "group:im:event_queue". the
protocol makes no assumptions as to whether the protocol endpoint that
implements the "search:group:event_queue" and "group:im:event_queue"
caps are the same URL or if they're different URLs. it would be
advantageous for the client to be able to, upon seeing that both caps
are implemented on the same URL NOT open a second connection to the
url. so the question is.. representing event_queues as URLs is not a
problem, right?

i'm sure there's more we could add to this, but this is just a bit to
get the conversation started.

-sincerely
-meadhbh / infinity

From cs@comlounge.net  Tue Jun  2 15:49:31 2009
Return-Path: <cs@comlounge.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 829F43A6A80 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 15:49:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_36=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LUMTAcxaxAs4 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 15:49:30 -0700 (PDT)
Received: from post.comlounge.net (post.comlounge.net [85.214.59.142]) by core3.amsl.com (Postfix) with ESMTP id 0DE953A6CE6 for <ogpx@ietf.org>; Tue,  2 Jun 2009 15:49:30 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by post.comlounge.net (Postfix) with ESMTP id 8160D1CE00DF; Wed,  3 Jun 2009 00:49:30 +0200 (CEST)
Received: from post.comlounge.net ([127.0.0.1]) by localhost (h1346004.stratoserver.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hL+pgEp+xgii; Wed,  3 Jun 2009 00:49:28 +0200 (CEST)
Received: from [192.168.2.101] (p5B3D7B56.dip.t-dialin.net [91.61.123.86]) by post.comlounge.net (Postfix) with ESMTP id 945931CE0017; Wed,  3 Jun 2009 00:49:28 +0200 (CEST)
Message-ID: <4A25AC76.3070700@comlounge.net>
Date: Wed, 03 Jun 2009 00:49:26 +0200
From: Christian Scholz <cs@comlounge.net>
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
MIME-Version: 1.0
To: Infinity Linden <infinity@lindenlab.com>
References: <3a880e2c0906021522g1883adh326fa837d6189130@mail.gmail.com>
In-Reply-To: <3a880e2c0906021522g1883adh326fa837d6189130@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] event queues for fun and profit
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jun 2009 22:49:31 -0000

Hi!

Just a short thing: Did you look at http://waveprotocol.org?
It's XMPP based and somehow a very much related use case. I haven't 
looked that close into it myself but it at least looks very promising. 
Moreover it's coming from Google and thus might get some traction and 
community around it.

(but maybe this is more something for discussion on MMOX)

-- Christian

Infinity Linden schrieb:
> so... event queues...
> 
> to recap.. you can find info re: event queues in the OGP : Base
> document at http://tools.ietf.org/html/draft-lentczner-ogp-base-00 .
> an event queue is a service used by an HTTP client to get unsolicited
> event notifications from a server. After logging into the agent
> domain, one of the caps you should request is the event queue. You
> then listen on the event queue for messages, process the server to
> client messages and send the response back to the server via the event
> queue cap.
> 
> and here are some issues open for discussion...
> 
> * how many event queues do we need? are we only going to have one
> event queue from the client to the agent domain, and then have all
> other services forward messages they want to send to the client to the
> AD? or do we say... "one event queue per client : host pair"? or do we
> further define the concept of a "service" as a collection of related
> caps, including an event queue?
> 
> * asynchronicity - the event queue as it is defined currently defines
> synchronous messages. the benefit here is that synchronicity is
> "simple" in terms of state. the drawback is that the client
> application MUST respond to the current message BEFORE it can request
> the next one in the queue. an asynchronous message queue may require
> application layer protocol equivalents of re-transmitting, windowing
> and message time outs that would complicate the server -> client
> interaction. if we're worried that one synchronous message that took a
> long time to process could hold up the entire queue, we might want to
> make the implementation of that message have the pattern of... "create
> a capability on the client representing the client's response to a
> message. i (the server) will poll it and see if it's done."
> honestly... all the solutions to this problem have warts.
> 
> * message count - should we let multiple server -> client messages
> flow in a single request to the event queue cap?
> 
> * RHTTP - right now we're looking at the event queue being implemented
> as a long poll over HTTP. ultimately, a technology like RHTTP would
> reduce server overhead. (
> http://tools.ietf.org/html/draft-lentczner-rhttp-00 ) i think the
> discussion around this point is... let's not do anything with the
> event queue that makes it harder to implement RHTTP later. Or
> websockets or bosch or beyaux for that matter.
> 
> * capabilities on the client - readers familiar with COMET or AJAX
> will remember that simply defining an event queue is just half the
> battle; rich clients are likely to have multiple objects that will
> receive messages along the queue, so you have to have some way to
> demultiplex messages. one way to do this is to model capabilities on
> the client as endpoints for messages flowing across the event queue.
> an advantage of this approach might be the ability for the server to
> pass off a client capability to another server that will complete a
> service request. hmm... more on this later... this probably warrants
> it's own conversation thread and involves the concept of RHTTP URLs
> 
> * externally identifying event queues - so imagine you're a client.
> you authenticate yourself to the agent domain and ask for caps for a
> couple services. we'll call them "search:group",
> "search:group:event_queue", "group:im" and "group:im:event_queue". the
> protocol makes no assumptions as to whether the protocol endpoint that
> implements the "search:group:event_queue" and "group:im:event_queue"
> caps are the same URL or if they're different URLs. it would be
> advantageous for the client to be able to, upon seeing that both caps
> are implemented on the same URL NOT open a second connection to the
> url. so the question is.. representing event_queues as URLs is not a
> problem, right?
> 
> i'm sure there's more we could add to this, but this is just a bit to
> get the conversation started.
> 
> -sincerely
> -meadhbh / infinity
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx


-- 
COM.lounge GmbH
http://comlounge.net
Hanbrucher Strasse 33, 52064 Aachen
Amtsgericht Aachen HRB 15170
Geschäftsführer: Dr. Ben Scheffler, Christian Scholz

email: info@comlounge.net
fon: +49-241-4007300
fax: +49-241-97900850

personal email: cs@comlounge.net
personal blog: http://mrtopf.de/blog
personal podcasts: http://openweb-podcast.de, http://datawithoutborders.net


From infinity@lindenlab.com  Tue Jun  2 16:09:49 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C5F1D3A68D3 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 16:09:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.286
X-Spam-Level: 
X-Spam-Status: No, score=-1.286 tagged_above=-999 required=5 tests=[AWL=0.091,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_36=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Kgl5Fp9unQu8 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 16:09:48 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.245]) by core3.amsl.com (Postfix) with ESMTP id 62DCE3A6B92 for <ogpx@ietf.org>; Tue,  2 Jun 2009 16:09:48 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so6305955ana.4 for <ogpx@ietf.org>; Tue, 02 Jun 2009 16:09:46 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.107.8 with SMTP id f8mr369540anc.149.1243984186514; Tue,  02 Jun 2009 16:09:46 -0700 (PDT)
In-Reply-To: <4A25AC76.3070700@comlounge.net>
References: <3a880e2c0906021522g1883adh326fa837d6189130@mail.gmail.com> <4A25AC76.3070700@comlounge.net>
Date: Tue, 2 Jun 2009 16:09:46 -0700
Message-ID: <3a880e2c0906021609r1d751f5fn507a519395f9245b@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Christian Scholz <cs@comlounge.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] event queues for fun and profit
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jun 2009 23:09:49 -0000

cool. learning more about wave has been on my todo list for at least a
few days. using XMPP to carry OGP application PDUs may be a topic for
the future, it's totally in scope for MMOX. the use case is in scope
here.

it might be worth it to make a few comments about OGP, HTTP and XMPP.
OGP was originally envisioned as an application layer protocol. That
is... the transport that carries application to application messages
is not as important as the application messages themselves. Though OGP
is currently only defined with HTTP as a transport, we wanted to make
it generic enough so that in the future if it made sense to carry OGP
application layer messages over XMPP, SIP, SMTP or even carrier
pigeon, it would not be terribly hard to modify the existing
specifications.

that being said... we're currently focused on OGP over HTTP
exclusively. we (linden) did that 'cause a) we have limited resources
and b) at the current time the tool chain for HTTP seems more mature
than the tool chain for XMPP. that will eventually change, i'm sure.
but for right now, we're pretty focused on OGP/{R}HTTP(S).

but there are very clearly some use cases (like the event queue) that
XMPP (or an XMPP like solution) would be more appropriate. it just
seems that at the current time, it's easier to implement an event
queue on HTTP than it is to build a robust XMPP tool chain.

this will change, and i look forward to the day that i'm forced to eat
those words cause it will mean it's at least as easy to deliver a
compelling service over XMPP as it is to deliver it over HTTP. but
right now... while we're waiting for the world to change, we're moving
forward with OGP/HTTP. but it's good to see wave getting deployed
'cause it means we're closer to the future.

-cheers
-meadhbh

On Tue, Jun 2, 2009 at 3:49 PM, Christian Scholz <cs@comlounge.net> wrote:
> Hi!
>
> Just a short thing: Did you look at http://waveprotocol.org?
> It's XMPP based and somehow a very much related use case. I haven't looke=
d
> that close into it myself but it at least looks very promising. Moreover
> it's coming from Google and thus might get some traction and community
> around it.
>
> (but maybe this is more something for discussion on MMOX)
>
> -- Christian
>
> Infinity Linden schrieb:
>>
>> so... event queues...
>>
>> to recap.. you can find info re: event queues in the OGP : Base
>> document at http://tools.ietf.org/html/draft-lentczner-ogp-base-00 .
>> an event queue is a service used by an HTTP client to get unsolicited
>> event notifications from a server. After logging into the agent
>> domain, one of the caps you should request is the event queue. You
>> then listen on the event queue for messages, process the server to
>> client messages and send the response back to the server via the event
>> queue cap.
>>
>> and here are some issues open for discussion...
>>
>> * how many event queues do we need? are we only going to have one
>> event queue from the client to the agent domain, and then have all
>> other services forward messages they want to send to the client to the
>> AD? or do we say... "one event queue per client : host pair"? or do we
>> further define the concept of a "service" as a collection of related
>> caps, including an event queue?
>>
>> * asynchronicity - the event queue as it is defined currently defines
>> synchronous messages. the benefit here is that synchronicity is
>> "simple" in terms of state. the drawback is that the client
>> application MUST respond to the current message BEFORE it can request
>> the next one in the queue. an asynchronous message queue may require
>> application layer protocol equivalents of re-transmitting, windowing
>> and message time outs that would complicate the server -> client
>> interaction. if we're worried that one synchronous message that took a
>> long time to process could hold up the entire queue, we might want to
>> make the implementation of that message have the pattern of... "create
>> a capability on the client representing the client's response to a
>> message. i (the server) will poll it and see if it's done."
>> honestly... all the solutions to this problem have warts.
>>
>> * message count - should we let multiple server -> client messages
>> flow in a single request to the event queue cap?
>>
>> * RHTTP - right now we're looking at the event queue being implemented
>> as a long poll over HTTP. ultimately, a technology like RHTTP would
>> reduce server overhead. (
>> http://tools.ietf.org/html/draft-lentczner-rhttp-00 ) i think the
>> discussion around this point is... let's not do anything with the
>> event queue that makes it harder to implement RHTTP later. Or
>> websockets or bosch or beyaux for that matter.
>>
>> * capabilities on the client - readers familiar with COMET or AJAX
>> will remember that simply defining an event queue is just half the
>> battle; rich clients are likely to have multiple objects that will
>> receive messages along the queue, so you have to have some way to
>> demultiplex messages. one way to do this is to model capabilities on
>> the client as endpoints for messages flowing across the event queue.
>> an advantage of this approach might be the ability for the server to
>> pass off a client capability to another server that will complete a
>> service request. hmm... more on this later... this probably warrants
>> it's own conversation thread and involves the concept of RHTTP URLs
>>
>> * externally identifying event queues - so imagine you're a client.
>> you authenticate yourself to the agent domain and ask for caps for a
>> couple services. we'll call them "search:group",
>> "search:group:event_queue", "group:im" and "group:im:event_queue". the
>> protocol makes no assumptions as to whether the protocol endpoint that
>> implements the "search:group:event_queue" and "group:im:event_queue"
>> caps are the same URL or if they're different URLs. it would be
>> advantageous for the client to be able to, upon seeing that both caps
>> are implemented on the same URL NOT open a second connection to the
>> url. so the question is.. representing event_queues as URLs is not a
>> problem, right?
>>
>> i'm sure there's more we could add to this, but this is just a bit to
>> get the conversation started.
>>
>> -sincerely
>> -meadhbh / infinity
>> _______________________________________________
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
>
>
> --
> COM.lounge GmbH
> http://comlounge.net
> Hanbrucher Strasse 33, 52064 Aachen
> Amtsgericht Aachen HRB 15170
> Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz
>
> email: info@comlounge.net
> fon: +49-241-4007300
> fax: +49-241-97900850
>
> personal email: cs@comlounge.net
> personal blog: http://mrtopf.de/blog
> personal podcasts: http://openweb-podcast.de, http://datawithoutborders.n=
et
>
>

From john.hurliman@intel.com  Tue Jun  2 17:21:03 2009
Return-Path: <john.hurliman@intel.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id ED0D93A6E13 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 17:21:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.299
X-Spam-Level: 
X-Spam-Status: No, score=-6.299 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_36=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XawIur1NCQD2 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 17:21:02 -0700 (PDT)
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by core3.amsl.com (Postfix) with ESMTP id C98F73A6DDA for <ogpx@ietf.org>; Tue,  2 Jun 2009 17:21:02 -0700 (PDT)
Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 02 Jun 2009 17:12:52 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.41,294,1241420400"; d="scan'208";a="418346904"
Received: from rrsmsx604.amr.corp.intel.com ([10.31.0.170]) by orsmga002.jf.intel.com with ESMTP; 02 Jun 2009 17:28:17 -0700
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx604.amr.corp.intel.com ([10.31.0.170]) with mapi; Tue, 2 Jun 2009 18:20:49 -0600
From: "Hurliman, John" <john.hurliman@intel.com>
To: Infinity Linden <infinity@lindenlab.com>, Christian Scholz <cs@comlounge.net>
Date: Tue, 2 Jun 2009 18:20:25 -0600
Thread-Topic: [ogpx] Context for Service Establishment in OGP
Thread-Index: AcnjzHD4ctosHyKdQuu/mrpyRN2V6AAE98Mg
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D90EA8506@rrsmsx506.amr.corp.intel.com>
References: <3a880e2c0906010249n34bf1b3di1aa588a6ba9b9bde@mail.gmail.com> <4A257C13.20407@comlounge.net> <3a880e2c0906021452v2af887b0q98a5a971155dd2ef@mail.gmail.com>
In-Reply-To: <3a880e2c0906021452v2af887b0q98a5a971155dd2ef@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] Context for Service Establishment in OGP
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2009 00:21:04 -0000

And just for context, the Cable Beach architecture doesn't replace CAPS ent=
irely either. One or more capabilities are returned alongside the final acc=
ess token, so the access token becomes junk data (since the consumer has al=
ready received what they came for).

In my opinion, the access token in OAuth is just one common token system fo=
r implementations to use. It goes to great lengths to support other systems=
, and you don't get better integration with existing services or a medal fo=
r sticking "closer to the intention of the spec" if you use the default OAu=
th request token instead of capabilities.

John

> -----Original Message-----
> From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On Behalf=20
> Of Infinity Linden
> Sent: Tuesday, June 02, 2009 2:52 PM
> To: Christian Scholz
> Cc: ogpx@ietf.org
> Subject: Re: [ogpx] Context for Service Establishment in OGP
>=20
> hey tao. i'll be in stockholm too.
>=20
> as for OAuth... i think right now we're looking at just service
> establishment, and i think the main use case is for an agent domain to
> use a remote service that already has OAuth enabled (perhaps something
> like Zha's AD pointing towards OpenSim instances with a cable beach
> asset backend.) it is NOT a complete re-imagining of the protocol to
> abandon caps and replace then with OpenID/OAuth/XRDS.
>=20
> -cheers
> -m
>=20
> On Tue, Jun 2, 2009 at 12:22 PM, Christian Scholz <cs@comlounge.net>
> wrote:
>> Hi!
>>=20
>> First of all great to see some action again :-)
>>=20
>> And who is actually coming to Stockholm?
>>=20
>>> i've been talking with John Hurliman about OAuth and David Lavine
>>> regarding X.509, and at some point it made sense to abstract the three
>>> different authentication / authorization schemes into a single
>>> "service establishment pattern." The message I just sent out really
>>> describes only the mechanism (and only enough mechanism to understand
>>> the concept.) over the next couple of weeks, i'd like to add some more
>>> detail to this and integrate it into the OGP : Authentication
>>> document. So feedback will definitely be welcomed.
>>>=20
>>> to recap:
>>>=20
>>> * there are three different types of authentication / authorization:
>>> password, X.509 and OAuth * password auth is appropriate for user ->
>>> server authentication * X.509 is appropriate for server <-> server
>>> authentication, and * OAuth is appropriate for server -> distant peer
>>> (whom you may not have an explicit trust relationship with.) * in all
>>> cases, you start with an authenticator (a password, a certificate or a
>>> token) and by presenting it to a server at a well defined service
>>> establishment URL, you'll get a seed cap back * with that seed cap,
>>> you can request those specific capabilities you require
>>  I personally would prefer it more if OAuth would replace those caps
>> (as you probably know). Are there any plans to do more than just the
>> initial step? Also what problem we are trying to solve here? What is an
>> example use case? I think that would help me to understand the context
>> even more :-)
>>=20
>>=20
>> -- Christian
>>=20
>>=20
>> --
>> COM.lounge GmbH
>> http://comlounge.net
>> Hanbrucher Strasse 33, 52064 Aachen
>> Amtsgericht Aachen HRB 15170
>> Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz
>>=20
>> email: info@comlounge.net
>> fon: +49-241-4007300
>> fax: +49-241-97900850
>>=20
>> personal email: cs@comlounge.net
>> personal blog: http://mrtopf.de/blog personal podcasts:
>> http://openweb-podcast.de, http://datawithoutborders.net
>>=20
>>=20
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx

From suzyque@gmail.com  Tue Jun  2 18:46:46 2009
Return-Path: <suzyque@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EECD83A6A15 for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 18:46:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.976
X-Spam-Level: 
X-Spam-Status: No, score=-1.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zNo+dqoDQCQM for <ogpx@core3.amsl.com>; Tue,  2 Jun 2009 18:46:46 -0700 (PDT)
Received: from mail-qy0-f136.google.com (mail-qy0-f136.google.com [209.85.221.136]) by core3.amsl.com (Postfix) with ESMTP id BA1FA3A6850 for <ogpx@ietf.org>; Tue,  2 Jun 2009 18:46:45 -0700 (PDT)
Received: by qyk42 with SMTP id 42so316889qyk.29 for <ogpx@ietf.org>; Tue, 02 Jun 2009 18:46:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:reply-to:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type; bh=4qZ1WKkRZINn1mjnnl+83Uc478uGgB2w6KJe473Sf50=; b=GPwuyZCnLtAeU55nQyAs3p/KszQMFaSXIy3XomT+4VGD83U3qGFI1NG0m/yWK6/Pmw aLP2SXhObEU9Ocpk61gAXZ2yNDCYWskfhqkInbufeIAKTGiHRk3GALDTp1ssC9laDrpU RiiPijv1zvzTGswKQ7akORdBLWZu81Dq34sII=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:reply-to:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=SwRKJ6/cSeyrm2UgTPuXIrQeqVhv4c01Y7aSjQ/xeZ6Tw5QjXgOW6EwC1zlSAaTRKG qUJ/SpVsLWh4ZiYomgzk6caZfc5fhDH38Z18ozr6pm5ifHFjCCGQ1BK2Tusd0X2dxu3G 85kG3CMxoo/opYovP5d7IQ+Y/YsoGWTRe28Gk=
MIME-Version: 1.0
Sender: suzyque@gmail.com
Received: by 10.229.84.196 with SMTP id k4mr219241qcl.86.1243993603384; Tue,  02 Jun 2009 18:46:43 -0700 (PDT)
In-Reply-To: <3a880e2c0906021522g1883adh326fa837d6189130@mail.gmail.com>
References: <3a880e2c0906021522g1883adh326fa837d6189130@mail.gmail.com>
Date: Tue, 2 Jun 2009 20:46:43 -0500
X-Google-Sender-Auth: f034c8722bf5a470
Message-ID: <2bd5b7f10906021846v31fedb6k2dda78582701fc32@mail.gmail.com>
From: Suzy Deffeyes <suzyq@pobox.com>
To: Infinity Linden <infinity@lindenlab.com>
Content-Type: multipart/alternative; boundary=001636427491d53142046b67d42e
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] event queues for fun and profit
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: suzyq@pobox.com
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2009 01:46:47 -0000

--001636427491d53142046b67d42e
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

On Tue, Jun 2, 2009 at 5:22 PM, Infinity Linden <infinity@lindenlab.com>wrote:

> so... event queues...
>
> * how many event queues do we need? are we only going to have one
> event queue from the client to the agent domain, and then have all
> other services forward messages they want to send to the client to the
> AD? or do we say... "one event queue per client : host pair"? or do we
> further define the concept of a "service" as a collection of related
> caps, including an event queue?


>From a viewer standpoint, I tend to like the "funnel your service requests
to the AD" because that makes it simpler to implement in the viewer, or at
least my fuzzy brain thinks that today.

Is it proper to assume that any grouping of services will be comfortable
forwarding their requests to the AD? At first glance, it feels a bit like
the AD is doing more than managing the agent, and feels like a bit of an odd
control point.

That said, should we be attempting to define what service belongs in what
collection? Different OGP implementations might want to group their services
differently.



>
> * message count - should we let multiple server -> client messages
> flow in a single request to the event queue cap?
>

Yes. Performance wise that seems to make sense, especially as more and more
starts showing up in the event queue path.


>
> * capabilities on the client - readers familiar with COMET or AJAX
> will remember that simply defining an event queue is just half the
> battle; rich clients are likely to have multiple objects that will
> receive messages along the queue, so you have to have some way to
> demultiplex messages. one way to do this is to model capabilities on
> the client as endpoints for messages flowing across the event queue.


This makes me think of another issue. The viewer's current way of thinking
is that messages on either  HTTP or UDP is valid and acceptable. What is the
expected behavior in OGP when group im is being handled by the AD, and
suddenly a group im message comes across from region UDP? Should the viewer
ignore it? If so, how do we do a runtime config of what messages are valid
(and trusted) from what sources?


>
>
> * externally identifying event queues - so imagine you're a client.
> you authenticate yourself to the agent domain and ask for caps for a
> couple services. we'll call them "search:group",
> "search:group:event_queue", "group:im" and "group:im:event_queue". the
> protocol makes no assumptions as to whether the protocol endpoint that
> implements the "search:group:event_queue" and "group:im:event_queue"
> caps are the same URL or if they're different URLs. it would be
> advantageous for the client to be able to, upon seeing that both caps
> are implemented on the same URL NOT open a second connection to the
> url. so the question is.. representing event_queues as URLs is not a
> problem, right?


Ouch, head exploded.  :-). So do you mean that since
both "group:im:event_queue" and "search:group:event_queue" have the same cap
URL returned to the viewer, the viewer should only open one event queue to
that URL that expects to get both types of event queue traffic?

Suzy Deffeyes / Pixel Gausman
IBM

--001636427491d53142046b67d42e
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><br><div class=3D"gmail_quote">On Tue, Jun 2, 2009 at 5:22 PM, Infinity=
 Linden <span dir=3D"ltr">&lt;<a href=3D"mailto:infinity@lindenlab.com">inf=
inity@lindenlab.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quo=
te" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;=
">
so... event queues...<br>
<br>
* how many event queues do we need? are we only going to have one<br>
event queue from the client to the agent domain, and then have all<br>
other services forward messages they want to send to the client to the<br>
AD? or do we say... &quot;one event queue per client : host pair&quot;? or =
do we<br>
further define the concept of a &quot;service&quot; as a collection of rela=
ted<br>
caps, including an event queue?</blockquote><div><br></div><div>From a view=
er standpoint, I tend to like the &quot;funnel your service requests to the=
 AD&quot; because that makes it simpler to implement in the viewer, or at l=
east my fuzzy brain thinks that today. =A0</div>
<div><br></div><div>Is it proper to assume that any grouping of services wi=
ll be comfortable forwarding their requests to the AD? At first glance, it =
feels a bit like the AD is doing more than managing the agent, and feels li=
ke a bit of an odd control point.=A0</div>
<div><br></div><div>That said, should we be attempting to define what servi=
ce belongs in what collection? Different OGP implementations might want to =
group their services differently.=A0</div><div><br></div><div>=A0</div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex;">
<br>
* message count - should we let multiple server -&gt; client messages<br>
flow in a single request to the event queue cap?<br></blockquote><div><br><=
/div><div>Yes. Performance wise that seems to make sense, especially as mor=
e and more starts showing up in the event queue path.</div><div>=A0</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex;"><br>
* capabilities on the client - readers familiar with COMET or AJAX<br>
will remember that simply defining an event queue is just half the<br>
battle; rich clients are likely to have multiple objects that will<br>
receive messages along the queue, so you have to have some way to<br>
demultiplex messages. one way to do this is to model capabilities on<br>
the client as endpoints for messages flowing across the event queue.</block=
quote><div><br></div><div>This makes me think of another issue. The viewer&=
#39;s current way of thinking is that messages on either =A0HTTP or UDP is =
valid and acceptable. What is the expected behavior in OGP when group im is=
 being handled by the AD, and suddenly a group im message comes across from=
 region UDP? Should the viewer ignore it? If so, how do we do a runtime con=
fig of what messages are valid (and trusted) from what sources?=A0</div>
<div>=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex;"><br></blockquote><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid=
;padding-left:1ex;">
<br>
* externally identifying event queues - so imagine you&#39;re a client.<br>
you authenticate yourself to the agent domain and ask for caps for a<br>
couple services. we&#39;ll call them &quot;search:group&quot;,<br>
&quot;search:group:event_queue&quot;, &quot;group:im&quot; and &quot;group:=
im:event_queue&quot;. the<br>
protocol makes no assumptions as to whether the protocol endpoint that<br>
implements the &quot;search:group:event_queue&quot; and &quot;group:im:even=
t_queue&quot;<br>
caps are the same URL or if they&#39;re different URLs. it would be<br>
advantageous for the client to be able to, upon seeing that both caps<br>
are implemented on the same URL NOT open a second connection to the<br>
url. so the question is.. representing event_queues as URLs is not a<br>
problem, right?</blockquote><div><br></div><div>Ouch, head exploded. =A0:-)=
. So do you mean that since both=A0&quot;group:im:event_queue&quot; and=A0&=
quot;search:group:event_queue&quot; have the same cap URL returned to the v=
iewer, the viewer should only open one event queue to that URL that expects=
 to get both types of event queue traffic?</div>
<div><br></div><div>Suzy Deffeyes / Pixel Gausman</div><div>IBM</div></div>

--001636427491d53142046b67d42e--

From infinity@lindenlab.com  Wed Jun  3 15:41:58 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B093E3A707B for <ogpx@core3.amsl.com>; Wed,  3 Jun 2009 15:41:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.599
X-Spam-Level: 
X-Spam-Status: No, score=-1.599 tagged_above=-999 required=5 tests=[AWL=0.378,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7wh+iLnAOa0Y for <ogpx@core3.amsl.com>; Wed,  3 Jun 2009 15:41:57 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.242]) by core3.amsl.com (Postfix) with ESMTP id C84A23A6B76 for <ogpx@ietf.org>; Wed,  3 Jun 2009 15:41:56 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so218308ana.4 for <ogpx@ietf.org>; Wed, 03 Jun 2009 15:41:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.210.16 with SMTP id i16mr1738134ang.184.1244068912540;  Wed, 03 Jun 2009 15:41:52 -0700 (PDT)
Date: Wed, 3 Jun 2009 15:41:52 -0700
Message-ID: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: "ogpx@ietf.org" <ogpx@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: [ogpx] An Inquiry into the Nature and Causes of Web Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jun 2009 22:41:58 -0000

So there were a few questions off-line recently about capabilities and
their use in OGP. Some people understand them, some people don't. Some
people think they're cool, some people want to hurl inanimate objects
around at the mention of their name. But it does seem that there's a
lot of confusion about the motivation for caps in general and web
capabilities in OGP specifically. So i figured i would take a few
moments to try to demystify them.

1. What _Are_ Capabilities Anyway?

In General, capabilities are authorization tokens designed so that
possession of the token implies the authority to perform a specific
action. Consider a file handle in POSIX like systems. When you open a
file, you get back an integer representing the open file. You only get
this file handle back if you have access rights to the file. When you
spawn a new child process, the child inherits your open file handles
and it too can access those files via the file handle, even though the
child process lives in a completely different process space. Later
versions of *nix even allow you to move open file handles between
unrelated processes. So... the takeaway here is... it's an opaque bit
of data (i.e. - a token) and if you have it, it means you have the
authority to use it. And... you can pass it around if need be.

Capabilities on the web extend the concept. In addition to the token
connoting authorization to access some resource, it usually also
provides the address to access the resource. In other words, a web
capability is a URL possessed by a client that the client may use to
create, read, update or delete a resource. A web capabilities in OGP
are in the form of a "well known" portion of a URL (something like
"http://service.example.org/s/") and a large, unguessable, randomly
generated string (like "CE7A3EA0-2948-405D-A699-AA9F6293BDFE".)
Putting them together, you get a valid URL a client can use to access
a resource via HTTP. In this example, that URL would be
"http://service.example.org/s/CE7A3EA0-2948-405D-A699-AA9F6293BDFE".

2. Why the Heck Would I EVER Want to Do THAT !?

Yup. No doubt about it, this is not a "standard pattern" for web
services. Usually if you have a resource, you publish a well known
resource and if it's sensitive you require the client to log in. For
example, you might have a RESTful resource at
"http://service.example.org/s/group/AWGroupies" that represents the
group "AWGroupies". You then define an API that says if you want to
post a message to the group, you use HTTP POST with data (XML, JSON or
whatever) that implies "post this message to this group". For the sake
of discussion, let's say the JSON of the message would look like: {
from: "Zha Ewry", message: "I'm giving 50 L$ to anyone who IMs me in
the next 5 minutes!" }. This is a perfectly acceptable solution,
though readers familiar with AWGroupies will know that i am not, in
fact, the first life avatar of Zha Ewry, so i probably shouldn't be
posting messages to this group promising to disburse game specie in
her name. So authentication is in order, but this is a well known
problem, i simply use HTTP digest auth over HTTPS (or something
similar) and we're done. This is a perfectly acceptable solution.

But there are a couple of issues with this solution.

Most notably... every service that presents an interface to a
sensitive resource MUST understand authentication. So not only does
"http://service.example.org/s/group/AWGroupies" need to understand
authentication, so does
"http://service.example.org/s/user/Linden/Infinity" and
"http://service.example.org/s/parcel/Levenhall/Infinity%20is%20full%20of%stars"
and so on. Not a problem really, until you start adding new
authentication techniques. So one day your boss comes to you and tells
you.. "hey! we're using Secure/IDs for everything now!" Ugh. But it's
still not _that_ painful. You've probably abstracted out
authentication, so you have a map of service URLs to authentication
techniques and common libraries that actually authenticate requests
throughout your system.

And this works until the day that your boss comes in and says... "hey!
we just bought our competitor Cthulhos.Com! we're going to integrate
their FooWidget service into our service offering! isn't it great!"
And then you get that sinking feeling cause you know that this means
you've got to figure a way to get their service to talk to your
identity provider so their service can authenticate your customers.
People who have been through this know that depending on the
technology this can turn out to be a bag full of pain. The standard
way of doing this is something like:

a. service request come into http://service.example.org/s/foo/Infinity
b. http://service.example.org/s/foo/ redirects with a 302 to
http://foo.cthulhos.com/Infinity
c. http://foo.cthulhos.com/Infinity responds with a 401 getting the
client to resubmit the request with a WWW-Authenticate: header.
d. the client resubmits to http://foo.cthulhos.com/Infinity with the
proper WWW-Authenticate: header, but remember, these are example.org's
customers, so
e. http://foo.cthulhos.com/Infinity sends a message to a private
interface on example.org, asking it to authenticate the user
credentials.
f. let's assume the client is using valid credentials, so example.org
responds to cthulhos.com with the digital equivalent of a thumbs up,
and finally...
g. http://foo.cthulhos.com/Infinity responds to the request.

And this works pretty well up until the point that the new CIO comes
in and say.. "infocard! we're moving everything to infocard!" There's
nothing wrong with infocard, of course, but i this situation you've
got to implement it at both example.org and cthulhos.com. And when we
start adding to the mix the fact that the biz dev people keep trying
to buy new companies and you get a new CIO every 18 months who wants a
new user authentication technology, things can get out of hand. And...
i didn't even talk about the fact that each time you change the
authentication scheme, thick client developers have to go through the
code, looking for every place a request is made.

Web Capabilities are not a magic panacea, but they can help out in
this situation. Rather than having each request authenticated, the
user's identity is authenticated once at a central location and that
central location (example.org) coordinates with it's services
(cthulhos.com) to provide a unique, unguessable URL (the capability)
known only to that specific client and trusted systems (example.org
and cthulhos.com). So the flow would be something like...

a. client logs in at http://service.example.org/s/authme and asks for
a capability to use a particular service
b. http://service.example.org/s/authme verifies the user's credentials
and verifies the user can access that service
c. http://service.example.org/s/authme sends a request to a private
interface on cthulhos.com asking for the capability.
d. cthulhos.com generates the unguessable capability
http://foo.cthulhos.com/EE409B12-6E9B-4F5B-90BF-161AE5DE410C and
returns it to http://service.example.org/s/authme
e. http://service.example.org/s/authme returns the capability
http://foo.cthulhos.com/EE409B12-6E9B-4F5B-90BF-161AE5DE410C to the
client
f. the client uses the capability
http://foo.cthulhos.com/EE409B12-6E9B-4F5B-90BF-161AE5DE410C to access
the sensitive resource.

Both approaches require establishing a trusted interface between
example.org and cthulhos.com, but in the case of the capability
example, only service.example.org has to know about the specific
details of user authentication. Thick client developers may also
notice that they access the capability as if it were a public
resource; that is, they don't need to authenticate each request.

Another benefit to capabilities is that they are pre-authorized. If
you have a resource that is accessed frequently (like maybe "get the
next 10 inventory items" or "check to see if there are any messages on
the event queue for me") you don't have to do the username ->
permissions look up each time the server receives a request. For
environments where the server makes a network request for each
permissions check, this can lead to reduced request latency.

So... to recap... capabilities are not magic panaceas... there's still
some work involved in implementing them. and they start making a lot
more sense when you have a cluster of machines offering service to a
client, but deployers want identity and identity to permissions
mapping functions to live elsewhere in the network than the machine
offering a service. (i.e. - "the cloud" or "the grid".)

3. Okay... But How Do I Provision a Capability ?

I'm sure there are several ways to provision capabilities, but the
approach we take in OGP is to use the "seed capability."

Like most other distributed protocols involving sensitive resources,
OGP protocol interactions begin with user authentication. (This is not
strictly true, 'cause i'm ignoring the case where two machines want to
communicate outside the context of a user request, but let me hand
wave that use case away for the moment while we talk about using seed
caps.)

The process begins with user authentication. The OGP : Auth
specification describes this process; it is essentially the client
sending an avatar name and a password to a server in the agent domain.
Assuming the authentication request can be validated, the agent domain
returns a "seed cap." The client then sends a list of capability names
to the seed cap and awaits the response.

What the host behind the seed cap is doing while the client waits for
a reply is verifying the requested capability exists and the user is
permitted to perform the operation implied by the capability. (and it
does this for each capability requested.)

So, for example, let's say you are a client that only wants to update
a user profile and send/receive group messages. The protocol
interaction might look something like this...

a. authentication : client -> server at https://example.org/login

{
  identifier: {
    type: "agent",
    first_name: "Random",
    last_name: "Avatar"
  },
  authenticator: {
    type: "hash",
    algorithm: "md5",
    secret: "i1J8B0rOmekRn8ydeup6Dg=="
  }
}

b. auth response : server -> client

{
  condition: "success",
  agent_seed_capability:
"https://service.example.org/seed/CF577955-3E0D-4299-8D13-F28345D843F3"
}

c. asking the seed for the other caps : client -> server at
https://service.example.org/seed/CF577955-3E0D-4299-8D13-F28345D843F3

{
  capabilities : [
    "profile/update",
    "groups/search"
  ]
}

d. the response with the URIs for the caps : server -> client

{
  capabilities : {
    profile/update :
"http://service.example.org/user/35A59C5D-315C-4D50-B78D-A38D41D2C90A",
    groups/search : "http://cthulhos.com/8579CE1F-9C05-43E8-8677-A645859DCD64"
  }
}

4. Expiring Capabilities

Readers may notice that there is a potential "TOCTOU vulnerability."
TOCTOU stands for "time of check, time of use," and refers to a common
security problem... what happens if the permissions on an object
change between the time the code managing the resource checks the
permission and the time it performs an operation on the resource.

This is a common problem with many systems, including POSIX file
descriptors. (seriously.. if you change the permissions on a file to
disallow writing AFTER the file has been opened, subsequent writes on
the file descriptor will not fail in many POSIX systems.)

OGP capabilities address this problem by expiring capabilities when
they get old. So if you request a capability, then wait a LONG time
before you access it, you may find that you get a 404 response code.
The OGP specifications do not require all caps to expire, but the do
require servers to signal their expiration by removing them (thus the
404 response) and require clients to understand what to do when a
capability has been expired. In most cases, the appropriate response
is to re-request the capability from the seed cap. If the seed cap is
expired, clients should re-authenticate.

Capabilities may also "expire after first use." Also called "single
shot capabilities," they are used to communicate sensitive or highly
volatile information to the client.

The current practice is to include an Expires: header in the response
from the server so the client will know when the resource expires.

5. Introspection on Capabilities

Finally, RESTful resources represented by a capability are described
by LLIDL, the interface description language used by LLSD. A request
has been made that introspection be supported so clients may receive
the LLIDL description of a capability and more accurately reason about
the semantics of its use.

The proposed solution to this problem for OGP messages carried over
HTTP is to use the OPTIONS method when accessing the capability
(instead of GET, POST, PUT or DELETE.) Upon receipt of the OPTIONS
request, the server should respond with the LLIDL describing the
resource.

6. Conclusion

Capabilities are cool, especially in clouds or grids.

7. References

A pair of Google Tech Talks at:
  http://video.google.com/videoplay?docid=-8527120258517176598 , and
  http://video.google.com/videoplay?docid=8799856896828158583
provide a pretty good technical introduction to the concept of capabilities.

OGP's description of capabilities is at:
  http://tools.ietf.org/html/draft-lentczner-ogp-base-00#section-2.3

OGP uses capabilities to access RESTful resources. Roy Fielding's
paper on REST is at:
  http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

From cenji.neutra@gmail.com  Thu Jun  4 12:20:11 2009
Return-Path: <cenji.neutra@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E61893A6944 for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 12:20:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4YmUoIVsC8jz for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 12:20:10 -0700 (PDT)
Received: from mail-qy0-f204.google.com (mail-qy0-f204.google.com [209.85.221.204]) by core3.amsl.com (Postfix) with ESMTP id 608683A682F for <ogpx@ietf.org>; Thu,  4 Jun 2009 12:20:10 -0700 (PDT)
Received: by qyk42 with SMTP id 42so1439857qyk.29 for <ogpx@ietf.org>; Thu, 04 Jun 2009 12:19:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=y+xHmpNK6qgqz5F/5vzDDA7IFIP4LUNwuNWePrtac6U=; b=qFnw1NjI05eVEsmA8cZ5ZrCJLbqsDTVQWlR7iqstYijnVA2NrTlE6IZ+ONvIjlGwFP NAOUxwB7hui9ycey83i0ocWaOFRq2ssW0uwm19/rYGrkdSYrx7uGf0YaaeKJyntsT3Io HOgnnXELao+yPzpexSGmYMmXbBA9zCpTwx64U=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=f5gKobmiWpWsw3k1MSEeqMZuQ+rRZMzQGjeVHs0tkZY5nKe8RDikLS0i0AweMMXwl8 YqN1U2imYUJ4jD/OpiZCl6mS+LoWBeDFqcOeQANP4ujy9r9hMtyrCUesiwy77G4llUSX 0lIc2KVIlRjSLwCYEmEahZZ4FzmoMOrUduvxY=
MIME-Version: 1.0
Received: by 10.224.32.135 with SMTP id c7mr2704911qad.383.1244143186617; Thu,  04 Jun 2009 12:19:46 -0700 (PDT)
Date: Thu, 4 Jun 2009 15:19:46 -0400
Message-ID: <b76a7f90906041219r4b96532bn80786b13897ae413@mail.gmail.com>
From: Cenji Neutra <cenji.neutra@gmail.com>
To: ogpx@ietf.org
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2009 19:20:12 -0000

In my mind the number one requirement for any resource
authentication/authorization system to be used by a virtual world is
scalability.  By "scalability" I mean inherently theoretically
scalable to arbitrary sizes, not just 'quite large if you throw a lot
of hardware at it and do not think too far into the future' scalable.
:)

A few observations about the Web capabilities as I understand they're
designed from Infinity's description:

1. All the capabilities have the same domain URL prefix.  So, the only
way request volume can be scaled (currently) is using round-robin DNS
entries.  I doesn't seem like that would get you very far.   How do
you envision implementations getting around that limitation?
(For example, if only requests for the seed capability were directed
to that domain, issuing secondary capabilities with different domains
would allow get you a bit farther by utilizing DNS itself for resource
location).  Does that imply that you envision the future internet
being a large number of 'grids' each with its own associated domain to
which seed cap requests are directed? (so that if any one grid starts
to hit limits to scalability, it can just be split into multiple? -
don't want to discuss how that interplays with identity here..).
Just a thought, perhaps the key part of the cap URL should be a
subdomain so that DNS can be used to distribute/locate the resources
(e.g.   http://A.5.F.2.6.7.3 ... 4.E.B.caps.mygrid.com could be a cap
- except a digit isn't a valid domain part, so it would need to be
prefixed with a character.)

2. Are client requests for capabilities required to respond to HTTP
redirects?  If so, that might provide an alternative way to implement
a 'DNS-like' recursive delegation tree - if clients were able to cache
those redirections for a finite period (e.g. analogous to the DNS
record TTL scheme).

3. The capability is not self-contained / has no intrinsic meaning:
Is it 'cheap' / O(1) to check the validity of a capability?  Since the
capability itself identifies the service end-point for the resource,
depending on the design of the grid, it may be that the service has
all the information it needs to check the capability and what
permissions it grants to whom for what.  Can anyone think of a useful
implementation for which that information may not be co-located with
the resource and hence might require additional (expensive) look-up
processes?  That could be a serious impediment to scalability.
If so, perhaps a better implementation of capabilities might include
all the information about what it grants to whom for which resources
encoded as part of the capability itself.  The information can be
cryptographically signed to provide the same protection against
generation of capabilities, but has the added benefit that no lookup
is required at the service end-point.  The capability could also gain
some measure of 'readability' too - though if that isn't desirable
that URL part can also be encrypted.  Such capabilities would likely
be much longer URLs.
The obvious drawback to a scheme like this is that revocation becomes
expensive.  It could be argued that the amount of information that
needs to be distributed and maintained to implement distributed
revocation lists is much less than the amount needed to be maintained
to implement the reverse (effectively distributed authorization) as
revoked capabilities are the exception rather than the norm,
presumably.

4. The capability intrinsically identifies the resource, the service
end-point and authentication in one string.  That might considerably
complicate natural use-cases where more than one resource is involved
in a single operation.  If I have two capabilities identifying two
resources, which one do I use as the service end-point URL?  How is an
operation on two (or more) resources represented? For example, suppose
my friends Joe and Emma wish to grant me the capability to trigger a
payment from Joe's account to Emma's account for L$20.  It can
obviously be implemented, but less 'naturally' than a design where the
resources, service end-point and authentication are separated.

5. Capabilities are a very old idea - any experts out there happen to
be familiar with existing systems that use them and their trade-offs
and lessons?

-David
(Cenji Neutra inSL)

From john.hurliman@intel.com  Thu Jun  4 12:41:32 2009
Return-Path: <john.hurliman@intel.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A49FD3A6AFB for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 12:41:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c8xprK0pXevo for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 12:41:31 -0700 (PDT)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by core3.amsl.com (Postfix) with ESMTP id 8CE483A6AB3 for <ogpx@ietf.org>; Thu,  4 Jun 2009 12:41:31 -0700 (PDT)
Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 04 Jun 2009 12:28:53 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.41,306,1241420400"; d="scan'208";a="463603249"
Received: from rrsmsx604.amr.corp.intel.com ([10.31.0.170]) by fmsmga002.fm.intel.com with ESMTP; 04 Jun 2009 12:35:38 -0700
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx604.amr.corp.intel.com ([10.31.0.170]) with mapi; Thu, 4 Jun 2009 13:41:32 -0600
From: "Hurliman, John" <john.hurliman@intel.com>
To: Cenji Neutra <cenji.neutra@gmail.com>, "ogpx@ietf.org" <ogpx@ietf.org>
Date: Thu, 4 Jun 2009 13:41:25 -0600
Thread-Topic: [ogpx] An Inquiry into the Nature and Causes of Web Capabilities
Thread-Index: AcnlSX+GnJaRhmCBSQys2TyzWVNkLAAALVaw
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D90F130F9@rrsmsx506.amr.corp.intel.com>
References: <b76a7f90906041219r4b96532bn80786b13897ae413@mail.gmail.com>
In-Reply-To: <b76a7f90906041219r4b96532bn80786b13897ae413@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2009 19:41:32 -0000

Comments inline.

>-----Original Message-----
>From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On Behalf Of
>Cenji Neutra
>Sent: Thursday, June 04, 2009 12:20 PM
>To: ogpx@ietf.org
>Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web
>Capabilities
>
>In my mind the number one requirement for any resource
>authentication/authorization system to be used by a virtual world is
>scalability.  By "scalability" I mean inherently theoretically
>scalable to arbitrary sizes, not just 'quite large if you throw a lot
>of hardware at it and do not think too far into the future' scalable.
>:)
>
>A few observations about the Web capabilities as I understand they're
>designed from Infinity's description:
>
>1. All the capabilities have the same domain URL prefix.
>

Where do you see this requirement? This is definitely not how I am using th=
em currently. In fact, capabilities make it easy to implement load balancin=
g by handing out capabilities pointing to different domains/servers that ar=
e tied to the same backend infrastructure.

>2. Are client requests for capabilities required to respond to HTTP
>redirects?  If so, that might provide an alternative way to implement
>a 'DNS-like' recursive delegation tree - if clients were able to cache
>those redirections for a finite period (e.g. analogous to the DNS
>record TTL scheme).

I don't know if this is specifically mentioned in the spec or not (if it is=
n't, it should) but I've been implementing capabilities to follow normal HT=
TP patterns as closely as possible. Meaning 302 redirects are followed.

>
>3. The capability is not self-contained / has no intrinsic meaning:
>Is it 'cheap' / O(1) to check the validity of a capability?  Since the
>capability itself identifies the service end-point for the resource,
>depending on the design of the grid, it may be that the service has
>all the information it needs to check the capability and what
>permissions it grants to whom for what.  Can anyone think of a useful
>implementation for which that information may not be co-located with
>the resource and hence might require additional (expensive) look-up
>processes?  That could be a serious impediment to scalability.
>If so, perhaps a better implementation of capabilities might include
>all the information about what it grants to whom for which resources
>encoded as part of the capability itself.  The information can be
>cryptographically signed to provide the same protection against
>generation of capabilities, but has the added benefit that no lookup
>is required at the service end-point.  The capability could also gain
>some measure of 'readability' too - though if that isn't desirable
>that URL part can also be encrypted.  Such capabilities would likely
>be much longer URLs.
>The obvious drawback to a scheme like this is that revocation becomes
>expensive.  It could be argued that the amount of information that
>needs to be distributed and maintained to implement distributed
>revocation lists is much less than the amount needed to be maintained
>to implement the reverse (effectively distributed authorization) as
>revoked capabilities are the exception rather than the norm,
>presumably.
>

The capabilities server in the OpenMetaverse.Http library uses O(1) lookups=
 to pull up metadata about the request including permissions. Using the cap=
ability as a data storage format instead of a simple lookup token seems out=
 of scope of the intention. Revocation is also O(1) and immediate, meaning =
the design isn't susceptible to race conditions when a capability is revoke=
d. It would be difficult to securely implement things like one time capabil=
ities otherwise.

>4. The capability intrinsically identifies the resource, the service
>end-point and authentication in one string.  That might considerably
>complicate natural use-cases where more than one resource is involved
>in a single operation.  If I have two capabilities identifying two
>resources, which one do I use as the service end-point URL?  How is an
>operation on two (or more) resources represented? For example, suppose
>my friends Joe and Emma wish to grant me the capability to trigger a
>payment from Joe's account to Emma's account for L$20.  It can
>obviously be implemented, but less 'naturally' than a design where the
>resources, service end-point and authentication are separated.
>

I think the sentence about capabilities representing everything in one stri=
ng is being read too literally. A capability acts as a proxy to a service e=
ndpoint and can optionally store authentication, authorization, and/or othe=
r metadata where the capability acts as a lookup key for this data. A typic=
al use case would be a service endpoint that you authorize access to and gr=
ant a capability. What you actually do at that service point would be handl=
ed at another layer of the protocol. Maybe you would be sending a message t=
hat says "transfer money from account X to account Y", but that's another d=
iscussion.

>5. Capabilities are a very old idea - any experts out there happen to
>be familiar with existing systems that use them and their trade-offs
>and lessons?
>
>-David
>(Cenji Neutra inSL)

I don't proclaim myself as a security expert and I haven't implemented them=
 in any other systems, but I do lead development on the OpenMetaverse libra=
ry and the Cable Beach architecture and have had success with them in archi=
tecture design and when it comes time to write the actual code.

John

From infinity@lindenlab.com  Thu Jun  4 13:38:22 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 95DC43A6A74 for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 13:38:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.646
X-Spam-Level: 
X-Spam-Status: No, score=-1.646 tagged_above=-999 required=5 tests=[AWL=0.331,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GwloOHLZP+mI for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 13:38:21 -0700 (PDT)
Received: from mail-gx0-f214.google.com (mail-gx0-f214.google.com [209.85.217.214]) by core3.amsl.com (Postfix) with ESMTP id 3E1F73A687F for <ogpx@ietf.org>; Thu,  4 Jun 2009 13:38:21 -0700 (PDT)
Received: by gxk10 with SMTP id 10so1834207gxk.13 for <ogpx@ietf.org>; Thu, 04 Jun 2009 13:38:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.254.12 with SMTP id b12mr3236840ani.43.1244147900656; Thu,  04 Jun 2009 13:38:20 -0700 (PDT)
In-Reply-To: <b76a7f90906041219r4b96532bn80786b13897ae413@mail.gmail.com>
References: <b76a7f90906041219r4b96532bn80786b13897ae413@mail.gmail.com>
Date: Thu, 4 Jun 2009 13:38:20 -0700
Message-ID: <3a880e2c0906041338q4319edafr5f149a9c3d36b1f1@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Cenji Neutra <cenji.neutra@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2009 20:38:22 -0000

On Thu, Jun 4, 2009 at 12:19 PM, Cenji Neutra <cenji.neutra@gmail.com> wrot=
e:
> In my mind the number one requirement for any resource
> authentication/authorization system to be used by a virtual world is
> scalability. =A0By "scalability" I mean inherently theoretically
> scalable to arbitrary sizes, not just 'quite large if you throw a lot
> of hardware at it and do not think too far into the future' scalable.
> :)
>
> A few observations about the Web capabilities as I understand they're
> designed from Infinity's description:
>
> 1. All the capabilities have the same domain URL prefix. =A0So, the only
> way request volume can be scaled (currently) is using round-robin DNS
> entries. =A0I doesn't seem like that would get you very far. =A0 How do
> you envision implementations getting around that limitation?
> (For example, if only requests for the seed capability were directed
> to that domain, issuing secondary capabilities with different domains
> would allow get you a bit farther by utilizing DNS itself for resource
> location). =A0Does that imply that you envision the future internet
> being a large number of 'grids' each with its own associated domain to
> which seed cap requests are directed? (so that if any one grid starts
> to hit limits to scalability, it can just be split into multiple? -
> don't want to discuss how that interplays with identity here..).
> Just a thought, perhaps the key part of the cap URL should be a
> subdomain so that DNS can be used to distribute/locate the resources
> (e.g. =A0 http://A.5.F.2.6.7.3 ... 4.E.B.caps.mygrid.com could be a cap
> - except a digit isn't a valid domain part, so it would need to be
> prefixed with a character.)

you can do round robin if you like, but i think we're anticipating
capabilities living on machines other than the one you log into. The
verbiage "Other than for the security considerations below, the client
must not rely on any assumed structure of the capability URL." in
section 2.3 of the OGP : Base implies this. But... if you didn't pick
it up from a read through the document, other people aren't either, so
in the next rev we'll make it explicit.

>
> 2. Are client requests for capabilities required to respond to HTTP
> redirects? =A0If so, that might provide an alternative way to implement
> a 'DNS-like' recursive delegation tree - if clients were able to cache
> those redirections for a finite period (e.g. analogous to the DNS
> record TTL scheme).

yes. clients SHOULD respond to 301's and 302's.

>
> 3. The capability is not self-contained / has no intrinsic meaning:
> Is it 'cheap' / O(1) to check the validity of a capability? =A0Since the
> capability itself identifies the service end-point for the resource,
> depending on the design of the grid, it may be that the service has
> all the information it needs to check the capability and what
> permissions it grants to whom for what. =A0Can anyone think of a useful
> implementation for which that information may not be co-located with
> the resource and hence might require additional (expensive) look-up
> processes? =A0That could be a serious impediment to scalability.
> If so, perhaps a better implementation of capabilities might include
> all the information about what it grants to whom for which resources
> encoded as part of the capability itself. =A0The information can be
> cryptographically signed to provide the same protection against
> generation of capabilities, but has the added benefit that no lookup
> is required at the service end-point. =A0The capability could also gain
> some measure of 'readability' too - though if that isn't desirable
> that URL part can also be encrypted. =A0Such capabilities would likely
> be much longer URLs.
> The obvious drawback to a scheme like this is that revocation becomes
> expensive. =A0It could be argued that the amount of information that
> needs to be distributed and maintained to implement distributed
> revocation lists is much less than the amount needed to be maintained
> to implement the reverse (effectively distributed authorization) as
> revoked capabilities are the exception rather than the norm,
> presumably.
>

capabilities, as portable "authentication" tokens are supposed to
eliminate or reduce the requirement to resolve a requester's identity
an then map it to a set of permissions. the concept of capabilities
does not REQUIRE the underlying resource to model permissions in this
way, but it does allow it. and obviously, if you had a network service
that defined subject-verb-object tuples, caching that mapping local to
the underlying resource (should) give you better performance and
better scaling behavior than caching the identity local to the
underlying resource and then querying the network SVO store.

> 4. The capability intrinsically identifies the resource, the service
> end-point and authentication in one string. =A0That might considerably
> complicate natural use-cases where more than one resource is involved
> in a single operation. =A0If I have two capabilities identifying two
> resources, which one do I use as the service end-point URL? =A0How is an
> operation on two (or more) resources represented? For example, suppose
> my friends Joe and Emma wish to grant me the capability to trigger a
> payment from Joe's account to Emma's account for L$20. =A0It can
> obviously be implemented, but less 'naturally' than a design where the
> resources, service end-point and authentication are separated.
>

mmm... we actually have experience doing exactly this. yes, it is less
obvious how it's done than say an XML-RPC style interface, but it's
certainly doable. lemme dig through our list of services and provide
some more examples of this.

> 5. Capabilities are a very old idea - any experts out there happen to
> be familiar with existing systems that use them and their trade-offs
> and lessons?
>

Mark Miller is about as close to an expert on capabilities as you can
find out there these days. And while i'm not sure modeling protocol
interactions as a collection of caps mediated contracts is the
clearest way to represent things, it's clear he's though through the
use cases. You can find documentation he's written by googling +"mark
miller" +capabilities. Also.. the reference i gave,
http://video.google.com/videoplay?docid=3D-8527120258517176598 , is a
google talk he gave. The other google tech talk reference i gave with
Tyler Close is good too.

> -David
> (Cenji Neutra inSL)
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>

From carlo@alinoe.com  Thu Jun  4 15:57:40 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A249C3A6A5A for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 15:57:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.43
X-Spam-Level: 
X-Spam-Status: No, score=-1.43 tagged_above=-999 required=5 tests=[AWL=-0.000,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745, HS_INDEX_PARAM=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XOXG6hQYNBDC for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 15:57:40 -0700 (PDT)
Received: from viefep18-int.chello.at (viefep18-int.chello.at [62.179.121.38]) by core3.amsl.com (Postfix) with ESMTP id 726B13A681C for <ogpx@ietf.org>; Thu,  4 Jun 2009 15:57:37 -0700 (PDT)
Received: from edge03.upc.biz ([192.168.13.238]) by viefep18-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090604225736.XKKC7322.viefep18-int.chello.at@edge03.upc.biz>; Fri, 5 Jun 2009 00:57:36 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge03.upc.biz with edge id zyxa1b03y0FlQed03yxcKA; Fri, 05 Jun 2009 00:57:36 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MCLtQ-0006IO-28; Fri, 05 Jun 2009 00:58:40 +0200
Date: Fri, 5 Jun 2009 00:58:40 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090604225840.GA23547@alinoe.com>
References: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web	Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2009 22:57:40 -0000

I think it might be better to separate capability and the hostname
of the url. That is, if you are passed:

http://db33.example.com/foo/?5923828591293879468287348955

then the capability should be "foo/?5923828591293879468287348955".

In particular, an capability url

http://db33.example.com/foo/?5923828591293879468287348955

and

http://db34.example.com/foo/?5923828591293879468287348955

should be garanteed to be the same capability.

The main reason for this idea is because I'm worried about
unreachable hosts, or the lifetime that capabilities need
to be kept alive.

Now assume that a client knows that it can choose from
a pool of hostnames for a given capability (ie, the two
above), then a problem might occur if access of the
capability is supposed to change a state. For example,
it cannot be allowed to use the same capability twice;
then accessing both hosts at the same time still needs
to result in the access of a single database.

Do you think the hostname has to be fixed? Would the
above idea have too great disadvantages?

-- 
Carlo Wood <carlo@alinoe.com>

From cenji.neutra@gmail.com  Thu Jun  4 17:36:45 2009
Return-Path: <cenji.neutra@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 768543A6A6A for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 17:36:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 94jca1Gwdvnc for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 17:36:44 -0700 (PDT)
Received: from mail-qy0-f184.google.com (mail-qy0-f184.google.com [209.85.221.184]) by core3.amsl.com (Postfix) with ESMTP id 373E73A6A20 for <ogpx@ietf.org>; Thu,  4 Jun 2009 17:36:44 -0700 (PDT)
Received: by qyk14 with SMTP id 14so275166qyk.29 for <ogpx@ietf.org>; Thu, 04 Jun 2009 17:36:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Hr5g2+WhogK1SvqlifDVEcwwzrUSY6SGIv2qkfr4tTE=; b=TuHEVB/Rz3SeL74dkiT2Fj+u+r9alANY2LKE1QGBoE7IqK9GxQRQv9StCmgN4c9ds3 aERnM/OSarMIpnFzRIIPHzVc+ut5CPPLQpecld0QpoB6TF8vqH4ZZfiLnxL9DkQmTPTX 5ETNb9rQYBjhxxo+h0PDmhxHOqTG8QS8VQnLQ=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=tarHBPFNbm0dALsAPS42WQYYV50JTWGFEfDAuJZz35d7EqRPuKxrVfkTFHMaurHayc VIWYV3/Bq6ArqN0x0RYdZEzmWqEVStHWIN9TAAEsE6UItwyqPQdnifMNPZHwLDCg+l4M WeeEjGiOrDOBCg6gJR1HpnlEjUUf9IKHPcs88=
MIME-Version: 1.0
Received: by 10.224.28.80 with SMTP id l16mr3058827qac.71.1244162204031; Thu,  04 Jun 2009 17:36:44 -0700 (PDT)
In-Reply-To: <62BFE5680C037E4DA0B0A08946C0933D90F130F9@rrsmsx506.amr.corp.intel.com>
References: <b76a7f90906041219r4b96532bn80786b13897ae413@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D90F130F9@rrsmsx506.amr.corp.intel.com>
Date: Thu, 4 Jun 2009 20:36:44 -0400
Message-ID: <b76a7f90906041736w66adf12dxc12f77586ce4ef2@mail.gmail.com>
From: Cenji Neutra <cenji.neutra@gmail.com>
To: "Hurliman, John" <john.hurliman@intel.com>, Infinity Linden <infinity@lindenlab.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2009 00:36:45 -0000

On Thu, Jun 4, 2009 at 3:41 PM, Hurliman, John <john.hurliman@intel.com> wr=
ote:
>>1. All the capabilities have the same domain URL prefix.
> Where do you see this requirement?
> [...]
> > I don't know if this is specifically mentioned in the spec or not (if i=
t isn't, it should) but I've been implementing capabilities to follow norma=
l HTTP patterns as closely as possible. Meaning 302 redirects are followed.

I must have assumed it when I read "A web capabilities in OGP are in
the form of a 'well known' portion of a URL (something like
'http://service.example.org/s/';)".
So, the combination of flexibility in use of capability domain within
a grid coupled with redirects can provide a hierarchical 'load
balancing' for resource service end-points then.  That will help
scalability.

> [..] Using the capability as a data storage format instead of a simple lo=
okup token seems out of scope of the intention.

Perhaps - I'm not certain of the scope/intention, but in literature
I'm familiar with (from Operating Systems area), the term 'capability'
is used to refer to the information about the
permissions/authorizations, not the token used to reference it - so
the the OGP use of the term was a little confusing to me at first.
Indeed, not all capability based system use the 'segregated'
capability protection scheme - so there may be no such token involved
in general.  When the 'password' or 'tagging' capability protection
models are used it is that actual permission/authorization data that
is passed around by clients in order to present for access to the
resource (hence, for those systems, a capability is the "storage" and
there are no other tokens).

If I understand correctly, the format of the path component of web
capabilities is opaque - which would leave it open for implementers to
use it as such a 'store' in order to eliminate the need for token
lookup.

> Revocation is also O(1) and immediate, meaning the design isn't susceptib=
le to race conditions when a capability is revoked. It would be difficult t=
o securely implement things like one time capabilities otherwise.

I assume that is only the case because the capability information is
stored entirely in one location - the host to which the capability
domain resolves, right? (i.e. the token is already known to the server
fielding the request before it is made, correct?)

> I don't proclaim myself as a security expert and I haven't implemented th=
em in any other systems, but I do lead development on the OpenMetaverse lib=
rary and the Cable Beach architecture and have had success with them in arc=
hitecture design and when it comes time to write the actual code.

I've also implemented a capability based authorization system, but
didn't utilize tokens - instead embedding the authorization
information in the string itself and used a cryptographic scheme to
encode and sign it.  Our system doesn't provide the ability to revoke
permissions at all (though all capabilities expire - the expiry
timestamp being embedded into it).  I'm certainly no expert either
though.


On Thu, Jun 4, 2009 at 4:38 PM, Infinity Linden <infinity@lindenlab.com> wr=
ote:
> But... if you didn't pick
> it up from a read through the document, other people aren't either, so
> in the next rev we'll make it explicit.

Honestly, I didn't read it right before posting (though I've read
previous versions before).  Explicit is good though :)

My concern is with scalability.  Consider the DNS system.  It isn't
inherently scalable, but has managed thus far by having a
hierarchically decomposed 'load balancing' structure and, importantly,
allowing DNS servers to cache the results of 'recursive' delegation
chains (perhaps when there are a trillion people on earth it'll need
to be re-implemented using a distributed hash-table or something).
>From what you've both said, it sounds like the current OGP proposal
will allow a similar scheme - where the 'seed' cap server plays the
role of the 'root' and can delegate to a hierarchy of servers using
repeated HTTP redirects.  Now, since the URLs are to be treated as
opaque, they have no structure for caching intermediate redirect
results usefully like domains do.  However, a particular
implementation would be free to return URLs that actually use the
domain part to achieve it using a hierarchy of DNS servers (e.g. with
caps like http://a.c.b5. ... .f.e.inventory.myagentdom.org or
whatever).

Thanks for your replies - I understand it more clearly now.  It
appears the existing scheme can be scaled somewhat.

-David
(aka Cenji Neutra inSL)

From cfk@pacbell.net  Thu Jun  4 17:47:28 2009
Return-Path: <cfk@pacbell.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BB32B3A6AD0 for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 17:47:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 532SB-L4-gPF for <ogpx@core3.amsl.com>; Thu,  4 Jun 2009 17:47:28 -0700 (PDT)
Received: from web82606.mail.mud.yahoo.com (web82606.mail.mud.yahoo.com [68.142.201.123]) by core3.amsl.com (Postfix) with SMTP id 0733C3A6905 for <ogpx@ietf.org>; Thu,  4 Jun 2009 17:47:27 -0700 (PDT)
Received: (qmail 84550 invoked by uid 60001); 5 Jun 2009 00:47:27 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pacbell.net; s=s1024; t=1244162847; bh=m7x0LoBK677HpO71v0j/bKsulNmSCXP3wseBI764sLs=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=W1j5pSGJTR9lQQAuix0HlYtLJiO/YjpjFNL4mrjKeIqndR+y9p08kF2MfgtyNmKGhvRVkRRQd47VkeWvbEVryALCDj0iN0ar81ErmuBz7gf93GbnTp46mlBlNxtyVF70MB/qJAp61MvRNtqrhOYctgzY2GQbmZ4dRE3PfV9UNVg=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=pacbell.net; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=qxG31NMQ5p97zZ1LWqaUklIaEktMpT2ajpY2HsMPiTk3EX3T2c+ol5aBOrM4Nc7DSvFmQyHdANtXbF0MCi5ERmxK+evG8ukmjXLGNxBc2clEhj8T3bOquOEEkS80yLLjHiB3tJivIhiem0+bLOI+6zPfPO3ZlGF3BHXClcVsT8w=;
Message-ID: <174113.83980.qm@web82606.mail.mud.yahoo.com>
X-YMail-OSG: zfohZOYVM1nw0obLOJfCpEPWAGbnSWreCO3ifJpUbOPUGXt7PekAvVRHuJx__YR8CrxFCXwUOOETeUIHBkVYWsz9xIYJnsDkeT2p6kN0uM96s8AHsdFmzZmne3ZHxlPtVQyf6luLTpXjzl8BcvbC_RIZ_9XHcMD.R.gyIo2RBJ7ewpaOCveEzl15f1f.HatEhylo6d9JOIhP9sY6DZaLdtlMiNr2VhWDUONG6WHjOrfVd5tOetu4eUHcbEg8aF1Yawc_JPj0Rx.jlduCWOCrknLqcqOOwSSVjZ.wOjcSmyfK97ikCCtnjxR8Xg--
Received: from [67.120.11.69] by web82606.mail.mud.yahoo.com via HTTP; Thu, 04 Jun 2009 17:47:27 PDT
X-Mailer: YahooMailRC/1277.43 YahooMailWebService/0.7.289.10
Date: Thu, 4 Jun 2009 17:47:27 -0700 (PDT)
From: Charles Krinke <cfk@pacbell.net>
To: ogpx@ietf.org
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-1565459442-1244162847=:83980"
Subject: [ogpx] ?
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2009 00:49:04 -0000

--0-1565459442-1244162847=:83980
Content-Type: text/plain; charset=us-ascii

Is this the place?

Charles

--0-1565459442-1244162847=:83980
Content-Type: text/html; charset=us-ascii

<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:14pt"><div>Is this the place?<br><br>Charles<br></div></div></body></html>
--0-1565459442-1244162847=:83980--

From cs@comlounge.net  Fri Jun  5 01:22:21 2009
Return-Path: <cs@comlounge.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 387173A69F0 for <ogpx@core3.amsl.com>; Fri,  5 Jun 2009 01:22:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_36=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VEpe5OrLjMJx for <ogpx@core3.amsl.com>; Fri,  5 Jun 2009 01:22:19 -0700 (PDT)
Received: from post.comlounge.net (post.comlounge.net [85.214.59.142]) by core3.amsl.com (Postfix) with ESMTP id F16D03A6864 for <ogpx@ietf.org>; Fri,  5 Jun 2009 01:22:18 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by post.comlounge.net (Postfix) with ESMTP id 401551CE01D4; Fri,  5 Jun 2009 10:22:21 +0200 (CEST)
Received: from post.comlounge.net ([127.0.0.1]) by localhost (h1346004.stratoserver.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cdqxRkEDcEGU; Fri,  5 Jun 2009 10:22:18 +0200 (CEST)
Received: from [192.168.2.101] (p5B3D7A60.dip.t-dialin.net [91.61.122.96]) by post.comlounge.net (Postfix) with ESMTP id F03B41CE003F; Fri,  5 Jun 2009 10:22:17 +0200 (CEST)
Message-ID: <4A28D5B7.6000208@comlounge.net>
Date: Fri, 05 Jun 2009 10:22:15 +0200
From: Christian Scholz <cs@comlounge.net>
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
MIME-Version: 1.0
To: Infinity Linden <infinity@lindenlab.com>
References: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com>
In-Reply-To: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2009 08:22:21 -0000

Hi!

First I personally like my components to do authorization themselves, it 
feels more secure to me. Also as in the Linden Lab setup I don't really 
like that I need an internal network I need to protect. I could possibly 
do this by running my backend servers on 127.0.0.1 but that relies for 
me too much on configuration. Moreover it gets harder if you want to 
implement caps in a standalone server as you cannot use the toolset 
common web frameworks give you. You'd need to implement an internal 
mapping yourself.

That's why I like OAuth better, mostly because it already has wider 
adoption and tools are around.

As for your use case of adding new components (which seem to have no 
authorization mechanism yet of themselves) why not simply adding an 
OAuth proxy in front?

And as for InfoCards etc.: Wouldn't this be mostly the login step? After 
that you'd either get a seed cap or an oauth access token.

Here some brainstorming:

- you have all your components listed in an XRD file describing which 
services are located where, that can be possible done on a per user 
basis so that the client once retrieves all the necessary URLs.
- you have some Access Broker authorized via an OAuth Access Token which 
can give out additional OAuth tokens for those services (similar to a 
seed cap).
- you use those access tokens to perform requests on the URLs derived 
from the XRD file
- in case your component has no authorization code of itself you put a 
proxy in front which checks the OAuth token and either forwards the 
request or denies it.
- The Access Broker talks to the subcomponents (and it is allowed to by 
OAuth, too) to retrieve specific service based tokens (similar to 
non-seed caps) and returns them to the client.

I haven't thought too deep about this but if this works it would have 
the benefits of being able to reuse the OAuth signing method and thus 
the OAuth libraries. It also would have the benefits of many more people 
having had a look at it (and as we know one security problem was already 
discovered).

(and btw, I think even the LL SLIM app would have benefitted from using 
OAuth as you wouldn't need to create a new account with vivox, you 
simply login to secondlife.com and this would directly send an access 
token to SLIM which then would use this to get access to agent data. 
Then again probably the same would have been possible with caps I guess. 
I wonder why it hasn't been done that way).

-- christian



Infinity Linden schrieb:
> So there were a few questions off-line recently about capabilities and
> their use in OGP. Some people understand them, some people don't. Some
> people think they're cool, some people want to hurl inanimate objects
> around at the mention of their name. But it does seem that there's a
> lot of confusion about the motivation for caps in general and web
> capabilities in OGP specifically. So i figured i would take a few
> moments to try to demystify them.
> 
> 1. What _Are_ Capabilities Anyway?
> 
> In General, capabilities are authorization tokens designed so that
> possession of the token implies the authority to perform a specific
> action. Consider a file handle in POSIX like systems. When you open a
> file, you get back an integer representing the open file. You only get
> this file handle back if you have access rights to the file. When you
> spawn a new child process, the child inherits your open file handles
> and it too can access those files via the file handle, even though the
> child process lives in a completely different process space. Later
> versions of *nix even allow you to move open file handles between
> unrelated processes. So... the takeaway here is... it's an opaque bit
> of data (i.e. - a token) and if you have it, it means you have the
> authority to use it. And... you can pass it around if need be.
> 
> Capabilities on the web extend the concept. In addition to the token
> connoting authorization to access some resource, it usually also
> provides the address to access the resource. In other words, a web
> capability is a URL possessed by a client that the client may use to
> create, read, update or delete a resource. A web capabilities in OGP
> are in the form of a "well known" portion of a URL (something like
> "http://service.example.org/s/") and a large, unguessable, randomly
> generated string (like "CE7A3EA0-2948-405D-A699-AA9F6293BDFE".)
> Putting them together, you get a valid URL a client can use to access
> a resource via HTTP. In this example, that URL would be
> "http://service.example.org/s/CE7A3EA0-2948-405D-A699-AA9F6293BDFE".
> 
> 2. Why the Heck Would I EVER Want to Do THAT !?
> 
> Yup. No doubt about it, this is not a "standard pattern" for web
> services. Usually if you have a resource, you publish a well known
> resource and if it's sensitive you require the client to log in. For
> example, you might have a RESTful resource at
> "http://service.example.org/s/group/AWGroupies" that represents the
> group "AWGroupies". You then define an API that says if you want to
> post a message to the group, you use HTTP POST with data (XML, JSON or
> whatever) that implies "post this message to this group". For the sake
> of discussion, let's say the JSON of the message would look like: {
> from: "Zha Ewry", message: "I'm giving 50 L$ to anyone who IMs me in
> the next 5 minutes!" }. This is a perfectly acceptable solution,
> though readers familiar with AWGroupies will know that i am not, in
> fact, the first life avatar of Zha Ewry, so i probably shouldn't be
> posting messages to this group promising to disburse game specie in
> her name. So authentication is in order, but this is a well known
> problem, i simply use HTTP digest auth over HTTPS (or something
> similar) and we're done. This is a perfectly acceptable solution.
> 
> But there are a couple of issues with this solution.
> 
> Most notably... every service that presents an interface to a
> sensitive resource MUST understand authentication. So not only does
> "http://service.example.org/s/group/AWGroupies" need to understand
> authentication, so does
> "http://service.example.org/s/user/Linden/Infinity" and
> "http://service.example.org/s/parcel/Levenhall/Infinity%20is%20full%20of%stars"
> and so on. Not a problem really, until you start adding new
> authentication techniques. So one day your boss comes to you and tells
> you.. "hey! we're using Secure/IDs for everything now!" Ugh. But it's
> still not _that_ painful. You've probably abstracted out
> authentication, so you have a map of service URLs to authentication
> techniques and common libraries that actually authenticate requests
> throughout your system.
> 
> And this works until the day that your boss comes in and says... "hey!
> we just bought our competitor Cthulhos.Com! we're going to integrate
> their FooWidget service into our service offering! isn't it great!"
> And then you get that sinking feeling cause you know that this means
> you've got to figure a way to get their service to talk to your
> identity provider so their service can authenticate your customers.
> People who have been through this know that depending on the
> technology this can turn out to be a bag full of pain. The standard
> way of doing this is something like:
> 
> a. service request come into http://service.example.org/s/foo/Infinity
> b. http://service.example.org/s/foo/ redirects with a 302 to
> http://foo.cthulhos.com/Infinity
> c. http://foo.cthulhos.com/Infinity responds with a 401 getting the
> client to resubmit the request with a WWW-Authenticate: header.
> d. the client resubmits to http://foo.cthulhos.com/Infinity with the
> proper WWW-Authenticate: header, but remember, these are example.org's
> customers, so
> e. http://foo.cthulhos.com/Infinity sends a message to a private
> interface on example.org, asking it to authenticate the user
> credentials.
> f. let's assume the client is using valid credentials, so example.org
> responds to cthulhos.com with the digital equivalent of a thumbs up,
> and finally...
> g. http://foo.cthulhos.com/Infinity responds to the request.
> 
> And this works pretty well up until the point that the new CIO comes
> in and say.. "infocard! we're moving everything to infocard!" There's
> nothing wrong with infocard, of course, but i this situation you've
> got to implement it at both example.org and cthulhos.com. And when we
> start adding to the mix the fact that the biz dev people keep trying
> to buy new companies and you get a new CIO every 18 months who wants a
> new user authentication technology, things can get out of hand. And...
> i didn't even talk about the fact that each time you change the
> authentication scheme, thick client developers have to go through the
> code, looking for every place a request is made.
> 
> Web Capabilities are not a magic panacea, but they can help out in
> this situation. Rather than having each request authenticated, the
> user's identity is authenticated once at a central location and that
> central location (example.org) coordinates with it's services
> (cthulhos.com) to provide a unique, unguessable URL (the capability)
> known only to that specific client and trusted systems (example.org
> and cthulhos.com). So the flow would be something like...
> 
> a. client logs in at http://service.example.org/s/authme and asks for
> a capability to use a particular service
> b. http://service.example.org/s/authme verifies the user's credentials
> and verifies the user can access that service
> c. http://service.example.org/s/authme sends a request to a private
> interface on cthulhos.com asking for the capability.
> d. cthulhos.com generates the unguessable capability
> http://foo.cthulhos.com/EE409B12-6E9B-4F5B-90BF-161AE5DE410C and
> returns it to http://service.example.org/s/authme
> e. http://service.example.org/s/authme returns the capability
> http://foo.cthulhos.com/EE409B12-6E9B-4F5B-90BF-161AE5DE410C to the
> client
> f. the client uses the capability
> http://foo.cthulhos.com/EE409B12-6E9B-4F5B-90BF-161AE5DE410C to access
> the sensitive resource.
> 
> Both approaches require establishing a trusted interface between
> example.org and cthulhos.com, but in the case of the capability
> example, only service.example.org has to know about the specific
> details of user authentication. Thick client developers may also
> notice that they access the capability as if it were a public
> resource; that is, they don't need to authenticate each request.
> 
> Another benefit to capabilities is that they are pre-authorized. If
> you have a resource that is accessed frequently (like maybe "get the
> next 10 inventory items" or "check to see if there are any messages on
> the event queue for me") you don't have to do the username ->
> permissions look up each time the server receives a request. For
> environments where the server makes a network request for each
> permissions check, this can lead to reduced request latency.
> 
> So... to recap... capabilities are not magic panaceas... there's still
> some work involved in implementing them. and they start making a lot
> more sense when you have a cluster of machines offering service to a
> client, but deployers want identity and identity to permissions
> mapping functions to live elsewhere in the network than the machine
> offering a service. (i.e. - "the cloud" or "the grid".)
> 
> 3. Okay... But How Do I Provision a Capability ?
> 
> I'm sure there are several ways to provision capabilities, but the
> approach we take in OGP is to use the "seed capability."
> 
> Like most other distributed protocols involving sensitive resources,
> OGP protocol interactions begin with user authentication. (This is not
> strictly true, 'cause i'm ignoring the case where two machines want to
> communicate outside the context of a user request, but let me hand
> wave that use case away for the moment while we talk about using seed
> caps.)
> 
> The process begins with user authentication. The OGP : Auth
> specification describes this process; it is essentially the client
> sending an avatar name and a password to a server in the agent domain.
> Assuming the authentication request can be validated, the agent domain
> returns a "seed cap." The client then sends a list of capability names
> to the seed cap and awaits the response.
> 
> What the host behind the seed cap is doing while the client waits for
> a reply is verifying the requested capability exists and the user is
> permitted to perform the operation implied by the capability. (and it
> does this for each capability requested.)
> 
> So, for example, let's say you are a client that only wants to update
> a user profile and send/receive group messages. The protocol
> interaction might look something like this...
> 
> a. authentication : client -> server at https://example.org/login
> 
> {
>   identifier: {
>     type: "agent",
>     first_name: "Random",
>     last_name: "Avatar"
>   },
>   authenticator: {
>     type: "hash",
>     algorithm: "md5",
>     secret: "i1J8B0rOmekRn8ydeup6Dg=="
>   }
> }
> 
> b. auth response : server -> client
> 
> {
>   condition: "success",
>   agent_seed_capability:
> "https://service.example.org/seed/CF577955-3E0D-4299-8D13-F28345D843F3"
> }
> 
> c. asking the seed for the other caps : client -> server at
> https://service.example.org/seed/CF577955-3E0D-4299-8D13-F28345D843F3
> 
> {
>   capabilities : [
>     "profile/update",
>     "groups/search"
>   ]
> }
> 
> d. the response with the URIs for the caps : server -> client
> 
> {
>   capabilities : {
>     profile/update :
> "http://service.example.org/user/35A59C5D-315C-4D50-B78D-A38D41D2C90A",
>     groups/search : "http://cthulhos.com/8579CE1F-9C05-43E8-8677-A645859DCD64"
>   }
> }
> 
> 4. Expiring Capabilities
> 
> Readers may notice that there is a potential "TOCTOU vulnerability."
> TOCTOU stands for "time of check, time of use," and refers to a common
> security problem... what happens if the permissions on an object
> change between the time the code managing the resource checks the
> permission and the time it performs an operation on the resource.
> 
> This is a common problem with many systems, including POSIX file
> descriptors. (seriously.. if you change the permissions on a file to
> disallow writing AFTER the file has been opened, subsequent writes on
> the file descriptor will not fail in many POSIX systems.)
> 
> OGP capabilities address this problem by expiring capabilities when
> they get old. So if you request a capability, then wait a LONG time
> before you access it, you may find that you get a 404 response code.
> The OGP specifications do not require all caps to expire, but the do
> require servers to signal their expiration by removing them (thus the
> 404 response) and require clients to understand what to do when a
> capability has been expired. In most cases, the appropriate response
> is to re-request the capability from the seed cap. If the seed cap is
> expired, clients should re-authenticate.
> 
> Capabilities may also "expire after first use." Also called "single
> shot capabilities," they are used to communicate sensitive or highly
> volatile information to the client.
> 
> The current practice is to include an Expires: header in the response
> from the server so the client will know when the resource expires.
> 
> 5. Introspection on Capabilities
> 
> Finally, RESTful resources represented by a capability are described
> by LLIDL, the interface description language used by LLSD. A request
> has been made that introspection be supported so clients may receive
> the LLIDL description of a capability and more accurately reason about
> the semantics of its use.
> 
> The proposed solution to this problem for OGP messages carried over
> HTTP is to use the OPTIONS method when accessing the capability
> (instead of GET, POST, PUT or DELETE.) Upon receipt of the OPTIONS
> request, the server should respond with the LLIDL describing the
> resource.
> 
> 6. Conclusion
> 
> Capabilities are cool, especially in clouds or grids.
> 
> 7. References
> 
> A pair of Google Tech Talks at:
>   http://video.google.com/videoplay?docid=-8527120258517176598 , and
>   http://video.google.com/videoplay?docid=8799856896828158583
> provide a pretty good technical introduction to the concept of capabilities.
> 
> OGP's description of capabilities is at:
>   http://tools.ietf.org/html/draft-lentczner-ogp-base-00#section-2.3
> 
> OGP uses capabilities to access RESTful resources. Roy Fielding's
> paper on REST is at:
>   http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx


-- 
COM.lounge GmbH
http://comlounge.net
Hanbrucher Strasse 33, 52064 Aachen
Amtsgericht Aachen HRB 15170
Geschäftsführer: Dr. Ben Scheffler, Christian Scholz

email: info@comlounge.net
fon: +49-241-4007300
fax: +49-241-97900850

personal email: cs@comlounge.net
personal blog: http://mrtopf.de/blog
personal podcasts: http://openweb-podcast.de, http://datawithoutborders.net


From meadhbh.siobhan@gmail.com  Fri Jun  5 08:57:41 2009
Return-Path: <meadhbh.siobhan@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A896B3A6C86 for <ogpx@core3.amsl.com>; Fri,  5 Jun 2009 08:57:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HS_INDEX_PARAM=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TF6Azo0YXlA3 for <ogpx@core3.amsl.com>; Fri,  5 Jun 2009 08:57:40 -0700 (PDT)
Received: from yw-out-2324.google.com (yw-out-2324.google.com [74.125.46.28]) by core3.amsl.com (Postfix) with ESMTP id 8D85E3A6C54 for <ogpx@ietf.org>; Fri,  5 Jun 2009 08:57:40 -0700 (PDT)
Received: by yw-out-2324.google.com with SMTP id 3so1458411ywj.49 for <ogpx@ietf.org>; Fri, 05 Jun 2009 08:57:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=Pg2b2WNuJDiP2F6C9nZ06tzq9SDhQWxVX03YBpZUZKw=; b=aKXWj4LXJfS+DNb+dwExERm9RwvHg365n7PNUwirVpqRjfkSkdVj9iBUy3EkLj+mPf vxRSw+fUvEyGgHt+CI9NNbDWgNpMKm5erQXYkgPOsbU/MJoA7Mw6Ci1CIfx8SBsr5WQ8 gtZHy/bmJKJqqfffYEuP3FHTgkxn4xELacT9E=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=o9VbEdhnCYXV7NfSLwmW0JCtcdX3shTLNBvz3JjAiCl8bEa21UX1JtnmbYtcqmBTWD BXhzMwDibDjz0IjlfuqW21i5DQip9rh4YY/ts+oK6C2bz5JdtzvO1l9HORqCOGByTwUz K9wa2rcb4q+TTszG15zg6CoeU8SGREQw5DiYI=
MIME-Version: 1.0
Received: by 10.100.110.19 with SMTP id i19mr4191118anc.1.1244217458757; Fri,  05 Jun 2009 08:57:38 -0700 (PDT)
In-Reply-To: <b8ef0a220906050856x76026ab6l6cce8370b967643a@mail.gmail.com>
References: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com> <20090604225840.GA23547@alinoe.com> <b8ef0a220906050746t5282d411t3e148fd00d52cabe@mail.gmail.com> <20090605150949.GA19288@alinoe.com> <b8ef0a220906050856x76026ab6l6cce8370b967643a@mail.gmail.com>
Date: Fri, 5 Jun 2009 08:57:35 -0700
Message-ID: <b8ef0a220906050857r1c1fbe81r41317c452ea9a599@mail.gmail.com>
From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
To: ogpx@ietf.org
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: [ogpx] Fwd: An Inquiry into the Nature and Causes of Web Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jun 2009 15:57:41 -0000

dang. i keep hitting "reply" instead of "reply to all"


---------- Forwarded message ----------
From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
Date: Fri, Jun 5, 2009 at 8:56 AM
Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web Capabilities
To: Carlo Wood <carlo@alinoe.com>


ah! i see where you're going.

there is something i didn't put in the previous message.

when a capability expires and the client attempts to access it, it
should get a 404. if the system is down, the TCP connection will
eventually time out. the processing expectations for the client are
that if it needs to access an expired (or otherwise unavailable) cap,
it goes back to the seed cap and says... "hey! gimme another one of
these caps, please!"

at that point, it is up to the system hosting the seed cap to return a
cap that is accessible to the client. if the seed cap is expired, the
expectation is that the client will re-authorize (with OAuth) or
re-authenticate (with user login or transport layer identity /
authentication.)

i think this points to a philosophical difference that's plagued
protocol developers from the early days... where does the intelligence
live? in the POTS phone system, the intelligence lies with the network
and the leaf nodes are relatively dumb. tcp based networks do devolve
application layer and some network layer smarts to client.

the systems that have been deployed to date make a "network has the
smarts" assumption and current implementations don't have the feature
you're describing. personally.. i'm not a big fan of what you're
describing 'cause it increases the burden on network services (my
systems now have to have a distributed cap router and understand that
endpoints from multiple locations on the net route to a particular
system.)

but.

i'm also an experimentalist at heart. if you wanted to re-write the
caps section of the base document to describe what you're doing, and
then investigate the behavior of the two different systems under
typical failure cases (host down, host unreachable, etc.) i would love
to see if there's a major difference in behavior.

that being said, LL, PyOGP and at least one of the OpenSim
implementations have been implemented using caps as described here. so
it might be a better idea to go ahead with what we've got described
now, so we can get to the real work of describing the application
layer messages, but keep the "multi-caps" as a future expansion
option.

-cheers
-meadhbh

On Fri, Jun 5, 2009 at 8:09 AM, Carlo Wood<carlo@alinoe.com> wrote:
> Ok... but what if that host is unreachable/down for a while?
> If the hostname is a fixed part of the capability then it
> is impossible to continue.
>
> We could simply redefine things a bit, and say that a service
> returns:
>
> { range or set of hosts / the rest of the URL }
>
> Or more indetail, it could return:
>
> http://assetX-NNN.example.com/?91839838
>
> where then, as part of the protocol, the 'NNN' has
> to be replaced by by a number between 1 and N, where
> N was given to the client upon login (or whenever,
> some grid-dependent configurable value).
>
> In that case, the capability would be
> "http://assetX-NNN.example.com/?91839838"
> and thus not includes (one) host.
>
> The clients would know how to route it (they
> just fill in some number for NNN), and if that
> host is unreachable they can try another host.
>
> --
> Carlo Wood <carlo@alinoe.com>
>

From infinity@lindenlab.com  Thu Jun 11 12:03:39 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 31E6C3A6A70 for <ogpx@core3.amsl.com>; Thu, 11 Jun 2009 12:03:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.248
X-Spam-Level: 
X-Spam-Status: No, score=-1.248 tagged_above=-999 required=5 tests=[AWL=-0.141, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, SARE_MLH_Stock1=0.87]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CvoPvV3deCrb for <ogpx@core3.amsl.com>; Thu, 11 Jun 2009 12:03:37 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.249]) by core3.amsl.com (Postfix) with ESMTP id CE39628C1D6 for <ogpx@ietf.org>; Thu, 11 Jun 2009 12:03:34 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so834084ana.4 for <ogpx@ietf.org>; Thu, 11 Jun 2009 12:03:39 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.248.10 with SMTP id v10mr3383629anh.88.1244747019525; Thu,  11 Jun 2009 12:03:39 -0700 (PDT)
Date: Thu, 11 Jun 2009 12:03:39 -0700
Message-ID: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: ogpx@ietf.org
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: [ogpx] OGPX BoF Approved for Stockholm
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2009 19:03:39 -0000

Hey everyone...

I just wanted to let you all know that the BoF for the OGPX has been
approved. You can even see it on the wiki at
http://trac.tools.ietf.org/bof/trac/wiki .

I do want to remind people that this is the time to suggest charter
modifications. I think we have a pretty good charter right now, but
i've received some suggestions for improvement... mostly how to make
some of the text clearer, so i'll be posting  few updates later today.
Interested readers may wish to review the existing draft charter at
http://www.ietf.org/mail-archive/web/ogpx/current/msg00005.html .

See you all in Stockholm!
Meadhbh Hamrick

From cs@comlounge.net  Fri Jun 12 03:39:33 2009
Return-Path: <cs@comlounge.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3F23B3A6A28 for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 03:39:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.564
X-Spam-Level: 
X-Spam-Status: No, score=-1.564 tagged_above=-999 required=5 tests=[AWL=-0.435, BAYES_00=-2.599, J_CHICKENPOX_36=0.6, SARE_MLH_Stock1=0.87]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1vsUWcUVZH9B for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 03:39:32 -0700 (PDT)
Received: from post.comlounge.net (post.comlounge.net [85.214.59.142]) by core3.amsl.com (Postfix) with ESMTP id 311B23A6403 for <ogpx@ietf.org>; Fri, 12 Jun 2009 03:39:32 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by post.comlounge.net (Postfix) with ESMTP id 0222A1CE0221; Fri, 12 Jun 2009 12:39:39 +0200 (CEST)
Received: from post.comlounge.net ([127.0.0.1]) by localhost (h1346004.stratoserver.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mNKHFxTlzg7m; Fri, 12 Jun 2009 12:39:38 +0200 (CEST)
Received: from [192.168.2.101] (p5B3D7D35.dip.t-dialin.net [91.61.125.53]) by post.comlounge.net (Postfix) with ESMTP id 677011CE0039; Fri, 12 Jun 2009 12:39:36 +0200 (CEST)
Message-ID: <4A323067.3020009@comlounge.net>
Date: Fri, 12 Jun 2009 12:39:35 +0200
From: Christian Scholz <cs@comlounge.net>
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
MIME-Version: 1.0
To: Infinity Linden <infinity@lindenlab.com>
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com>
In-Reply-To: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: ogpx@ietf.org
Subject: Re: [ogpx] OGPX BoF Approved for Stockholm
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2009 10:39:33 -0000

Hi!

Will there also be an MMOX BoF?

-- Christian

Infinity Linden schrieb:
> Hey everyone...
> 
> I just wanted to let you all know that the BoF for the OGPX has been
> approved. You can even see it on the wiki at
> http://trac.tools.ietf.org/bof/trac/wiki .
> 
> I do want to remind people that this is the time to suggest charter
> modifications. I think we have a pretty good charter right now, but
> i've received some suggestions for improvement... mostly how to make
> some of the text clearer, so i'll be posting  few updates later today.
> Interested readers may wish to review the existing draft charter at
> http://www.ietf.org/mail-archive/web/ogpx/current/msg00005.html .
> 
> See you all in Stockholm!
> Meadhbh Hamrick
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx


-- 
COM.lounge GmbH
http://comlounge.net
Hanbrucher Strasse 33, 52064 Aachen
Amtsgericht Aachen HRB 15170
Geschäftsführer: Dr. Ben Scheffler, Christian Scholz

email: info@comlounge.net
fon: +49-241-4007300
fax: +49-241-97900850

personal email: cs@comlounge.net
personal blog: http://mrtopf.de/blog
personal podcasts: http://openweb-podcast.de, http://datawithoutborders.net


From infinity@lindenlab.com  Fri Jun 12 08:54:20 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 550C73A68DB for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 08:54:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.934
X-Spam-Level: 
X-Spam-Status: No, score=-0.934 tagged_above=-999 required=5 tests=[AWL=-0.427, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_36=0.6, SARE_MLH_Stock1=0.87]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1bDJtWakYy6T for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 08:54:19 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.250]) by core3.amsl.com (Postfix) with ESMTP id 73ABA3A67E5 for <ogpx@ietf.org>; Fri, 12 Jun 2009 08:54:19 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so1109226ana.4 for <ogpx@ietf.org>; Fri, 12 Jun 2009 08:54:25 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.255.17 with SMTP id c17mr5009519ani.188.1244822065322;  Fri, 12 Jun 2009 08:54:25 -0700 (PDT)
In-Reply-To: <4A323067.3020009@comlounge.net>
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com> <4A323067.3020009@comlounge.net>
Date: Fri, 12 Jun 2009 08:54:25 -0700
Message-ID: <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Christian Scholz <cs@comlounge.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: Re: [ogpx] OGPX BoF Approved for Stockholm
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2009 15:54:20 -0000

i don't think so. or rather, i didn't request one.

having participated in the attempt to get agreement for a working
group with a broad focus and failed, i'm not concentrating my efforts
on ogpx, where it seems there is sufficient agreement to work out the
differences between OGP implementations.

the mmox mailing list remains as a venue to continue the discussion of
the formation of a working group with broader focus, but having
experienced the tumult that is trying to get radically different
approaches to virtual worlds interoperability to agree on a common
basis for discussion, it seems that the person who attempts to do this
will find they have a great amount of work in their future.

-cheers
-meadhbh

On Fri, Jun 12, 2009 at 3:39 AM, Christian Scholz<cs@comlounge.net> wrote:
> Hi!
>
> Will there also be an MMOX BoF?
>
> -- Christian
>
> Infinity Linden schrieb:
>>
>> Hey everyone...
>>
>> I just wanted to let you all know that the BoF for the OGPX has been
>> approved. You can even see it on the wiki at
>> http://trac.tools.ietf.org/bof/trac/wiki .
>>
>> I do want to remind people that this is the time to suggest charter
>> modifications. I think we have a pretty good charter right now, but
>> i've received some suggestions for improvement... mostly how to make
>> some of the text clearer, so i'll be posting =A0few updates later today.
>> Interested readers may wish to review the existing draft charter at
>> http://www.ietf.org/mail-archive/web/ogpx/current/msg00005.html .
>>
>> See you all in Stockholm!
>> Meadhbh Hamrick
>> _______________________________________________
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
>
>
> --
> COM.lounge GmbH
> http://comlounge.net
> Hanbrucher Strasse 33, 52064 Aachen
> Amtsgericht Aachen HRB 15170
> Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz
>
> email: info@comlounge.net
> fon: +49-241-4007300
> fax: +49-241-97900850
>
> personal email: cs@comlounge.net
> personal blog: http://mrtopf.de/blog
> personal podcasts: http://openweb-podcast.de, http://datawithoutborders.n=
et
>
>

From cfk@pacbell.net  Fri Jun 12 09:02:59 2009
Return-Path: <cfk@pacbell.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 1C0DA3A6ACB for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 09:02:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JKjycWFc7bHI for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 09:02:58 -0700 (PDT)
Received: from web82608.mail.mud.yahoo.com (web82608.mail.mud.yahoo.com [68.142.201.125]) by core3.amsl.com (Postfix) with SMTP id 292793A6AAF for <ogpx@ietf.org>; Fri, 12 Jun 2009 09:02:58 -0700 (PDT)
Received: (qmail 71083 invoked by uid 60001); 12 Jun 2009 16:03:04 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pacbell.net; s=s1024; t=1244822584; bh=drmBDTQ24EY8enf1ZQFkCIG1eU5RXaiA8/CkKDmeLes=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type; b=PV/PraAdKrhg7eaGx2NpQ34f3xRU6bSt1Ux/pqV6q/gQL+LN9Kdr5O0GwSK8l1m1jZKLdy67gUkJry2VltNElOBI2lSO5NvXwRv+bh59G4Fvzpofo5ZtSiNACbWNdkPB1w32GhrIJmzeNQzuo1bdzI1GvtdGH8BF9zSKyjnm6XU=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=pacbell.net; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type; b=DHRyROMvnNyPLbG3RWhOtGTLGpOlrF1e1A7S6Z3CYlpGty0cTTRKnJK7EDqdeIu0nBTryy0dO6AzbIG+M71T5MfsFpAkA3kmKHOB744nx/lzCUOh5HFz98NfHZths6ySd1OTmEQ4xiZO9itRHISZEn5mcI+3BWFl+96GaXsp3ds=;
Message-ID: <558312.70763.qm@web82608.mail.mud.yahoo.com>
X-YMail-OSG: JbZjfrIVM1nEuH9gjSm0xv72zmDAqKGF.BrXk0wRPKBU71k69Bh1sprWLoXkJj3_mkz.HafKgkbVrhdF_J3Z_7QXslmcjhYLwIZrlFVAzZktMAQ_hqMpDo2fIqerBRWrRIugeeJPQ1ACQHAF6083_UK0c1bHn9RXNvkdRbiwNr8s53wK8eGZ0_gyGb7Eun8hsXowCytrQ.ihyZ5vziCx4yqF3BkYdFjW3cDfsK7BHzZmcp4L0P8F5CQv1LEN6g9N7daw.jJp8Yx_F0pn_1SGlAtRRJS3dsuTwdsS4chKm5S9yqwYLT.RRvi_zCkqnWr4ePA0ag--
Received: from [75.214.91.117] by web82608.mail.mud.yahoo.com via HTTP; Fri, 12 Jun 2009 09:03:04 PDT
X-Mailer: YahooMailRC/1277.43 YahooMailWebService/0.7.289.10
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com> <4A323067.3020009@comlounge.net> <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com>
Date: Fri, 12 Jun 2009 09:03:04 -0700 (PDT)
From: Charles Krinke <cfk@pacbell.net>
To: ogpx@ietf.org
In-Reply-To: <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-301543942-1244822584=:70763"
Subject: [ogpx] ogpx focus?
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2009 16:02:59 -0000

--0-301543942-1244822584=:70763
Content-Type: text/plain; charset=us-ascii

I would like to see if we concur on a few points, if I may. And I am not trying to stir up controversy, but rather understand some of the feelings of where this will eventually go.

As I understand where ogp *might* go, it will be a protocol that will allow two seperate virtual worlds to eventually, as peers, both run a sete of master servers currently called domain servers, I believe.

In that case, each world will be able, as a peer, to negotiate via packets, the interop from worldA to worldB (or from worldB to worldA).

That is, we are not contemplating that there is only one domain server at SecondLife, but that, say, OSGrid could run its own domain server and have reciprocity?

Charles

--0-301543942-1244822584=:70763
Content-Type: text/html; charset=us-ascii

<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:14pt">I would like to see if we concur on a few points, if I may. And I am not trying to stir up controversy, but rather understand some of the feelings of where this will eventually go.<br><br>As I understand where ogp *might* go, it will be a protocol that will allow two seperate virtual worlds to eventually, as peers, both run a sete of master servers currently called domain servers, I believe.<br><br>In that case, each world will be able, as a peer, to negotiate via packets, the interop from worldA to worldB (or from worldB to worldA).<br><br>That is, we are not contemplating that there is only one domain server at SecondLife, but that, say, OSGrid could run its own domain server and have reciprocity?<br><br>Charles<br></div></body></html>
--0-301543942-1244822584=:70763--

From meadhbh.siobhan@gmail.com  Fri Jun 12 09:23:31 2009
Return-Path: <meadhbh.siobhan@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7D7453A6C49 for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 09:23:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7IjOSxNxKyNU for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 09:23:30 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.245]) by core3.amsl.com (Postfix) with ESMTP id 5D7663A68CE for <ogpx@ietf.org>; Fri, 12 Jun 2009 09:23:30 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so1117974ana.4 for <ogpx@ietf.org>; Fri, 12 Jun 2009 09:23:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=bwrc+0ZKlqGRXM6nMYe/BqQdGsMmHC59u21NYVutWsE=; b=XtMFLuCwGnVx/dWk4ZvgLdCjNjdiRAYuAFEVlM5wEPfhYuy9rfDkkflJzObEC2Baxd xix19N8Gf0+gKvkdYVL1uPKG7Y50tu5u15z7we+KXTM/AW9irLy1acs/5utSwNmpnih4 F9b96oEKF58AQpq6I2OHileB2vHfhwQPJp8Z4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=TFRd9gJFGcuWlo4cpCdIgJpVL/VLCQX/NwXVKP3vbB6FVJ14mUAOwfDWLx76pfB2XU Z4bkiZ3ZaHm9rNBPzkr/rp4vnfzWtEYbnuijSsYTxwFf+3jgeT7dQU2m9djx+oaOS5GD AIoJP/ahQKr8jyJpQt8xqG3r8GrGOFGWhZkgQ=
MIME-Version: 1.0
Received: by 10.100.211.11 with SMTP id j11mr5086868ang.101.1244823816641;  Fri, 12 Jun 2009 09:23:36 -0700 (PDT)
In-Reply-To: <558312.70763.qm@web82608.mail.mud.yahoo.com>
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com> <4A323067.3020009@comlounge.net> <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com> <558312.70763.qm@web82608.mail.mud.yahoo.com>
Date: Fri, 12 Jun 2009 09:23:36 -0700
Message-ID: <b8ef0a220906120923u712cc01v9d06f6b9d180b537@mail.gmail.com>
From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
To: Charles Krinke <cfk@pacbell.net>
Content-Type: multipart/alternative; boundary=0016368e1d1a66217d046c29212d
Cc: ogpx@ietf.org
Subject: Re: [ogpx] ogpx focus?
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2009 16:23:31 -0000

--0016368e1d1a66217d046c29212d
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

essentially yes, you're spot on.
one of the core concepts of OGP is that it separates the "agent domain" from
the "region domain". so if you have a collection of users, you're
essentially an agent domain. if you have a collection of simulators, you're
a region domain. if you have both, you're simultaneously an agent and region
domain. you can be both, but you don't have to be. and if you're writing
software that conforms to OGP, you're supposed to allow agent and region
services to be offered by different organizations.

so yes, some day we hope to see someone whose account is owned by linden lab
teleport over to OSGrid server and conversely an avatar defined on an OSGrid
server teleport over agni (the main Second Life grid.) All without having to
log out of one grid and log back in on another. last summer, our interop
test allowed avatars whose account was defined in our beta grid's agent
domain to teleport to a remote region running a modified instance of
OpenSim. Word from Zha is that IBM has an agent domain whose code will get
published after a legal review.

so right. we envisioning a future where the relationships between service
providers are peer-like (like the peering arrangements of large ISPs.) and
to a large degree, OGP is an attempt to define a protocol that can support
this model.

-cheers
-meadhbh

On Fri, Jun 12, 2009 at 9:03 AM, Charles Krinke <cfk@pacbell.net> wrote:

> I would like to see if we concur on a few points, if I may. And I am not
> trying to stir up controversy, but rather understand some of the feelings of
> where this will eventually go.
>
> As I understand where ogp *might* go, it will be a protocol that will allow
> two seperate virtual worlds to eventually, as peers, both run a sete of
> master servers currently called domain servers, I believe.
>
> In that case, each world will be able, as a peer, to negotiate via packets,
> the interop from worldA to worldB (or from worldB to worldA).
>
> That is, we are not contemplating that there is only one domain server at
> SecondLife, but that, say, OSGrid could run its own domain server and have
> reciprocity?
>
> Charles
>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>
>

--0016368e1d1a66217d046c29212d
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

essentially yes, you&#39;re spot on.<div><br></div><div>one of the core con=
cepts of OGP is that it separates the &quot;agent domain&quot; from the &qu=
ot;region domain&quot;. so if you have a collection of users, you&#39;re es=
sentially an agent domain. if you have a collection of simulators, you&#39;=
re a region domain. if you have both, you&#39;re simultaneously an agent an=
d region domain. you can be both, but you don&#39;t have to be. and if you&=
#39;re writing software that conforms to OGP, you&#39;re supposed to allow =
agent and region services to be offered by different organizations.</div>
<div><br></div><div>so yes, some day we hope to see someone whose account i=
s owned by linden lab teleport over to OSGrid server and conversely an avat=
ar defined on an OSGrid server teleport over agni (the main Second Life gri=
d.) All without having to log out of one grid and log back in on another. l=
ast summer, our interop test allowed avatars whose account was defined in o=
ur beta grid&#39;s agent domain to teleport to a remote region running a mo=
dified instance of OpenSim. Word from Zha is that IBM has an agent domain w=
hose code will get published after a legal review.</div>
<div><br></div><div>so right. we envisioning a future where the relationshi=
ps between service providers are peer-like (like the peering arrangements o=
f large ISPs.) and to a large degree, OGP is an attempt to define a protoco=
l that can support this model.</div>
<div><br></div><div>-cheers</div><div>-meadhbh</div><div><br><div class=3D"=
gmail_quote">On Fri, Jun 12, 2009 at 9:03 AM, Charles Krinke <span dir=3D"l=
tr">&lt;<a href=3D"mailto:cfk@pacbell.net">cfk@pacbell.net</a>&gt;</span> w=
rote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex;"><div><div style=3D"font-family:arial,helvet=
ica,sans-serif;font-size:14pt">I would like to see if we concur on a few po=
ints, if I may. And I am not trying to stir up controversy, but rather unde=
rstand some of the feelings of where this will eventually go.<br>
<br>As I understand where ogp *might* go, it will be a protocol that will a=
llow two seperate virtual worlds to eventually, as peers, both run a sete o=
f master servers currently called domain servers, I believe.<br><br>In that=
 case, each world will be able, as a peer, to negotiate via packets, the in=
terop from worldA to worldB (or from worldB to worldA).<br>
<br>That is, we are not contemplating that there is only one domain server =
at SecondLife, but that, say, OSGrid could run its own domain server and ha=
ve reciprocity?<br><font color=3D"#888888"><br>Charles<br></font></div></di=
v>
<br>_______________________________________________<br>
ogpx mailing list<br>
<a href=3D"mailto:ogpx@ietf.org">ogpx@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/ogpx" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/ogpx</a><br>
<br></blockquote></div><br></div>

--0016368e1d1a66217d046c29212d--

From dwl@us.ibm.com  Fri Jun 12 09:55:27 2009
Return-Path: <dwl@us.ibm.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8615128C1D6; Fri, 12 Jun 2009 09:55:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.298
X-Spam-Level: 
X-Spam-Status: No, score=-6.298 tagged_above=-999 required=5 tests=[AWL=0.300,  BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ns1MIOB4vQjv; Fri, 12 Jun 2009 09:55:26 -0700 (PDT)
Received: from e5.ny.us.ibm.com (e5.ny.us.ibm.com [32.97.182.145]) by core3.amsl.com (Postfix) with ESMTP id 5E3FD28C1B0; Fri, 12 Jun 2009 09:55:26 -0700 (PDT)
Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e5.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id n5CGnQIv023883; Fri, 12 Jun 2009 12:49:26 -0400
Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n5CGtR2a246694; Fri, 12 Jun 2009 12:55:27 -0400
Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n5CGtRxG021417; Fri, 12 Jun 2009 12:55:27 -0400
Received: from d01ml605.pok.ibm.com (d01ml605.pok.ibm.com [9.56.227.91]) by d01av03.pok.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id n5CGtRi9021398; Fri, 12 Jun 2009 12:55:27 -0400
In-Reply-To: <558312.70763.qm@web82608.mail.mud.yahoo.com>
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com>	<4A323067.3020009@comlounge.net> <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com> <558312.70763.qm@web82608.mail.mud.yahoo.com>
To: Charles Krinke <cfk@pacbell.net>
MIME-Version: 1.0
X-KeepSent: CEFDB2AB:605C9953-852575D3:0058F278; type=4; name=$KeepSent
X-Mailer: Lotus Notes Release 8.0.1 HF105 April 10, 2008
Message-ID: <OFCEFDB2AB.605C9953-ON852575D3.0058F278-852575D3.005CF725@us.ibm.com>
From: David W Levine <dwl@us.ibm.com>
Date: Fri, 12 Jun 2009 12:55:26 -0400
X-MIMETrack: Serialize by Router on D01ML605/01/M/IBM(Release 8.5|December 05, 2008) at 06/12/2009 12:55:26, Serialize complete at 06/12/2009 12:55:26
Content-Type: multipart/alternative; boundary="=_alternative 005CF723852575D3_="
Cc: ogpx-bounces@ietf.org, ogpx@ietf.org
Subject: Re: [ogpx] ogpx focus?
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2009 16:55:27 -0000

This is a multipart message in MIME format.
--=_alternative 005CF723852575D3_=
Content-Type: text/plain; charset="US-ASCII"

The way I'd describe it is:

OGP  if fully articulated will define

1) A low level distributed computing approach  (Caps, LLSD, X.509, and 
event queue plumbing)
2) A bunch of virtual worlds building bocks (Prim formats,  Inventory, 
Assets, Region description, policy languages) 
3) A set of rules on how to manage services which share, and don't share 
trust (Domains)
4) A set of computational services delivered over 1 and 2 which can be 
used to build out collections of services described by 3
5) A specific structure of 4) which represents Linden Lab's best take on a 
useful way to partition the problem space. This defines regions, which 
live in region domains, and agent services which live in an agent domain. 

Nothing in OGP defines how people's policies between deployments will be 
set (nor should it, that's how you run your service) I expect there will 
be far more regions than agent domains, and I expect we will find
lots of regions that implement some combination of OGP and Hypergrid, or 
similar schemes. 

I would observes, that irrespective of using OGP, Hypergrid, or some other 
scheme, that it would be really quite nice if we could make sure that 1, 
2,  and 3 can be shared.  This would enhance the overall health of the 
ecosystem that is developing around these closely related technologies. 

- David
~ Zha



 



Charles Krinke <cfk@pacbell.net> 
Sent by: ogpx-bounces@ietf.org
06/12/2009 12:03 PM

To
ogpx@ietf.org
cc

Subject
[ogpx] ogpx focus?






I would like to see if we concur on a few points, if I may. And I am not 
trying to stir up controversy, but rather understand some of the feelings 
of where this will eventually go.

As I understand where ogp *might* go, it will be a protocol that will 
allow two seperate virtual worlds to eventually, as peers, both run a sete 
of master servers currently called domain servers, I believe.

In that case, each world will be able, as a peer, to negotiate via 
packets, the interop from worldA to worldB (or from worldB to worldA).

That is, we are not contemplating that there is only one domain server at 
SecondLife, but that, say, OSGrid could run its own domain server and have 
reciprocity?

Charles_______________________________________________
ogpx mailing list
ogpx@ietf.org
https://www.ietf.org/mailman/listinfo/ogpx


--=_alternative 005CF723852575D3_=
Content-Type: text/html; charset="US-ASCII"


<br><font size=2 face="sans-serif">The way I'd describe it is:</font>
<br>
<br><font size=2 face="sans-serif">OGP &nbsp;if fully articulated will
define</font>
<br>
<br><font size=2 face="sans-serif">1) A low level distributed computing
approach &nbsp;(Caps, LLSD, X.509, and event queue plumbing)</font>
<br><font size=2 face="sans-serif">2) A bunch of virtual worlds building
bocks (Prim formats, &nbsp;Inventory, Assets, Region description, policy
languages) </font>
<br><font size=2 face="sans-serif">3) A set of rules on how to manage services
which share, and don't share trust (Domains)</font>
<br><font size=2 face="sans-serif">4) A set of computational services delivered
over 1 and 2 which can be used to build out collections of services described
by 3</font>
<br><font size=2 face="sans-serif">5) A specific structure of 4) which
represents Linden Lab's best take on a useful way to partition the problem
space. This defines regions, which live in region domains, and agent services
which live in an agent domain. </font>
<br>
<br><font size=2 face="sans-serif">Nothing in OGP defines how people's
policies between deployments will be set (nor should it, that's how you
run your service) I expect there will be far more regions than agent domains,
and I expect we will find</font>
<br><font size=2 face="sans-serif">lots of regions that implement some
combination of OGP and Hypergrid, or similar schemes. </font>
<br>
<br><font size=2 face="sans-serif">I would observes, that irrespective
of using OGP, Hypergrid, or some other scheme, that it would be really
quite nice if we could make sure that 1, 2, &nbsp;and 3 can be shared.
&nbsp;This would enhance the overall health of the ecosystem that is developing
around these closely related technologies. </font>
<br>
<br><font size=2 face="sans-serif">- David</font>
<br><font size=2 face="sans-serif">~ Zha</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">&nbsp;</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Charles Krinke &lt;cfk@pacbell.net&gt;</b>
</font>
<br><font size=1 face="sans-serif">Sent by: ogpx-bounces@ietf.org</font>
<p><font size=1 face="sans-serif">06/12/2009 12:03 PM</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">ogpx@ietf.org</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">[ogpx] ogpx focus?</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=4 face="Arial">I would like to see if we concur on a few
points, if I may. And I am not trying to stir up controversy, but rather
understand some of the feelings of where this will eventually go.<br>
<br>
As I understand where ogp *might* go, it will be a protocol that will allow
two seperate virtual worlds to eventually, as peers, both run a sete of
master servers currently called domain servers, I believe.<br>
<br>
In that case, each world will be able, as a peer, to negotiate via packets,
the interop from worldA to worldB (or from worldB to worldA).<br>
<br>
That is, we are not contemplating that there is only one domain server
at SecondLife, but that, say, OSGrid could run its own domain server and
have reciprocity?<br>
<br>
Charles</font><tt><font size=2>_______________________________________________<br>
ogpx mailing list<br>
ogpx@ietf.org<br>
</font></tt><a href=https://www.ietf.org/mailman/listinfo/ogpx><tt><font size=2>https://www.ietf.org/mailman/listinfo/ogpx</font></tt></a><tt><font size=2><br>
</font></tt>
<br>
--=_alternative 005CF723852575D3_=--

From cfk@pacbell.net  Fri Jun 12 10:00:37 2009
Return-Path: <cfk@pacbell.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id DFEE63A6A51 for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 10:00:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OXkwyD5v9VHo for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 10:00:36 -0700 (PDT)
Received: from web82603.mail.mud.yahoo.com (web82603.mail.mud.yahoo.com [68.142.201.120]) by core3.amsl.com (Postfix) with SMTP id B7F6D3A69EA for <ogpx@ietf.org>; Fri, 12 Jun 2009 10:00:36 -0700 (PDT)
Received: (qmail 23503 invoked by uid 60001); 12 Jun 2009 17:00:42 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pacbell.net; s=s1024; t=1244826042; bh=UXI3KBM4OCdMNqcBgmE62I6dLEpcFst4zqpB/NmztKE=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=dBG+BTDB/FTIAHYj7rKAGdq2zxXbxu4x6LyH2RujSrvfYggOx9s+xR2k8MlUsnfmepHzLF4rM8Xd3Oq4/erCZYe/w2eG7TUbhgQmekGWbwVQp8QCFVdFoFSXKmXJmIYIJ/O3BnoLtwIUBuDekGNY53KWIidBYI5iTQsTzw9+/EE=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=pacbell.net; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=sLFS8YggUcdyMF71UtEtN87lEcMUozJeUQBn4r4yWyGPuKp8D+E6ctx6o0tEIMwjJTrStK/Ky7IN/6Gi2P8W7pN9laOBA+4L7PmDe0tcx2eANnQs+cTrqlTMEnHboafOhE5A+dPEqCqkW+Z9DfEIozQC3DTJ9sAmU9TJ/2cG5Gg=;
Message-ID: <657075.22259.qm@web82603.mail.mud.yahoo.com>
X-YMail-OSG: L9SMo9YVM1m0xTrka6O6ohmqMm3xd03F2M6qlwEI9C8dJzXrYGuWd4HRjV4f78QZ5MYwQ4SjNuig3B7slvqq5BW_Wod_v66PJMKBeAEuo98tAPLSTgZEbHhgKSQwrgI93ID0AMszYh8YYFroRku84z5VZ6NaqbitTZZvHSz4vi.xKXKdectQ9SF0mpcmYlMblzpLYigZnI6M9ZQ7L3n1GFf9satB.aCSVSV8MY0PZCy__ScPrfkOQIC5muVgj9_stNOtD8ouqfPMbrBO8FEZvhG7rddDnhqZrAULdoihDZ2vyaQhsBacA78hFgrHlC0Y1BFnB6Iyr2AGxBafeO9AdC.FRAfi.I_Uh8iW
Received: from [75.214.91.117] by web82603.mail.mud.yahoo.com via HTTP; Fri, 12 Jun 2009 10:00:42 PDT
X-Mailer: YahooMailRC/1277.43 YahooMailWebService/0.7.289.10
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com> <4A323067.3020009@comlounge.net> <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com> <558312.70763.qm@web82608.mail.mud.yahoo.com> <b8ef0a220906120923u712cc01v9d06f6b9d180b537@mail.gmail.com>
Date: Fri, 12 Jun 2009 10:00:42 -0700 (PDT)
From: Charles Krinke <cfk@pacbell.net>
To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
In-Reply-To: <b8ef0a220906120923u712cc01v9d06f6b9d180b537@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-1488881421-1244826042=:22259"
Cc: ogpx@ietf.org
Subject: Re: [ogpx] ogpx focus?
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2009 17:00:38 -0000

--0-1488881421-1244826042=:22259
Content-Type: text/plain; charset=us-ascii

Ok, great. That is what I remembered, so let me go on with my slightly *wild* idea.

OSGrid has been used for OGP testing in the past as we know. It is being used for HyperGrid testing now. And, I have encouraged ModRex testing with the ModRex folks.

So, ... One of my personal visions is to see all of this and more on various regions on OSGrid being tested, used, developed, debugged.

With that said, I would like to encourage any OGP testing of OpenSim regions on OSGrid as we move forward.

Charles




________________________________
From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
To: Charles Krinke <cfk@pacbell.net>
Cc: ogpx@ietf.org
Sent: Friday, June 12, 2009 9:23:36 AM
Subject: Re: [ogpx] ogpx focus?

essentially yes, you're spot on.

one of the core concepts of OGP is that it separates the "agent domain" from the "region domain". so if you have a collection of users, you're essentially an agent domain. if you have a collection of simulators, you're a region domain. if you have both, you're simultaneously an agent and region domain. you can be both, but you don't have to be. and if you're writing software that conforms to OGP, you're supposed to allow agent and region services to be offered by different organizations.

so yes, some day we hope to see someone whose account is owned by linden lab teleport over to OSGrid server and conversely an avatar defined on an OSGrid server teleport over agni (the main Second Life grid.) All without having to log out of one grid and log back in on another. last summer, our interop test allowed avatars whose account was defined in our beta grid's agent domain to teleport to a remote region running a modified instance of OpenSim. Word from Zha is that IBM has an agent domain whose code will get published after a legal review.

so right. we envisioning a future where the relationships between service providers are peer-like (like the peering arrangements of large ISPs.) and to a large degree, OGP is an attempt to define a protocol that can support this model.

-cheers
-meadhbh


On Fri, Jun 12, 2009 at 9:03 AM, Charles Krinke <cfk@pacbell.net> wrote:

I would like to see if we concur on a few points, if I may. And I am not trying to stir up controversy, but rather understand some of the feelings of where this will eventually go.

As I understand where ogp *might* go, it will be a protocol that will allow two seperate virtual worlds to eventually, as peers, both run a sete of master servers currently called domain servers, I believe.

In that case, each world will be able, as a peer, to negotiate via packets, the interop from worldA to worldB (or from worldB to worldA).

That is, we are not contemplating that there is only one domain server at SecondLife, but that, say, OSGrid could run its own domain server and have reciprocity?

Charles

_______________________________________________
ogpx mailing list
ogpx@ietf.org
https://www.ietf.org/mailman/listinfo/ogpx
--0-1488881421-1244826042=:22259
Content-Type: text/html; charset=us-ascii

<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:14pt"><div>Ok, great. That is what I remembered, so let me go on with my slightly *wild* idea.<br><br>OSGrid has been used for OGP testing in the past as we know. It is being used for HyperGrid testing now. And, I have encouraged ModRex testing with the ModRex folks.<br><br>So, ... One of my personal visions is to see all of this and more on various regions on OSGrid being tested, used, developed, debugged.<br><br>With that said, I would like to encourage any OGP testing of OpenSim regions on OSGrid as we move forward.<br><br>Charles<br></div><div style="font-family: arial,helvetica,sans-serif; font-size: 14pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> Meadhbh Siobhan
 &lt;meadhbh.siobhan@gmail.com&gt;<br><b><span style="font-weight: bold;">To:</span></b> Charles Krinke &lt;cfk@pacbell.net&gt;<br><b><span style="font-weight: bold;">Cc:</span></b> ogpx@ietf.org<br><b><span style="font-weight: bold;">Sent:</span></b> Friday, June 12, 2009 9:23:36 AM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [ogpx] ogpx focus?<br></font><br>
essentially yes, you're spot on.<div><br></div><div>one of the core concepts of OGP is that it separates the "agent domain" from the "region domain". so if you have a collection of users, you're essentially an agent domain. if you have a collection of simulators, you're a region domain. if you have both, you're simultaneously an agent and region domain. you can be both, but you don't have to be. and if you're writing software that conforms to OGP, you're supposed to allow agent and region services to be offered by different organizations.</div>
<div><br></div><div>so yes, some day we hope to see someone whose account is owned by linden lab teleport over to OSGrid server and conversely an avatar defined on an OSGrid server teleport over agni (the main Second Life grid.) All without having to log out of one grid and log back in on another. last summer, our interop test allowed avatars whose account was defined in our beta grid's agent domain to teleport to a remote region running a modified instance of OpenSim. Word from Zha is that IBM has an agent domain whose code will get published after a legal review.</div>
<div><br></div><div>so right. we envisioning a future where the relationships between service providers are peer-like (like the peering arrangements of large ISPs.) and to a large degree, OGP is an attempt to define a protocol that can support this model.</div>
<div><br></div><div>-cheers</div><div>-meadhbh</div><div><br><div class="gmail_quote">On Fri, Jun 12, 2009 at 9:03 AM, Charles Krinke <span dir="ltr">&lt;<a rel="nofollow" ymailto="mailto:cfk@pacbell.net" target="_blank" href="mailto:cfk@pacbell.net">cfk@pacbell.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div style="font-family: arial,helvetica,sans-serif; font-size: 14pt;">I would like to see if we concur on a few points, if I may. And I am not trying to stir up controversy, but rather understand some of the feelings of where this will eventually go.<br>
<br>As I understand where ogp *might* go, it will be a protocol that will allow two seperate virtual worlds to eventually, as peers, both run a sete of master servers currently called domain servers, I believe.<br><br>In that case, each world will be able, as a peer, to negotiate via packets, the interop from worldA to worldB (or from worldB to worldA).<br>
<br>That is, we are not contemplating that there is only one domain server at SecondLife, but that, say, OSGrid could run its own domain server and have reciprocity?<br><font color="#888888"><br>Charles<br></font></div></div>
<br>_______________________________________________<br>
ogpx mailing list<br>
<a rel="nofollow" ymailto="mailto:ogpx@ietf.org" target="_blank" href="mailto:ogpx@ietf.org">ogpx@ietf.org</a><br>
<a rel="nofollow" target="_blank" href="https://www.ietf.org/mailman/listinfo/ogpx">https://www.ietf.org/mailman/listinfo/ogpx</a><br>
<br></blockquote></div><br></div>
</div></div></div></body></html>
--0-1488881421-1244826042=:22259--

From meadhbh.siobhan@gmail.com  Fri Jun 12 15:50:20 2009
Return-Path: <meadhbh.siobhan@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C63C23A694A for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 15:50:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.863
X-Spam-Level: 
X-Spam-Status: No, score=-1.863 tagged_above=-999 required=5 tests=[AWL=-0.735, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_36=0.6, SARE_MLH_Stock1=0.87]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ovg3S1U6A8oz for <ogpx@core3.amsl.com>; Fri, 12 Jun 2009 15:50:19 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.249]) by core3.amsl.com (Postfix) with ESMTP id 55D303A680C for <ogpx@ietf.org>; Fri, 12 Jun 2009 15:50:18 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c3so1229917ana.4 for <ogpx@ietf.org>; Fri, 12 Jun 2009 15:50:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=Pt/YWfpUzrSVPkswDf3CDNMm021OI10MT7Kl65CqwIw=; b=pDtNVp3OenUiXhuWun6k4hE0NWjwUQXiKi2H25jJw/rMf2T1NoF9IgrE0y17OL5Ceu 43noWUjYzHMcbSiFMpw/gCwfdxjHgQPmewHp6Ck3aq+DlexbICLrr3W9SaZAVy0EQfI8 88WRhJZz/nYCmEoh7Cb+wefPQ4fYRXnFPvbRs=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=g/c1uV23WpImYvWN3XXYOjbtxbO6L9DUnnpsl3kqjgAqlg/RrhoXqe7nWWJOKkO9A6 8x4Pr5rP+axrq6OSa6ODn4J4Cw+P/omtCpEgkJz6rA3HIPPuu/jhoElwpJU73FvuXXCp vSx6KCz6+uZvhWMnx/nWqgsvanBnHVxabgXcY=
MIME-Version: 1.0
Received: by 10.100.14.2 with SMTP id 2mr5613574ann.68.1244847025443; Fri, 12  Jun 2009 15:50:25 -0700 (PDT)
In-Reply-To: <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com>
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com> <4A323067.3020009@comlounge.net> <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com>
Date: Fri, 12 Jun 2009 15:50:25 -0700
Message-ID: <b8ef0a220906121550m18e0674tc78924ac50919709@mail.gmail.com>
From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
To: Infinity Linden <infinity@lindenlab.com>
Content-Type: multipart/alternative; boundary=0016e64652e2c05c6b046c2e88cb
Cc: ogpx@ietf.org
Subject: Re: [ogpx] OGPX BoF Approved for Stockholm
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jun 2009 22:50:20 -0000

--0016e64652e2c05c6b046c2e88cb
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

erg. don't type before you drink your first cup of coffee.
please change the phrase " i'm not concentrating my efforts on ogpx" to " i
am concentrating my efforts on ogpx".
-cheers
-meadhbh

On Fri, Jun 12, 2009 at 8:54 AM, Infinity Linden <infinity@lindenlab.com>wr=
ote:

> i don't think so. or rather, i didn't request one.
>
> having participated in the attempt to get agreement for a working
> group with a broad focus and failed, i'm not concentrating my efforts
> on ogpx, where it seems there is sufficient agreement to work out the
> differences between OGP implementations.
>
> the mmox mailing list remains as a venue to continue the discussion of
> the formation of a working group with broader focus, but having
> experienced the tumult that is trying to get radically different
> approaches to virtual worlds interoperability to agree on a common
> basis for discussion, it seems that the person who attempts to do this
> will find they have a great amount of work in their future.
>
> -cheers
> -meadhbh
>
> On Fri, Jun 12, 2009 at 3:39 AM, Christian Scholz<cs@comlounge.net> wrote=
:
> > Hi!
> >
> > Will there also be an MMOX BoF?
> >
> > -- Christian
> >
> > Infinity Linden schrieb:
> >>
> >> Hey everyone...
> >>
> >> I just wanted to let you all know that the BoF for the OGPX has been
> >> approved. You can even see it on the wiki at
> >> http://trac.tools.ietf.org/bof/trac/wiki .
> >>
> >> I do want to remind people that this is the time to suggest charter
> >> modifications. I think we have a pretty good charter right now, but
> >> i've received some suggestions for improvement... mostly how to make
> >> some of the text clearer, so i'll be posting  few updates later today.
> >> Interested readers may wish to review the existing draft charter at
> >> http://www.ietf.org/mail-archive/web/ogpx/current/msg00005.html .
> >>
> >> See you all in Stockholm!
> >> Meadhbh Hamrick
> >> _______________________________________________
> >> ogpx mailing list
> >> ogpx@ietf.org
> >> https://www.ietf.org/mailman/listinfo/ogpx
> >
> >
> > --
> > COM.lounge GmbH
> > http://comlounge.net
> > Hanbrucher Strasse 33, 52064 Aachen
> > Amtsgericht Aachen HRB 15170
> > Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz
> >
> > email: info@comlounge.net
> > fon: +49-241-4007300
> > fax: +49-241-97900850
> >
> > personal email: cs@comlounge.net
> > personal blog: http://mrtopf.de/blog
> > personal podcasts: http://openweb-podcast.de,
> http://datawithoutborders.net
> >
> >
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>

--0016e64652e2c05c6b046c2e88cb
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

erg. don&#39;t type before you drink your first cup of coffee.<div><br></di=
v><div>please change the phrase &quot;=A0i&#39;m not concentrating my effor=
ts=A0on ogpx&quot; to &quot;=A0i am concentrating my efforts=A0on ogpx&quot=
;.<div>
<br></div><div>-cheers</div><div>-meadhbh</div><div><br><div class=3D"gmail=
_quote">On Fri, Jun 12, 2009 at 8:54 AM, Infinity Linden <span dir=3D"ltr">=
&lt;<a href=3D"mailto:infinity@lindenlab.com">infinity@lindenlab.com</a>&gt=
;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex;">i don&#39;t think so. or rather, i didn&#39=
;t request one.<br>
<br>
having participated in the attempt to get agreement for a working<br>
group with a broad focus and failed, i&#39;m not concentrating my efforts<b=
r>
on ogpx, where it seems there is sufficient agreement to work out the<br>
differences between OGP implementations.<br>
<br>
the mmox mailing list remains as a venue to continue the discussion of<br>
the formation of a working group with broader focus, but having<br>
experienced the tumult that is trying to get radically different<br>
approaches to virtual worlds interoperability to agree on a common<br>
basis for discussion, it seems that the person who attempts to do this<br>
will find they have a great amount of work in their future.<br>
<br>
-cheers<br>
-meadhbh<br>
<div><div></div><div class=3D"h5"><br>
On Fri, Jun 12, 2009 at 3:39 AM, Christian Scholz&lt;<a href=3D"mailto:cs@c=
omlounge.net">cs@comlounge.net</a>&gt; wrote:<br>
&gt; Hi!<br>
&gt;<br>
&gt; Will there also be an MMOX BoF?<br>
&gt;<br>
&gt; -- Christian<br>
&gt;<br>
&gt; Infinity Linden schrieb:<br>
&gt;&gt;<br>
&gt;&gt; Hey everyone...<br>
&gt;&gt;<br>
&gt;&gt; I just wanted to let you all know that the BoF for the OGPX has be=
en<br>
&gt;&gt; approved. You can even see it on the wiki at<br>
&gt;&gt; <a href=3D"http://trac.tools.ietf.org/bof/trac/wiki" target=3D"_bl=
ank">http://trac.tools.ietf.org/bof/trac/wiki</a> .<br>
&gt;&gt;<br>
&gt;&gt; I do want to remind people that this is the time to suggest charte=
r<br>
&gt;&gt; modifications. I think we have a pretty good charter right now, bu=
t<br>
&gt;&gt; i&#39;ve received some suggestions for improvement... mostly how t=
o make<br>
&gt;&gt; some of the text clearer, so i&#39;ll be posting =A0few updates la=
ter today.<br>
&gt;&gt; Interested readers may wish to review the existing draft charter a=
t<br>
&gt;&gt; <a href=3D"http://www.ietf.org/mail-archive/web/ogpx/current/msg00=
005.html" target=3D"_blank">http://www.ietf.org/mail-archive/web/ogpx/curre=
nt/msg00005.html</a> .<br>
&gt;&gt;<br>
&gt;&gt; See you all in Stockholm!<br>
&gt;&gt; Meadhbh Hamrick<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; ogpx mailing list<br>
&gt;&gt; <a href=3D"mailto:ogpx@ietf.org">ogpx@ietf.org</a><br>
&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/ogpx" target=3D"_=
blank">https://www.ietf.org/mailman/listinfo/ogpx</a><br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; COM.lounge GmbH<br>
&gt; <a href=3D"http://comlounge.net" target=3D"_blank">http://comlounge.ne=
t</a><br>
&gt; Hanbrucher Strasse 33, 52064 Aachen<br>
&gt; Amtsgericht Aachen HRB 15170<br>
&gt; Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz<br>
&gt;<br>
&gt; email: <a href=3D"mailto:info@comlounge.net">info@comlounge.net</a><br=
>
&gt; fon: +49-241-4007300<br>
&gt; fax: +49-241-97900850<br>
&gt;<br>
&gt; personal email: <a href=3D"mailto:cs@comlounge.net">cs@comlounge.net</=
a><br>
&gt; personal blog: <a href=3D"http://mrtopf.de/blog" target=3D"_blank">htt=
p://mrtopf.de/blog</a><br>
&gt; personal podcasts: <a href=3D"http://openweb-podcast.de" target=3D"_bl=
ank">http://openweb-podcast.de</a>, <a href=3D"http://datawithoutborders.ne=
t" target=3D"_blank">http://datawithoutborders.net</a><br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
ogpx mailing list<br>
<a href=3D"mailto:ogpx@ietf.org">ogpx@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/ogpx" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/ogpx</a><br>
</div></div></blockquote></div><br></div></div>

--0016e64652e2c05c6b046c2e88cb--

From dwl@us.ibm.com  Sat Jun 13 07:35:25 2009
Return-Path: <dwl@us.ibm.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3B9C53A6AD8; Sat, 13 Jun 2009 07:35:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.713
X-Spam-Level: 
X-Spam-Status: No, score=-3.713 tagged_above=-999 required=5 tests=[AWL=-2.585, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_36=0.6, SARE_MLH_Stock1=0.87]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gN2kTbFxz1Pn; Sat, 13 Jun 2009 07:35:24 -0700 (PDT)
Received: from e9.ny.us.ibm.com (e9.ny.us.ibm.com [32.97.182.139]) by core3.amsl.com (Postfix) with ESMTP id A9BE33A68C5; Sat, 13 Jun 2009 07:35:23 -0700 (PDT)
Received: from d01relay02.pok.ibm.com (d01relay02.pok.ibm.com [9.56.227.234]) by e9.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id n5DEMvcX009523; Sat, 13 Jun 2009 10:22:57 -0400
Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay02.pok.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n5DEZNl0176830; Sat, 13 Jun 2009 10:35:23 -0400
Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n5DEX8Cl018211; Sat, 13 Jun 2009 10:33:08 -0400
Received: from d01ml605.pok.ibm.com (d01ml605.pok.ibm.com [9.56.227.91]) by d01av02.pok.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id n5DEX7Hl018208; Sat, 13 Jun 2009 10:33:07 -0400
In-Reply-To: <b8ef0a220906121550m18e0674tc78924ac50919709@mail.gmail.com>
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com>	<4A323067.3020009@comlounge.net> <3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com> <b8ef0a220906121550m18e0674tc78924ac50919709@mail.gmail.com>
To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
MIME-Version: 1.0
X-KeepSent: 6DDC4CE8:113AABAA-852575D4:004F9E46; type=4; name=$KeepSent
X-Mailer: Lotus Notes Release 8.0.1 HF105 April 10, 2008
Message-ID: <OF6DDC4CE8.113AABAA-ON852575D4.004F9E46-852575D4.00502464@us.ibm.com>
From: David W Levine <dwl@us.ibm.com>
Date: Sat, 13 Jun 2009 10:35:22 -0400
X-MIMETrack: Serialize by Router on D01ML605/01/M/IBM(Release 8.5|December 05, 2008) at 06/13/2009 10:35:22, Serialize complete at 06/13/2009 10:35:22
Content-Type: multipart/alternative; boundary="=_alternative 00502463852575D4_="
Cc: Infinity Linden <infinity@lindenlab.com>, ogpx-bounces@ietf.org, ogpx@ietf.org
Subject: Re: [ogpx] OGPX BoF Approved for Stockholm
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2009 14:35:25 -0000

This is a multipart message in MIME format.
--=_alternative 00502463852575D4_=
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable

My current focus is also on OGPX.  I'd be perfectly willing to chat about=20
broader issues. (Try and stop me!) but.. not during the OGPX bof, or on=20
the OGPX mailing list to any great degree. I can't say there are *any*=20
hints of a community which is willing to invest in MMOX work at the=20
moment. Such a community would have to get together, and talk to the IETF=20
area directors, and show real energy on draft specs, etc.=20

- David
~ Zha




Meadhbh Siobhan <meadhbh.siobhan@gmail.com>=20
Sent by: ogpx-bounces@ietf.org
06/12/2009 06:50 PM

To
Infinity Linden <infinity@lindenlab.com>
cc
ogpx@ietf.org
Subject
Re: [ogpx] OGPX BoF Approved for Stockholm






erg. don't type before you drink your first cup of coffee.

please change the phrase " i'm not concentrating my efforts on ogpx" to=20
" i am concentrating my efforts on ogpx".

-cheers
-meadhbh

On Fri, Jun 12, 2009 at 8:54 AM, Infinity Linden <infinity@lindenlab.com>=20
wrote:
i don't think so. or rather, i didn't request one.

having participated in the attempt to get agreement for a working
group with a broad focus and failed, i'm not concentrating my efforts
on ogpx, where it seems there is sufficient agreement to work out the
differences between OGP implementations.

the mmox mailing list remains as a venue to continue the discussion of
the formation of a working group with broader focus, but having
experienced the tumult that is trying to get radically different
approaches to virtual worlds interoperability to agree on a common
basis for discussion, it seems that the person who attempts to do this
will find they have a great amount of work in their future.

-cheers
-meadhbh

On Fri, Jun 12, 2009 at 3:39 AM, Christian Scholz<cs@comlounge.net> wrote:
> Hi!
>
> Will there also be an MMOX BoF?
>
> -- Christian
>
> Infinity Linden schrieb:
>>
>> Hey everyone...
>>
>> I just wanted to let you all know that the BoF for the OGPX has been
>> approved. You can even see it on the wiki at
>> http://trac.tools.ietf.org/bof/trac/wiki .
>>
>> I do want to remind people that this is the time to suggest charter
>> modifications. I think we have a pretty good charter right now, but
>> i've received some suggestions for improvement... mostly how to make
>> some of the text clearer, so i'll be posting  few updates later today.
>> Interested readers may wish to review the existing draft charter at
>> http://www.ietf.org/mail-archive/web/ogpx/current/msg00005.html .
>>
>> See you all in Stockholm!
>> Meadhbh Hamrick
>> =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
>
>
> --
> COM.lounge GmbH
> http://comlounge.net
> Hanbrucher Strasse 33, 52064 Aachen
> Amtsgericht Aachen HRB 15170
> Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz
>
> email: info@comlounge.net
> fon: +49-241-4007300
> fax: +49-241-97900850
>
> personal email: cs@comlounge.net
> personal blog: http://mrtopf.de/blog
> personal podcasts: http://openweb-podcast.de,=20
http://datawithoutborders.net
>
>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
ogpx mailing list
ogpx@ietf.org
https://www.ietf.org/mailman/listinfo/ogpx
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
ogpx mailing list
ogpx@ietf.org
https://www.ietf.org/mailman/listinfo/ogpx


--=_alternative 00502463852575D4_=
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable


<br><font size=3D2 face=3D"sans-serif">My current focus is also on OGPX. &n=
bsp;I'd
be perfectly willing to chat about broader issues. (Try and stop me!) but..
not during the OGPX bof, or on the OGPX mailing list to any great degree.
I can't say there are *any* hints of a community which is willing to invest
in MMOX work at the moment. Such a community would have to get together,
and talk to the IETF area directors, and show real energy on draft specs,
etc. </font>
<br>
<br><font size=3D2 face=3D"sans-serif">- David</font>
<br><font size=3D2 face=3D"sans-serif">~ Zha</font>
<br>
<br>
<br>
<br>
<table width=3D100%>
<tr valign=3Dtop>
<td width=3D40%><font size=3D1 face=3D"sans-serif"><b>Meadhbh Siobhan &lt;m=
eadhbh.siobhan@gmail.com&gt;</b>
</font>
<br><font size=3D1 face=3D"sans-serif">Sent by: ogpx-bounces@ietf.org</font>
<p><font size=3D1 face=3D"sans-serif">06/12/2009 06:50 PM</font>
<td width=3D59%>
<table width=3D100%>
<tr valign=3Dtop>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">To</font></div>
<td><font size=3D1 face=3D"sans-serif">Infinity Linden &lt;infinity@lindenl=
ab.com&gt;</font>
<tr valign=3Dtop>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">cc</font></div>
<td><font size=3D1 face=3D"sans-serif">ogpx@ietf.org</font>
<tr valign=3Dtop>
<td>
<div align=3Dright><font size=3D1 face=3D"sans-serif">Subject</font></div>
<td><font size=3D1 face=3D"sans-serif">Re: [ogpx] OGPX BoF Approved for Sto=
ckholm</font></table>
<br>
<table>
<tr valign=3Dtop>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=3D3>erg. don't type before you drink your first cup of coffe=
e.</font>
<br>
<br><font size=3D3>please change the phrase &quot;&nbsp;i'm not concentrati=
ng
my efforts&nbsp;on ogpx&quot; to &quot;&nbsp;i am concentrating my efforts&=
nbsp;on
ogpx&quot;.</font>
<br>
<br><font size=3D3>-cheers</font>
<br><font size=3D3>-meadhbh</font>
<br>
<br><font size=3D3>On Fri, Jun 12, 2009 at 8:54 AM, Infinity Linden &lt;</f=
ont><a href=3Dmailto:infinity@lindenlab.com><font size=3D3 color=3Dblue><u>=
infinity@lindenlab.com</u></font></a><font size=3D3>&gt;
wrote:</font>
<br><font size=3D3>i don't think so. or rather, i didn't request one.<br>
<br>
having participated in the attempt to get agreement for a working<br>
group with a broad focus and failed, i'm not concentrating my efforts<br>
on ogpx, where it seems there is sufficient agreement to work out the<br>
differences between OGP implementations.<br>
<br>
the mmox mailing list remains as a venue to continue the discussion of<br>
the formation of a working group with broader focus, but having<br>
experienced the tumult that is trying to get radically different<br>
approaches to virtual worlds interoperability to agree on a common<br>
basis for discussion, it seems that the person who attempts to do this<br>
will find they have a great amount of work in their future.<br>
<br>
-cheers<br>
-meadhbh</font>
<br><font size=3D3><br>
On Fri, Jun 12, 2009 at 3:39 AM, Christian Scholz&lt;</font><a href=3Dmailt=
o:cs@comlounge.net><font size=3D3 color=3Dblue><u>cs@comlounge.net</u></fon=
t></a><font size=3D3>&gt;
wrote:<br>
&gt; Hi!<br>
&gt;<br>
&gt; Will there also be an MMOX BoF?<br>
&gt;<br>
&gt; -- Christian<br>
&gt;<br>
&gt; Infinity Linden schrieb:<br>
&gt;&gt;<br>
&gt;&gt; Hey everyone...<br>
&gt;&gt;<br>
&gt;&gt; I just wanted to let you all know that the BoF for the OGPX has
been<br>
&gt;&gt; approved. You can even see it on the wiki at<br>
&gt;&gt; </font><a href=3Dhttp://trac.tools.ietf.org/bof/trac/wiki target=
=3D=5Fblank><font size=3D3 color=3Dblue><u>http://trac.tools.ietf.org/bof/t=
rac/wiki</u></font></a><font size=3D3>
.<br>
&gt;&gt;<br>
&gt;&gt; I do want to remind people that this is the time to suggest charte=
r<br>
&gt;&gt; modifications. I think we have a pretty good charter right now,
but<br>
&gt;&gt; i've received some suggestions for improvement... mostly how to
make<br>
&gt;&gt; some of the text clearer, so i'll be posting &nbsp;few updates
later today.<br>
&gt;&gt; Interested readers may wish to review the existing draft charter
at<br>
&gt;&gt; </font><a href=3D"http://www.ietf.org/mail-archive/web/ogpx/curren=
t/msg00005.html" target=3D=5Fblank><font size=3D3 color=3Dblue><u>http://ww=
w.ietf.org/mail-archive/web/ogpx/current/msg00005.html</u></font></a><font =
size=3D3>
.<br>
&gt;&gt;<br>
&gt;&gt; See you all in Stockholm!<br>
&gt;&gt; Meadhbh Hamrick<br>
&gt;&gt; =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
<br>
&gt;&gt; ogpx mailing list<br>
&gt;&gt; </font><a href=3Dmailto:ogpx@ietf.org><font size=3D3 color=3Dblue>=
<u>ogpx@ietf.org</u></font></a><font size=3D3><br>
&gt;&gt; </font><a href=3Dhttps://www.ietf.org/mailman/listinfo/ogpx target=
=3D=5Fblank><font size=3D3 color=3Dblue><u>https://www.ietf.org/mailman/lis=
tinfo/ogpx</u></font></a><font size=3D3><br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; COM.lounge GmbH<br>
&gt; </font><a href=3Dhttp://comlounge.net/ target=3D=5Fblank><font size=3D=
3 color=3Dblue><u>http://comlounge.net</u></font></a><font size=3D3><br>
&gt; Hanbrucher Strasse 33, 52064 Aachen<br>
&gt; Amtsgericht Aachen HRB 15170<br>
&gt; Gesch=E4ftsf=FChrer: Dr. Ben Scheffler, Christian Scholz<br>
&gt;<br>
&gt; email: </font><a href=3Dmailto:info@comlounge.net><font size=3D3 color=
=3Dblue><u>info@comlounge.net</u></font></a><font size=3D3><br>
&gt; fon: +49-241-4007300<br>
&gt; fax: +49-241-97900850<br>
&gt;<br>
&gt; personal email: </font><a href=3Dmailto:cs@comlounge.net><font size=3D=
3 color=3Dblue><u>cs@comlounge.net</u></font></a><font size=3D3><br>
&gt; personal blog: </font><a href=3Dhttp://mrtopf.de/blog target=3D=5Fblan=
k><font size=3D3 color=3Dblue><u>http://mrtopf.de/blog</u></font></a><font =
size=3D3><br>
&gt; personal podcasts: </font><a href=3D"http://openweb-podcast.de/" targe=
t=3D=5Fblank><font size=3D3 color=3Dblue><u>http://openweb-podcast.de</u></=
font></a><font size=3D3>,
</font><a href=3Dhttp://datawithoutborders.net/ target=3D=5Fblank><font siz=
e=3D3 color=3Dblue><u>http://datawithoutborders.net</u></font></a><font siz=
e=3D3><br>
&gt;<br>
&gt;<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
ogpx mailing list</font><font size=3D3 color=3Dblue><u><br>
</u></font><a href=3Dmailto:ogpx@ietf.org><font size=3D3 color=3Dblue><u>og=
px@ietf.org</u></font></a><font size=3D3 color=3Dblue><u><br>
</u></font><a href=3Dhttps://www.ietf.org/mailman/listinfo/ogpx target=3D=
=5Fblank><font size=3D3 color=3Dblue><u>https://www.ietf.org/mailman/listin=
fo/ogpx</u></font></a>
<br><tt><font size=3D2>=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F<br>
ogpx mailing list<br>
ogpx@ietf.org<br>
</font></tt><a href=3Dhttps://www.ietf.org/mailman/listinfo/ogpx><tt><font =
size=3D2>https://www.ietf.org/mailman/listinfo/ogpx</font></tt></a><tt><fon=
t size=3D2><br>
</font></tt>
<br>
--=_alternative 00502463852575D4_=--

From dyerbrookme@juno.com  Sat Jun 13 13:09:28 2009
Return-Path: <dyerbrookme@juno.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 927A53A6A03 for <ogpx@core3.amsl.com>; Sat, 13 Jun 2009 13:09:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.872
X-Spam-Level: 
X-Spam-Status: No, score=0.872 tagged_above=-999 required=5 tests=[BAYES_50=0.001, SARE_MLH_Stock1=0.87, UNPARSEABLE_RELAY=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 32yZENezHikK for <ogpx@core3.amsl.com>; Sat, 13 Jun 2009 13:09:28 -0700 (PDT)
Received: from outbound-mail.vgs.untd.com (outbound-mail.vgs.untd.com [64.136.55.15]) by core3.amsl.com (Postfix) with SMTP id DF9C33A657C for <ogpx@ietf.org>; Sat, 13 Jun 2009 13:09:27 -0700 (PDT)
X-UOL-TAGLINE: true
Received: from outbound-bu1.vgs.untd.com (webmail08.vgs.untd.com [10.181.12.148]) by smtpout02.vgs.untd.com with SMTP id AABFDJB37AWC7F3S for <ogpx@ietf.org> (sender <dyerbrookme@juno.com>); Sat, 13 Jun 2009 13:08:29 -0700 (PDT)
X-UNTD-OriginStamp: ireJTaFtV8IZgEqY8qAucUz3kd483Wdh+mfUpwmPlvO+hBK/p3Q2QQ==
Received: (from dyerbrookme@juno.com)  by webmail08.vgs.untd.com (jqueuemail) id PJYAR4RW; Sat, 13 Jun 2009 13:07:29 PDT
Received: from [68.160.216.245] by webmail08.vgs.untd.com with HTTP: Sat, 13 Jun 2009 20:07:23 GMT
X-Originating-IP: [68.160.216.245]
Mime-Version: 1.0
From: "dyerbrookme@juno.com" <dyerbrookme@juno.com>
Date: Sat, 13 Jun 2009 20:07:23 GMT
To: dwl@us.ibm.com
X-Mailer: Webmail Version 4.0
Message-Id: <20090613.160723.846.0@webmail08.vgs.untd.com>
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Content-Type: text/plain; charset=ISO-8859-1
X-ContentStamp: 1:1:3432765175
X-UNTD-Peer-Info: 10.181.12.148|webmail08.vgs.untd.com|outbound-bu1.vgs.untd.com|dyerbrookme@juno.com
Cc: infinity@lindenlab.com, meadhbh.siobhan@gmail.com, ogpx-bounces@ietf.org, ogpx@ietf.org
Subject: Re: [ogpx] OGPX BoF Approved for Stockholm
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 13 Jun 2009 20:09:28 -0000

So, Infinity, does the group "Birds of a Feather" then have just two kin=
ds of birds in it, one from Second Life and one from Open Sim? Or are th=
e already considered one bird?  Or how does it work?

____________________________________________________________
Save hundreds on an Unsecured Loan - Click here.
http://thirdpartyoffers.juno.com/TGL2141/fc/BLSrjpTIqYuCYzk4uU4PEjQHOpUb=
YWuTuGrgx8GjCf9W96VCiM7mQwVsg4A/

From dromasca@avaya.com  Sun Jun 14 01:06:18 2009
Return-Path: <dromasca@avaya.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A44F33A6AE7; Sun, 14 Jun 2009 01:06:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level: 
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[AWL=-0.382, BAYES_00=-2.599, HTML_MESSAGE=0.001, URIBL_RHS_DOB=1.083]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DPXxzjYBzneB; Sun, 14 Jun 2009 01:06:17 -0700 (PDT)
Received: from de307622-de-outbound.net.avaya.com (de307622-de-outbound.net.avaya.com [198.152.71.100]) by core3.amsl.com (Postfix) with ESMTP id E074D3A6A96; Sun, 14 Jun 2009 01:06:16 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.42,217,1243828800";  d="scan'208,217";a="148493623"
Received: from unknown (HELO nj300815-nj-erheast.avaya.com) ([198.152.6.5]) by de307622-de-outbound.net.avaya.com with ESMTP; 14 Jun 2009 04:06:23 -0400
Received: from unknown (HELO 307622ANEX5.global.avaya.com) ([135.64.140.14]) by nj300815-nj-erheast-out.avaya.com with ESMTP; 14 Jun 2009 04:06:23 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C9ECC6.FFEDD62C"
Date: Sun, 14 Jun 2009 10:06:18 +0200
Message-ID: <EDC652A26FB23C4EB6384A4584434A04017907F8@307622ANEX5.global.avaya.com>
In-Reply-To: <OFCEFDB2AB.605C9953-ON852575D3.0058F278-852575D3.005CF725@us.ibm.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [ogpx] ogpx focus?
Thread-Index: Acnrfp+F58ELZKPOR92SYojR1cDgmgBR+o6Q
References: <3a880e2c0906111203x3b0629e0k36579da73ed60b17@mail.gmail.com>	<4A323067.3020009@comlounge.net><3a880e2c0906120854u3f327f0bma9936f26a6101813@mail.gmail.com><558312.70763.qm@web82608.mail.mud.yahoo.com> <OFCEFDB2AB.605C9953-ON852575D3.0058F278-852575D3.005CF725@us.ibm.com>
From: "Romascanu, Dan (Dan)" <dromasca@avaya.com>
To: "David W Levine" <dwl@us.ibm.com>, "Charles Krinke" <cfk@pacbell.net>
Cc: ogpx-bounces@ietf.org, ogpx@ietf.org
Subject: Re: [ogpx] ogpx focus?
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 14 Jun 2009 08:06:18 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01C9ECC6.FFEDD62C
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I would suggest that the future WG does not forget the operational
deployment and manageability issues. How are services identified and
observed, how can an operator have a view of what services are dunning
and what resources they are consuming, how congestion of resources and
health status of the applications and services are being presented and
reported?
=20
Dan
(OPS co-AD)


________________________________

	From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On
Behalf Of David W Levine
	Sent: Friday, June 12, 2009 7:55 PM
	To: Charles Krinke
	Cc: ogpx-bounces@ietf.org; ogpx@ietf.org
	Subject: Re: [ogpx] ogpx focus?
=09
=09

	The way I'd describe it is:=20
=09
	OGP  if fully articulated will define=20
=09
	1) A low level distributed computing approach  (Caps, LLSD,
X.509, and event queue plumbing)=20
	2) A bunch of virtual worlds building bocks (Prim formats,
Inventory, Assets, Region description, policy languages)=20
	3) A set of rules on how to manage services which share, and
don't share trust (Domains)=20
	4) A set of computational services delivered over 1 and 2 which
can be used to build out collections of services described by 3=20
	5) A specific structure of 4) which represents Linden Lab's best
take on a useful way to partition the problem space. This defines
regions, which live in region domains, and agent services which live in
an agent domain.=20
=09
	Nothing in OGP defines how people's policies between deployments
will be set (nor should it, that's how you run your service) I expect
there will be far more regions than agent domains, and I expect we will
find=20
	lots of regions that implement some combination of OGP and
Hypergrid, or similar schemes.=20
=09
	I would observes, that irrespective of using OGP, Hypergrid, or
some other scheme, that it would be really quite nice if we could make
sure that 1, 2,  and 3 can be shared.  This would enhance the overall
health of the ecosystem that is developing around these closely related
technologies.=20
=09
	- David=20
	~ Zha=20
=09
=09
=09
	 =20
=09
=09
=09
Charles Krinke <cfk@pacbell.net>=20
Sent by: ogpx-bounces@ietf.org=20

06/12/2009 12:03 PM=20

To
ogpx@ietf.org=20
cc
Subject
[ogpx] ogpx focus?

=09




	I would like to see if we concur on a few points, if I may. And
I am not trying to stir up controversy, but rather understand some of
the feelings of where this will eventually go.
=09
	As I understand where ogp *might* go, it will be a protocol that
will allow two seperate virtual worlds to eventually, as peers, both run
a sete of master servers currently called domain servers, I believe.
=09
	In that case, each world will be able, as a peer, to negotiate
via packets, the interop from worldA to worldB (or from worldB to
worldA).
=09
	That is, we are not contemplating that there is only one domain
server at SecondLife, but that, say, OSGrid could run its own domain
server and have reciprocity?
=09
	Charles_______________________________________________
	ogpx mailing list
	ogpx@ietf.org
	https://www.ietf.org/mailman/listinfo/ogpx
<https://www.ietf.org/mailman/listinfo/ogpx>=20
=09
=09


------_=_NextPart_001_01C9ECC6.FFEDD62C
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<META content=3D"MSHTML 6.00.2900.3527" name=3DGENERATOR></HEAD>
<BODY>
<DIV><SPAN class=3D580010308-14062009><FONT face=3DArial color=3D#0000ff =
size=3D2>I=20
would suggest that the future WG does not forget the operational =
deployment and=20
manageability issues. How are services identified and observed, how can =
an=20
operator have a view of what services are dunning and what resources =
they are=20
consuming, how congestion of resources and health status of the =
applications and=20
services are being presented and reported?</FONT></SPAN></DIV>
<DIV><SPAN class=3D580010308-14062009><FONT face=3DArial color=3D#0000ff =

size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=3D580010308-14062009><FONT face=3DArial color=3D#0000ff =

size=3D2>Dan</FONT></SPAN></DIV>
<DIV><SPAN class=3D580010308-14062009><FONT face=3DArial color=3D#0000ff =
size=3D2>(OPS=20
co-AD)</FONT></SPAN></DIV><BR>
<BLOCKQUOTE=20
style=3D"PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px =
solid; MARGIN-RIGHT: 0px">
  <DIV class=3DOutlookMessageHeader lang=3Den-us dir=3Dltr align=3Dleft>
  <HR tabIndex=3D-1>
  <FONT face=3DTahoma size=3D2><B>From:</B> ogpx-bounces@ietf.org=20
  [mailto:ogpx-bounces@ietf.org] <B>On Behalf Of </B>David W=20
  Levine<BR><B>Sent:</B> Friday, June 12, 2009 7:55 PM<BR><B>To:</B> =
Charles=20
  Krinke<BR><B>Cc:</B> ogpx-bounces@ietf.org; =
ogpx@ietf.org<BR><B>Subject:</B>=20
  Re: [ogpx] ogpx focus?<BR></FONT><BR></DIV>
  <DIV></DIV><BR><FONT face=3Dsans-serif size=3D2>The way I'd describe =
it is:</FONT>=20
  <BR><BR><FONT face=3Dsans-serif size=3D2>OGP &nbsp;if fully =
articulated will=20
  define</FONT> <BR><BR><FONT face=3Dsans-serif size=3D2>1) A low level =
distributed=20
  computing approach &nbsp;(Caps, LLSD, X.509, and event queue =
plumbing)</FONT>=20
  <BR><FONT face=3Dsans-serif size=3D2>2) A bunch of virtual worlds =
building bocks=20
  (Prim formats, &nbsp;Inventory, Assets, Region description, policy =
languages)=20
  </FONT><BR><FONT face=3Dsans-serif size=3D2>3) A set of rules on how =
to manage=20
  services which share, and don't share trust (Domains)</FONT> <BR><FONT =

  face=3Dsans-serif size=3D2>4) A set of computational services =
delivered over 1 and=20
  2 which can be used to build out collections of services described by =
3</FONT>=20
  <BR><FONT face=3Dsans-serif size=3D2>5) A specific structure of 4) =
which=20
  represents Linden Lab's best take on a useful way to partition the =
problem=20
  space. This defines regions, which live in region domains, and agent =
services=20
  which live in an agent domain. </FONT><BR><BR><FONT face=3Dsans-serif=20
  size=3D2>Nothing in OGP defines how people's policies between =
deployments will=20
  be set (nor should it, that's how you run your service) I expect there =
will be=20
  far more regions than agent domains, and I expect we will find</FONT>=20
  <BR><FONT face=3Dsans-serif size=3D2>lots of regions that implement =
some=20
  combination of OGP and Hypergrid, or similar schemes. =
</FONT><BR><BR><FONT=20
  face=3Dsans-serif size=3D2>I would observes, that irrespective of =
using OGP,=20
  Hypergrid, or some other scheme, that it would be really quite nice if =
we=20
  could make sure that 1, 2, &nbsp;and 3 can be shared. &nbsp;This would =
enhance=20
  the overall health of the ecosystem that is developing around these =
closely=20
  related technologies. </FONT><BR><BR><FONT face=3Dsans-serif =
size=3D2>-=20
  David</FONT> <BR><FONT face=3Dsans-serif size=3D2>~ Zha</FONT>=20
  <BR><BR><BR><BR><FONT face=3Dsans-serif size=3D2>&nbsp;</FONT> =
<BR><BR><BR>
  <TABLE width=3D"100%">
    <TBODY>
    <TR vAlign=3Dtop>
      <TD width=3D"40%"><FONT face=3Dsans-serif size=3D1><B>Charles =
Krinke=20
        &lt;cfk@pacbell.net&gt;</B> </FONT><BR><FONT face=3Dsans-serif =
size=3D1>Sent=20
        by: ogpx-bounces@ietf.org</FONT>=20
        <P><FONT face=3Dsans-serif size=3D1>06/12/2009 12:03 PM</FONT> =
</P>
      <TD width=3D"59%">
        <TABLE width=3D"100%">
          <TBODY>
          <TR vAlign=3Dtop>
            <TD>
              <DIV align=3Dright><FONT face=3Dsans-serif =
size=3D1>To</FONT></DIV>
            <TD><FONT face=3Dsans-serif size=3D1>ogpx@ietf.org</FONT>=20
          <TR vAlign=3Dtop>
            <TD>
              <DIV align=3Dright><FONT face=3Dsans-serif =
size=3D1>cc</FONT></DIV>
            <TD>
          <TR vAlign=3Dtop>
            <TD>
              <DIV align=3Dright><FONT face=3Dsans-serif =
size=3D1>Subject</FONT></DIV>
            <TD><FONT face=3Dsans-serif size=3D1>[ogpx] ogpx=20
        focus?</FONT></TR></TBODY></TABLE><BR>
        <TABLE>
          <TBODY>
          <TR vAlign=3Dtop>
            <TD>
            =
<TD></TR></TBODY></TABLE><BR></TR></TBODY></TABLE><BR><BR><BR><FONT =
face=3DArial=20
  size=3D4>I would like to see if we concur on a few points, if I may. =
And I am=20
  not trying to stir up controversy, but rather understand some of the =
feelings=20
  of where this will eventually go.<BR><BR>As I understand where ogp =
*might* go,=20
  it will be a protocol that will allow two seperate virtual worlds to=20
  eventually, as peers, both run a sete of master servers currently =
called=20
  domain servers, I believe.<BR><BR>In that case, each world will be =
able, as a=20
  peer, to negotiate via packets, the interop from worldA to worldB (or =
from=20
  worldB to worldA).<BR><BR>That is, we are not contemplating that there =
is only=20
  one domain server at SecondLife, but that, say, OSGrid could run its =
own=20
  domain server and have reciprocity?<BR><BR>Charles</FONT><TT><FONT=20
  size=3D2>_______________________________________________<BR>ogpx =
mailing=20
  list<BR>ogpx@ietf.org<BR></FONT></TT><A=20
  href=3D"https://www.ietf.org/mailman/listinfo/ogpx"><TT><FONT=20
  =
size=3D2>https://www.ietf.org/mailman/listinfo/ogpx</FONT></TT></A><TT><F=
ONT=20
  size=3D2><BR></FONT></TT><BR></BLOCKQUOTE></BODY></HTML>

------_=_NextPart_001_01C9ECC6.FFEDD62C--

From billwindwalker@rocketmail.com  Sun Jun 14 04:23:11 2009
Return-Path: <billwindwalker@rocketmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 775B83A6BED for <ogpx@core3.amsl.com>; Sun, 14 Jun 2009 04:23:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.109
X-Spam-Level: 
X-Spam-Status: No, score=-1.109 tagged_above=-999 required=5 tests=[BAYES_05=-1.11, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mMIH8gj5Rf2R for <ogpx@core3.amsl.com>; Sun, 14 Jun 2009 04:23:10 -0700 (PDT)
Received: from n78.bullet.mail.sp1.yahoo.com (n78.bullet.mail.sp1.yahoo.com [98.136.44.42]) by core3.amsl.com (Postfix) with SMTP id 992D33A6B07 for <ogpx@ietf.org>; Sun, 14 Jun 2009 04:23:10 -0700 (PDT)
Received: from [216.252.122.218] by n78.bullet.mail.sp1.yahoo.com with NNFMP; 14 Jun 2009 11:23:18 -0000
Received: from [67.195.9.82] by t3.bullet.sp1.yahoo.com with NNFMP; 14 Jun 2009 11:23:18 -0000
Received: from [67.195.9.110] by t2.bullet.mail.gq1.yahoo.com with NNFMP; 14 Jun 2009 11:23:18 -0000
Received: from [127.0.0.1] by omp114.mail.gq1.yahoo.com with NNFMP; 14 Jun 2009 11:21:06 -0000
X-Yahoo-Newman-Property: ymail-3
X-Yahoo-Newman-Id: 33387.94671.bm@omp114.mail.gq1.yahoo.com
Received: (qmail 65837 invoked by uid 60001); 14 Jun 2009 11:23:18 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rocketmail.com; s=s1024; t=1244978598; bh=UwQpJe6fgngNEDN9o/nd4e0k8CocVBpZEWb2Qsnj0hk=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=WogVMuW/Q27MzwUtS0s5L882gFE9S6OOUZsxHjQFPp7GL3P35qQ1ZQImuHMID00sgbNzQX7HBG2WPcjVwV4ibQ6pXEQ7KnDPokyKK8lG0wtseNaFV8QOoEcDKEXEzrPy6QturEwDbVhlKyUFDMrGI1q4djLVrJj31PsJhDN/pro=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=rocketmail.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=zZsTcBvUvqxSiDgVEaWrsLeMdBgINVvxnUNjKQzH6voYJtM3PphxZjYLX6rotUWCkvls9vTGVpVDXD3GJZ9Wx3zWirRKhkjYtwIfuzKZTLdAA34iePCCsMAKThf0sFElEDzaegemX1PxLtRXHYv/DQyzURN3AqCeF4lLA2Fdi3s=;
Message-ID: <298346.64873.qm@web111214.mail.gq1.yahoo.com>
X-YMail-OSG: Mf4f7ZAVM1k3L2_k45NKdS3XB4g9l3_eaxLfjTfajXd3qoGg4DpKPWUgrDCdwapA5yDUJLFyTqYIg1wp5c5iUdv3HzrM0G1GpxIDJA7rFxXY3PyXT0985.AmLUHGtABl3wbRLec3_JrJRI7QxenyN6rLLMFcl8dizCMopDm03Y2ns0jNzJA6lPPiMOtl.qnDTpjAypT4uDVKd2FrSDPwJYhPr3.mgF_7COFypL.pme4G6lYfs.XQweqYDhKrcCuGjNZ5BhSBu5PlqId9dn8qILQTQOTzHZwaQ0EsUqzSQAOvhm5aUmONyoCuV4Jz44h5unmjdBjuzd9I
Received: from [69.37.154.10] by web111214.mail.gq1.yahoo.com via HTTP; Sun, 14 Jun 2009 04:23:18 PDT
X-Mailer: YahooMailRC/1357.18 YahooMailWebService/0.7.289.15
Date: Sun, 14 Jun 2009 04:23:18 -0700 (PDT)
From: Bill Windwalker <billwindwalker@rocketmail.com>
To: ogpx@ietf.org
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-1640079854-1244978598=:64873"
Subject: [ogpx] Data self test
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 14 Jun 2009 11:23:11 -0000

--0-1640079854-1244978598=:64873
Content-Type: text/plain; charset=us-ascii

Is there a way that there can be a program that can check the data thats going out or in for errors or attacks ?
some thing non firewall ?


      
--0-1640079854-1244978598=:64873
Content-Type: text/html; charset=us-ascii

<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt;color:black;"><DIV>Is there a way that there can be a program that can check the data thats going out or in for errors or attacks ?</DIV>
<DIV>some thing non firewall ?</DIV></div><br>



      </body></html>
--0-1640079854-1244978598=:64873--


From nexiim@googlemail.com  Tue Jun 16 10:36:18 2009
Return-Path: <nexiim@googlemail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0B6F83A6DA0 for <ogpx@core3.amsl.com>; Tue, 16 Jun 2009 10:36:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.975
X-Spam-Level: 
X-Spam-Status: No, score=-1.975 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HS_INDEX_PARAM=0.001, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a0gRG406Fz42 for <ogpx@core3.amsl.com>; Tue, 16 Jun 2009 10:36:16 -0700 (PDT)
Received: from mail-fx0-f211.google.com (mail-fx0-f211.google.com [209.85.220.211]) by core3.amsl.com (Postfix) with ESMTP id 1BC6D3A6D83 for <ogpx@ietf.org>; Tue, 16 Jun 2009 10:36:15 -0700 (PDT)
Received: by fxm7 with SMTP id 7so839785fxm.37 for <ogpx@ietf.org>; Tue, 16 Jun 2009 10:36:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=cWWy4Vc4ErJvErKBOLUhY3XAqhyJAeHrsYTg/KC2Otc=; b=cVh5WwQoQVe4IFf/C0aG0DNIY1crnXhArnSA2aF1bi4HDfcEnOALIYDjoJmPm5INE4 kz4gR+jSg/Z+bwdVlEAXzfO5setBA2TyLF3Sg/XKKUoAu30b/94b+SKAImATN1gifWz9 n774vg1t8gjwZxV60EkS+F8mxl/MJ0HU4nGHk=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=wNl18zLWXG08Ov/QRp6/6bUM+OPv4SZdDJ5ZFWJoIwoekbXTaybH3/A+0ocAooxoCb hQrPFlaobDdpmH10UrQu+547luBu0z1du+TYcOfeeyLguSbsiuO2QC9tLS6sCaRP7Ptf oNyfE2XAVl7k1FFcZC6ZJr6ClpYKMrM9QDgxI=
MIME-Version: 1.0
Received: by 10.86.86.2 with SMTP id j2mr7829559fgb.50.1245173774372; Tue, 16  Jun 2009 10:36:14 -0700 (PDT)
In-Reply-To: <b8ef0a220906050857r1c1fbe81r41317c452ea9a599@mail.gmail.com>
References: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com> <20090604225840.GA23547@alinoe.com> <b8ef0a220906050746t5282d411t3e148fd00d52cabe@mail.gmail.com> <20090605150949.GA19288@alinoe.com> <b8ef0a220906050856x76026ab6l6cce8370b967643a@mail.gmail.com> <b8ef0a220906050857r1c1fbe81r41317c452ea9a599@mail.gmail.com>
Date: Tue, 16 Jun 2009 18:36:14 +0100
Message-ID: <824c8ab70906161036y22eec460r5534fc0eaa7f4444@mail.gmail.com>
From: Nexii Malthus <nexiim@googlemail.com>
To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
Content-Type: multipart/alternative; boundary=000e0cd2972281536e046c7a9ca4
Cc: ogpx@ietf.org
Subject: Re: [ogpx] Fwd: An Inquiry into the Nature and Causes of Web Capabilities
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jun 2009 17:36:18 -0000

--000e0cd2972281536e046c7a9ca4
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

@Infinity Linden, that explanation was absolutely fantastic to read for a
newcomer like me to this Capability stuff. Now I understand this a lot
better. The theory behind it makes a lot of sense.

On Fri, Jun 5, 2009 at 4:57 PM, Meadhbh Siobhan
<meadhbh.siobhan@gmail.com>wrote:

> dang. i keep hitting "reply" instead of "reply to all"
>
>
> ---------- Forwarded message ----------
> From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
> Date: Fri, Jun 5, 2009 at 8:56 AM
> Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web
> Capabilities
> To: Carlo Wood <carlo@alinoe.com>
>
>
> ah! i see where you're going.
>
> there is something i didn't put in the previous message.
>
> when a capability expires and the client attempts to access it, it
> should get a 404. if the system is down, the TCP connection will
> eventually time out. the processing expectations for the client are
> that if it needs to access an expired (or otherwise unavailable) cap,
> it goes back to the seed cap and says... "hey! gimme another one of
> these caps, please!"
>
> at that point, it is up to the system hosting the seed cap to return a
> cap that is accessible to the client. if the seed cap is expired, the
> expectation is that the client will re-authorize (with OAuth) or
> re-authenticate (with user login or transport layer identity /
> authentication.)
>
> i think this points to a philosophical difference that's plagued
> protocol developers from the early days... where does the intelligence
> live? in the POTS phone system, the intelligence lies with the network
> and the leaf nodes are relatively dumb. tcp based networks do devolve
> application layer and some network layer smarts to client.
>
> the systems that have been deployed to date make a "network has the
> smarts" assumption and current implementations don't have the feature
> you're describing. personally.. i'm not a big fan of what you're
> describing 'cause it increases the burden on network services (my
> systems now have to have a distributed cap router and understand that
> endpoints from multiple locations on the net route to a particular
> system.)
>
> but.
>
> i'm also an experimentalist at heart. if you wanted to re-write the
> caps section of the base document to describe what you're doing, and
> then investigate the behavior of the two different systems under
> typical failure cases (host down, host unreachable, etc.) i would love
> to see if there's a major difference in behavior.
>
> that being said, LL, PyOGP and at least one of the OpenSim
> implementations have been implemented using caps as described here. so
> it might be a better idea to go ahead with what we've got described
> now, so we can get to the real work of describing the application
> layer messages, but keep the "multi-caps" as a future expansion
> option.
>
> -cheers
> -meadhbh
>
> On Fri, Jun 5, 2009 at 8:09 AM, Carlo Wood<carlo@alinoe.com> wrote:
> > Ok... but what if that host is unreachable/down for a while?
> > If the hostname is a fixed part of the capability then it
> > is impossible to continue.
> >
> > We could simply redefine things a bit, and say that a service
> > returns:
> >
> > { range or set of hosts / the rest of the URL }
> >
> > Or more indetail, it could return:
> >
> > http://assetX-NNN.example.com/?91839838
> >
> > where then, as part of the protocol, the 'NNN' has
> > to be replaced by by a number between 1 and N, where
> > N was given to the client upon login (or whenever,
> > some grid-dependent configurable value).
> >
> > In that case, the capability would be
> > "http://assetX-NNN.example.com/?91839838"
> > and thus not includes (one) host.
> >
> > The clients would know how to route it (they
> > just fill in some number for NNN), and if that
> > host is unreachable they can try another host.
> >
> > --
> > Carlo Wood <carlo@alinoe.com>
> >
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>

--000e0cd2972281536e046c7a9ca4
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

@Infinity Linden, that explanation was absolutely fantastic to read for a n=
ewcomer like me to this Capability stuff. Now I understand this a lot bette=
r. The theory behind it makes a lot of sense.<br><br><div class=3D"gmail_qu=
ote">
On Fri, Jun 5, 2009 at 4:57 PM, Meadhbh Siobhan <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:meadhbh.siobhan@gmail.com">meadhbh.siobhan@gmail.com</a>&gt;</=
span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"border-left: 1px=
 solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
dang. i keep hitting &quot;reply&quot; instead of &quot;reply to all&quot;<=
br>
<div class=3D"im"><br>
<br>
---------- Forwarded message ----------<br>
From: Meadhbh Siobhan &lt;<a href=3D"mailto:meadhbh.siobhan@gmail.com">mead=
hbh.siobhan@gmail.com</a>&gt;<br>
Date: Fri, Jun 5, 2009 at 8:56 AM<br>
Subject: Re: [ogpx] An Inquiry into the Nature and Causes of Web Capabiliti=
es<br>
</div>To: Carlo Wood &lt;<a href=3D"mailto:carlo@alinoe.com">carlo@alinoe.c=
om</a>&gt;<br>
<br>
<br>
ah! i see where you&#39;re going.<br>
<br>
there is something i didn&#39;t put in the previous message.<br>
<br>
when a capability expires and the client attempts to access it, it<br>
should get a 404. if the system is down, the TCP connection will<br>
eventually time out. the processing expectations for the client are<br>
that if it needs to access an expired (or otherwise unavailable) cap,<br>
it goes back to the seed cap and says... &quot;hey! gimme another one of<br=
>
these caps, please!&quot;<br>
<br>
at that point, it is up to the system hosting the seed cap to return a<br>
cap that is accessible to the client. if the seed cap is expired, the<br>
expectation is that the client will re-authorize (with OAuth) or<br>
re-authenticate (with user login or transport layer identity /<br>
authentication.)<br>
<br>
i think this points to a philosophical difference that&#39;s plagued<br>
protocol developers from the early days... where does the intelligence<br>
live? in the POTS phone system, the intelligence lies with the network<br>
and the leaf nodes are relatively dumb. tcp based networks do devolve<br>
application layer and some network layer smarts to client.<br>
<br>
the systems that have been deployed to date make a &quot;network has the<br=
>
smarts&quot; assumption and current implementations don&#39;t have the feat=
ure<br>
you&#39;re describing. personally.. i&#39;m not a big fan of what you&#39;r=
e<br>
describing &#39;cause it increases the burden on network services (my<br>
systems now have to have a distributed cap router and understand that<br>
endpoints from multiple locations on the net route to a particular<br>
system.)<br>
<br>
but.<br>
<br>
i&#39;m also an experimentalist at heart. if you wanted to re-write the<br>
caps section of the base document to describe what you&#39;re doing, and<br=
>
then investigate the behavior of the two different systems under<br>
typical failure cases (host down, host unreachable, etc.) i would love<br>
to see if there&#39;s a major difference in behavior.<br>
<br>
that being said, LL, PyOGP and at least one of the OpenSim<br>
implementations have been implemented using caps as described here. so<br>
it might be a better idea to go ahead with what we&#39;ve got described<br>
now, so we can get to the real work of describing the application<br>
layer messages, but keep the &quot;multi-caps&quot; as a future expansion<b=
r>
option.<br>
<br>
-cheers<br>
-meadhbh<br>
<br>
On Fri, Jun 5, 2009 at 8:09 AM, Carlo Wood&lt;<a href=3D"mailto:carlo@alino=
e.com">carlo@alinoe.com</a>&gt; wrote:<br>
&gt; Ok... but what if that host is unreachable/down for a while?<br>
&gt; If the hostname is a fixed part of the capability then it<br>
&gt; is impossible to continue.<br>
&gt;<br>
&gt; We could simply redefine things a bit, and say that a service<br>
&gt; returns:<br>
&gt;<br>
&gt; { range or set of hosts / the rest of the URL }<br>
&gt;<br>
&gt; Or more indetail, it could return:<br>
&gt;<br>
&gt; <a href=3D"http://assetX-NNN.example.com/?91839838" target=3D"_blank">=
http://assetX-NNN.example.com/?91839838</a><br>
&gt;<br>
&gt; where then, as part of the protocol, the &#39;NNN&#39; has<br>
&gt; to be replaced by by a number between 1 and N, where<br>
&gt; N was given to the client upon login (or whenever,<br>
&gt; some grid-dependent configurable value).<br>
&gt;<br>
&gt; In that case, the capability would be<br>
&gt; &quot;<a href=3D"http://assetX-NNN.example.com/?91839838" target=3D"_b=
lank">http://assetX-NNN.example.com/?91839838</a>&quot;<br>
&gt; and thus not includes (one) host.<br>
&gt;<br>
&gt; The clients would know how to route it (they<br>
&gt; just fill in some number for NNN), and if that<br>
&gt; host is unreachable they can try another host.<br>
&gt;<br>
&gt; --<br>
<div><div></div><div class=3D"h5">&gt; Carlo Wood &lt;<a href=3D"mailto:car=
lo@alinoe.com">carlo@alinoe.com</a>&gt;<br>
&gt;<br>
_______________________________________________<br>
ogpx mailing list<br>
<a href=3D"mailto:ogpx@ietf.org">ogpx@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/ogpx" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/ogpx</a><br>
</div></div></blockquote></div><br>

--000e0cd2972281536e046c7a9ca4--

From cfk@pacbell.net  Tue Jun 16 12:20:39 2009
Return-Path: <cfk@pacbell.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 204103A6D6C for <ogpx@core3.amsl.com>; Tue, 16 Jun 2009 12:20:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_21=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QAeZyb5p-W7h for <ogpx@core3.amsl.com>; Tue, 16 Jun 2009 12:20:38 -0700 (PDT)
Received: from web82602.mail.mud.yahoo.com (web82602.mail.mud.yahoo.com [68.142.201.119]) by core3.amsl.com (Postfix) with SMTP id 6F36F3A6BC8 for <ogpx@ietf.org>; Tue, 16 Jun 2009 12:20:37 -0700 (PDT)
Received: (qmail 35154 invoked by uid 60001); 16 Jun 2009 19:20:37 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pacbell.net; s=s1024; t=1245180037; bh=/CiK3wO+SW0pHrERY8krVugqPWwttd40Ls7275xQP40=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type; b=sVg2X0xDfHvYKJouy+9KFhCyLiDX41g8jkXfqZSEvdcUwb39hGVLkAQ7U52gVT/OHZUz5/zp+HTJu56i8Qc8Q+RbY2VWYkoFu5vwjDTCoCvD6CfpuD2Jqv/8r4DYoVI3gxIOprY39N+VDsWvdQeFWFx9pvVm5DUiO9tYxCHxfFQ=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=pacbell.net; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type; b=uV2RLvbTAapBRc02zuJ3aBDXVxjPSJt/RiyLfydFXuLeCpdyQcFsnf/wLntce4ebX+l9yF0cA79u1E5i21AJ1NcoKpIvDc1Ox3wLGIZFhmPmIZVF3QAbNHPNdd5C0E7fsdn8NOfQRKUm2gcHVrmOpfBbuvPoAZWIxk2QolPdimI=;
Message-ID: <863553.35113.qm@web82602.mail.mud.yahoo.com>
X-YMail-OSG: cgDuIjgVM1k_b5Y9KS1dqARBeZMrJLiCKJRoOEcoJCP4upaBK1v2Srjl.p7a1Y07GChHcgCaM10jfY2cFuZ8wUQ_g.yTVnkXugUw5K9liuhMusIEW5HdgOBhAyVyXJo3jg3FC8oUfUdXXYLtFqU6Bb5t4FfOXssyn10pzkAzxEHHBJNALcltJ0A18jwlNWWlN91mY7ZSguFeug.Tul32nWoV9cJCRr8.fKEfWYickNWXSAVYirN_fWI.aJpBxKDj3cRURUNYkRjTP5MZXdIpUr.4rrtDlkPUD9vqwxupZg0XdN8FKRPnpVnv6p7iYOYeRX3sHQ--
Received: from [75.215.195.120] by web82602.mail.mud.yahoo.com via HTTP; Tue, 16 Jun 2009 12:20:37 PDT
X-Mailer: YahooMailRC/1277.43 YahooMailWebService/0.7.289.10
References: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com> <20090604225840.GA23547@alinoe.com> <b8ef0a220906050746t5282d411t3e148fd00d52cabe@mail.gmail.com> <20090605150949.GA19288@alinoe.com> <b8ef0a220906050856x76026ab6l6cce8370b967643a@mail.gmail.com> <b8ef0a220906050857r1c1fbe81r41317c452ea9a599@mail.gmail.com> <824c8ab70906161036y22eec460r5534fc0eaa7f4444@mail.gmail.com>
Date: Tue, 16 Jun 2009 12:20:37 -0700 (PDT)
From: Charles Krinke <cfk@pacbell.net>
To: ogpx@ietf.org
In-Reply-To: <824c8ab70906161036y22eec460r5534fc0eaa7f4444@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-1793703960-1245180037=:35113"
Subject: [ogpx] SL6B
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jun 2009 19:20:39 -0000

--0-1793703960-1245180037=:35113
Content-Type: text/plain; charset=us-ascii

Is there going to be an "OGP" booth on the regions for SL6B? If so, do we know where it might be, yet?

OSGrid has gone ahead and put in for a booth and we would like to be near other OGP activity and have a few prim signs describing OGP in our booth.

Charles

--0-1793703960-1245180037=:35113
Content-Type: text/html; charset=us-ascii

<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:14pt">Is there going to be an "OGP" booth on the regions for SL6B? If so, do we know where it might be, yet?<br><br>OSGrid has gone ahead and put in for a booth and we would like to be near other OGP activity and have a few prim signs describing OGP in our booth. <br><br>Charles<br></div></body></html>
--0-1793703960-1245180037=:35113--

From infinity@lindenlab.com  Tue Jun 16 16:40:09 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 31E533A6C77 for <ogpx@core3.amsl.com>; Tue, 16 Jun 2009 16:40:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.359
X-Spam-Level: 
X-Spam-Status: No, score=-1.359 tagged_above=-999 required=5 tests=[AWL=0.018,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_21=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gmqRaWT1NtCX for <ogpx@core3.amsl.com>; Tue, 16 Jun 2009 16:40:08 -0700 (PDT)
Received: from mail-yx0-f193.google.com (mail-yx0-f193.google.com [209.85.210.193]) by core3.amsl.com (Postfix) with ESMTP id 699D53A6C6B for <ogpx@ietf.org>; Tue, 16 Jun 2009 16:40:08 -0700 (PDT)
Received: by yxe31 with SMTP id 31so142460yxe.29 for <ogpx@ietf.org>; Tue, 16 Jun 2009 16:40:17 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.126.15 with SMTP id y15mr11423284anc.71.1245195617166;  Tue, 16 Jun 2009 16:40:17 -0700 (PDT)
In-Reply-To: <863553.35113.qm@web82602.mail.mud.yahoo.com>
References: <3a880e2c0906031541n3b1c82a3y5b7c91f20b0eb539@mail.gmail.com> <20090604225840.GA23547@alinoe.com> <b8ef0a220906050746t5282d411t3e148fd00d52cabe@mail.gmail.com> <20090605150949.GA19288@alinoe.com> <b8ef0a220906050856x76026ab6l6cce8370b967643a@mail.gmail.com> <b8ef0a220906050857r1c1fbe81r41317c452ea9a599@mail.gmail.com> <824c8ab70906161036y22eec460r5534fc0eaa7f4444@mail.gmail.com> <863553.35113.qm@web82602.mail.mud.yahoo.com>
Date: Tue, 16 Jun 2009 16:40:17 -0700
Message-ID: <3a880e2c0906161640y1c6809eas9c2c76ec67fa8c98@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Charles Krinke <cfk@pacbell.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: ogpx@ietf.org
Subject: Re: [ogpx] SL6B
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jun 2009 23:40:09 -0000

hmm.. i think we're focusing more on getting revisions of various
drafts cranked out before the BoF, so not much bandwidth to have an
official presentation at SL6B. Hopefully, by SL7B we'll have more
consensus, more working code and more presentations for peeps of all
levels of tech / business savvy. But alas, it's not there today.


-cheers
-meadhbh / infinity

On Tue, Jun 16, 2009 at 12:20 PM, Charles Krinke<cfk@pacbell.net> wrote:
> Is there going to be an "OGP" booth on the regions for SL6B? If so, do we
> know where it might be, yet?
>
> OSGrid has gone ahead and put in for a booth and we would like to be near
> other OGP activity and have a few prim signs describing OGP in our booth.
>
> Charles
>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>
>

From alexey.melnikov@isode.com  Fri Jun 19 12:13:33 2009
Return-Path: <alexey.melnikov@isode.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 60DDF3A6B3A for <ogpx@core3.amsl.com>; Fri, 19 Jun 2009 12:13:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.518
X-Spam-Level: 
X-Spam-Status: No, score=-2.518 tagged_above=-999 required=5 tests=[AWL=0.081,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8FeXezm74Iw1 for <ogpx@core3.amsl.com>; Fri, 19 Jun 2009 12:13:32 -0700 (PDT)
Received: from rufus.isode.com (rufus.isode.com [62.3.217.251]) by core3.amsl.com (Postfix) with ESMTP id 8D8DE3A6B76 for <ogpx@ietf.org>; Fri, 19 Jun 2009 12:13:32 -0700 (PDT)
Received: from [172.16.2.156] (shiny.isode.com [62.3.217.250])  by rufus.isode.com (submission channel) via TCP with ESMTPA  id <SjvjRQAh5D2v@rufus.isode.com>; Fri, 19 Jun 2009 20:13:13 +0100
Message-ID: <4A3BE302.5070405@isode.com>
Date: Fri, 19 Jun 2009 20:12:02 +0100
From: Alexey Melnikov <alexey.melnikov@isode.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915
X-Accept-Language: en-us, en
To: ogpx@ietf.org
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Subject: [ogpx] Greetings from the Area Director sponsoring the OGPX BOF
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jun 2009 19:13:33 -0000

Greetings,
As you already heard from Meadhbh, the OGPX BOF in Stockholm was approved.
I am quite excited about this and I very much hope that it goes well, so 
that a new Working Group can be formed after Stockholm.

I will be announcing the BOF chairs soon. I trust them to make sure that 
the BOF is a success.

In the meantime, as the sponsoring AD I would appreciate some discussion 
on the mailing list about the proposed charter. Comments about what is 
missing or should be removed, wrong, etc. would be greatly appreciated.

Regards,
Alexey

/**/

From dwl@us.ibm.com  Wed Jun 24 10:09:08 2009
Return-Path: <dwl@us.ibm.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 2F4063A6CC4; Wed, 24 Jun 2009 10:09:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=x tagged_above=-999 required=5 tests=[]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wgVO+U4HvJvd; Wed, 24 Jun 2009 10:09:08 -0700 (PDT)
Received: from e6.ny.us.ibm.com (e6.ny.us.ibm.com [32.97.182.146]) by core3.amsl.com (Postfix) with ESMTP id 13F963A6814; Wed, 24 Jun 2009 10:08:35 -0700 (PDT)
Received: from d01relay02.pok.ibm.com (d01relay02.pok.ibm.com [9.56.227.234]) by e6.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id n5OHAuLP028139; Wed, 24 Jun 2009 13:10:56 -0400
Received: from d01av05.pok.ibm.com (d01av05.pok.ibm.com [9.56.224.195]) by d01relay02.pok.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n5OH6d2L231996; Wed, 24 Jun 2009 13:06:39 -0400
Received: from d01av05.pok.ibm.com (loopback [127.0.0.1]) by d01av05.pok.ibm.com (8.13.1/8.13.3) with ESMTP id n5OH6dsk012395; Wed, 24 Jun 2009 13:06:39 -0400
Received: from d01ml605.pok.ibm.com (d01ml605.pok.ibm.com [9.56.227.91]) by d01av05.pok.ibm.com (8.13.1/8.12.11) with ESMTP id n5OH6dwk012388; Wed, 24 Jun 2009 13:06:39 -0400
In-Reply-To: <4A3BE302.5070405@isode.com>
References: <4A3BE302.5070405@isode.com>
To: ogpx@ietf.org, ogpx-bounces@ietf.org
MIME-Version: 1.0
X-KeepSent: 68EA1CF7:7097A5B8-852575DF:005D4F02; type=4; name=$KeepSent
X-Mailer: Lotus Notes Release 8.0.2 HF623 January 16, 2009
Message-ID: <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com>
From: David W Levine <dwl@us.ibm.com>
Date: Wed, 24 Jun 2009 13:06:33 -0400
X-MIMETrack: Serialize by Router on D01ML605/01/M/IBM(Release 8.5|December 05, 2008) at 06/24/2009 13:06:38
Content-Type: multipart/mixed; boundary="=_mixed 005DFB7A852575DF_="
Subject: [ogpx] Informal draft for discussion -- client side capabilities and setup flows
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Jun 2009 17:09:08 -0000

--=_mixed 005DFB7A852575DF_=
Content-Type: multipart/alternative; boundary="=_alternative 005DFB7D852575DF_="


--=_alternative 005DFB7D852575DF_=
Content-Type: text/plain; charset="US-ASCII"

This is an informal draft intended to drive some feedback and discussion. 
The content follows the discussion a week ago, in SL at the weekly 
AWGroupies meeting. Feedback is welcome, and encouraged, here, and at next 
week's AWGroupy meeting. For those who do not follow the weekly 
discussions, they are held in world, on Second Life Contact Zha Ewry (me) 
or Saijanai Kuhn in world for an invite. The AWGroupies meet Tuesday 
mornings at 9:30 AM Pacific time, in second life. For those who do not 
routinely use second life, a free account is available, details at the 
Linden Lab web site: http://secondlife.com/   I expect the next iteration 
of the document to be posted as an IETF input for discussion at IETF75 in 
Stockholm. 





- David Levine
~ Zha Ewry  (In Second Life)


--=_alternative 005DFB7D852575DF_=
Content-Type: text/html; charset="US-ASCII"


<br><font size=2 face="sans-serif">This is an informal draft intended to
drive some feedback and discussion. The content follows the discussion
a week ago, in SL at the weekly AWGroupies meeting. Feedback is welcome,
and encouraged, here, and at next week's AWGroupy meeting. For those who
do not follow the weekly discussions, they are held in world, on Second
Life Contact Zha Ewry (me) or </font><font size=2 color=#2f2f2f face="Arial">Saijanai&nbsp;Kuhn&nbsp;</font><font size=3>in
world for an invite. The AWGroupies meet Tuesday mornings at 9:30 AM Pacific
time, in second life. For those who do not routinely use second life, a
free account is available, details at the Linden Lab web site: </font><a href=http://secondlife.com/><font size=3 color=blue><u>http://secondlife.com/</u></font></a><font size=3>
&nbsp; I expect the next iteration of the document to be posted as an IETF
input for discussion at IETF75 in Stockholm. </font>
<br>
<br>
<br>
<br>
<br>
<br><font size=3>- David Levine</font>
<br><font size=3>~ Zha Ewry &nbsp;(In Second Life)</font>
<br>
<br>
--=_alternative 005DFB7D852575DF_=--
--=_mixed 005DFB7A852575DF_=
Content-Type: application/octet-stream; name="OgpSetup.pdf"
Content-Disposition: attachment; filename="OgpSetup.pdf"
Content-Transfer-Encoding: base64

JVBERi0xLjQKJeLjz9MKCjEgMCBvYmoKPDwvVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKL1Zp
ZXdlclByZWZlcmVuY2VzIDw8L1ByaW50U2NhbGluZyAvTm9uZT4+Ci9PdXRsaW5lcyAxNSAwIFI+
PgplbmRvYmoKCjE2IDAgb2JqCjw8L1RpdGxlIChJbnRyb2R1Y3Rpb24pCi9QYXJlbnQgMTUgMCBS
Ci9EZXN0IFszIDAgUiAvWFlaIDAgNTE3IDBdCi9OZXh0IDE3IDAgUj4+CmVuZG9iagoKMjYgMCBv
YmoKPDwvVGl0bGUgKFN1cHBvcnQgZGVwbG95aW5nIHNlcnZpY2VzIG9uIG11bHRpcGxlIGRvbWFp
bnMgYW5kIGhvc3RpbmcgbW9kZWxzKQovUGFyZW50IDE3IDAgUgovRGVzdCBbNCAwIFIgL1hZWiAw
IDQ0NiAwXQovTmV4dCAyNyAwIFI+PgplbmRvYmoKCjI3IDAgb2JqCjw8L1RpdGxlIChBYnN0cmFj
dGluZyBhd2F5IHNwZWNpZmljIHBpcGVzKQovUGFyZW50IDE3IDAgUgovRGVzdCBbNCAwIFIgL1hZ
WiAwIDMxOCAwXQovUHJldiAyNiAwIFIKL05leHQgMjggMCBSPj4KZW5kb2JqCgoyOCAwIG9iago8
PC9UaXRsZSAoUmVzdC9DYXBzIHN0eWxlIG1vZGVsIGZvciBjbGllbnQgcmVzb3VyY2VzKQovUGFy
ZW50IDE3IDAgUgovRGVzdCBbNCAwIFIgL1hZWiAwIDE0NiAwXQovUHJldiAyNyAwIFI+PgplbmRv
YmoKCjE3IDAgb2JqCjw8L1RpdGxlIChSZXF1aXJlbWVudHMpCi9QYXJlbnQgMTUgMCBSCi9EZXN0
IFszIDAgUiAvWFlaIDAgMTU1IDBdCi9QcmV2IDE2IDAgUgovTmV4dCAxOCAwIFIKL0ZpcnN0IDI2
IDAgUgovTGFzdCAyOCAwIFIKL0NvdW50IDM+PgplbmRvYmoKCjI5IDAgb2JqCjw8L1RpdGxlIChO
YW1lZCBjbGllbnQgc2lkZSByZXNvdXJjZXMpCi9QYXJlbnQgMTggMCBSCi9EZXN0IFs1IDAgUiAv
WFlaIDAgNDc0IDBdPj4KZW5kb2JqCgoxOCAwIG9iago8PC9UaXRsZSAoT3ZlcmFsbCBhcHByb2Fj
aCkKL1BhcmVudCAxNSAwIFIKL0Rlc3QgWzUgMCBSIC9YWVogMCA2NDEgMF0KL1ByZXYgMTcgMCBS
Ci9OZXh0IDE5IDAgUgovRmlyc3QgMjkgMCBSCi9MYXN0IDI5IDAgUgovQ291bnQgMT4+CmVuZG9i
agoKMzAgMCBvYmoKPDwvVGl0bGUgKEV4cG9zaW5nIGNsaWVudCBzaWRlIHJlc291cmNlcyB3aXRo
IGFuIGV2ZW50IHF1ZXVlKQovUGFyZW50IDE5IDAgUgovRGVzdCBbNSAwIFIgL1hZWiAwIDE0MiAw
XQovTmV4dCAzMSAwIFI+PgplbmRvYmoKCjMxIDAgb2JqCjw8L1RpdGxlIChBbiBldmVudHEgVVJJ
KQovUGFyZW50IDE5IDAgUgovRGVzdCBbNyAwIFIgL1hZWiAwIDc3MCAwXQovUHJldiAzMCAwIFIK
L05leHQgMzIgMCBSPj4KZW5kb2JqCgozMiAwIG9iago8PC9UaXRsZSAoUHV0dGluZyBpdCBhbGwg
dG9nZXRoZXIpCi9QYXJlbnQgMTkgMCBSCi9EZXN0IFs3IDAgUiAvWFlaIDAgMTg5IDBdCi9QcmV2
IDMxIDAgUj4+CmVuZG9iagoKMTkgMCBvYmoKPDwvVGl0bGUgKEEgc2ltcGxlIGV4YW1wbGUgXChm
cmllbmRzaGlwXCkpCi9QYXJlbnQgMTUgMCBSCi9EZXN0IFs1IDAgUiAvWFlaIDAgMzA5IDBdCi9Q
cmV2IDE4IDAgUgovTmV4dCAyMCAwIFIKL0ZpcnN0IDMwIDAgUgovTGFzdCAzMiAwIFIKL0NvdW50
IDM+PgplbmRvYmoKCjMzIDAgb2JqCjw8L1RpdGxlIChMb2dpbi9BdXRoIGluaXRpYWwgY2FwIGdy
YW50cykKL1BhcmVudCAyMCAwIFIKL0Rlc3QgWzggMCBSIC9YWVogMCAzMDEgMF0KL05leHQgMzQg
MCBSPj4KZW5kb2JqCgozNCAwIG9iago8PC9UaXRsZSAoU2V0dGluZyB1cCBhbiBldmVudCBxdWV1
ZSkKL1BhcmVudCAyMCAwIFIKL0Rlc3QgWzkgMCBSIC9YWVogMCA3NzAgMF0KL1ByZXYgMzMgMCBS
Ci9OZXh0IDM1IDAgUj4+CmVuZG9iagoKMzUgMCBvYmoKPDwvVGl0bGUgKFdpcmluZyB1cCB0aGUg
Y2xpZW50IHNpZGUgcmVzb3VyY2Ugb2YgYSBzZXJ2aWNlKQovUGFyZW50IDIwIDAgUgovRGVzdCBb
OSAwIFIgL1hZWiAwIDI5MyAwXQovUHJldiAzNCAwIFI+PgplbmRvYmoKCjIwIDAgb2JqCjw8L1Rp
dGxlIChGcm9tIGxvZ2luIHRvIGEgY2xpZW50IGNhcCBkZWxpdmVyZWQgbWVzc2FnZSkKL1BhcmVu
dCAxNSAwIFIKL0Rlc3QgWzggMCBSIC9YWVogMCA1MjUgMF0KL1ByZXYgMTkgMCBSCi9OZXh0IDIx
IDAgUgovRmlyc3QgMzMgMCBSCi9MYXN0IDM1IDAgUgovQ291bnQgMz4+CmVuZG9iagoKMjEgMCBv
YmoKPDwvVGl0bGUgKDxzdHJpbmc+ZXZlbnRxOi8vNGEwZTBlMDktZDNlMS00YWI4LWJjM2YtODc1
ZTBmODJkOTc1QGFkaG9zdC50ZXN0Lm9yZy9jY2Fwcy9lMTMyYzRlYS01NWM4LTRiZTMtYTc3ZS0z
ZWM5MWVmNjNiN2EvZnNsaXN0bmVyPC9zdHJpbmc+KQovUGFyZW50IDE1IDAgUgovRGVzdCBbMTAg
MCBSIC9YWVogMCA1OTggMF0KL1ByZXYgMjAgMCBSCi9OZXh0IDIyIDAgUj4+CmVuZG9iagoKMzYg
MCBvYmoKPDwvVGl0bGUgKEZsb3dpbmcgYSBtZXNzYWdlIHRvIHRoZSBoYW5kbGVyOikKL1BhcmVu
dCAyMiAwIFIKL0Rlc3QgWzEwIDAgUiAvWFlaIDAgNDU4IDBdPj4KZW5kb2JqCgoyMiAwIG9iago8
PC9UaXRsZSA8RkVGRjAwQTA+Ci9QYXJlbnQgMTUgMCBSCi9EZXN0IFsxMCAwIFIgL1hZWiAwIDUy
NSAwXQovUHJldiAyMSAwIFIKL05leHQgMjMgMCBSCi9GaXJzdCAzNiAwIFIKL0xhc3QgMzYgMCBS
Ci9Db3VudCAxPj4KZW5kb2JqCgozNyAwIG9iago8PC9UaXRsZSAoTm8gc3VjaCByZXNvdXJjZTop
Ci9QYXJlbnQgMjMgMCBSCi9EZXN0IFsxMSAwIFIgL1hZWiAwIDIwNSAwXQovTmV4dCAzOCAwIFI+
PgplbmRvYmoKCjM4IDAgb2JqCjw8L1RpdGxlIChTdWNjZXNzZnVsIHJlc3BvbnNlcykKL1BhcmVu
dCAyMyAwIFIKL0Rlc3QgWzEyIDAgUiAvWFlaIDAgNTA2IDBdCi9QcmV2IDM3IDAgUgovTmV4dCAz
OSAwIFI+PgplbmRvYmoKCjM5IDAgb2JqCjw8L1RpdGxlIChTaW1wbGUgb2spCi9QYXJlbnQgMjMg
MCBSCi9EZXN0IFsxMiAwIFIgL1hZWiAwIDM2MyAwXQovUHJldiAzOCAwIFIKL05leHQgNDAgMCBS
Pj4KZW5kb2JqCgo0MCAwIG9iago8PC9UaXRsZSAoUGFzc2luZyBiYWNrIGNvbnRlbnQpCi9QYXJl
bnQgMjMgMCBSCi9EZXN0IFsxMyAwIFIgL1hZWiAwIDQ3NyAwXQovUHJldiAzOSAwIFI+PgplbmRv
YmoKCjIzIDAgb2JqCjw8L1RpdGxlIChGbG93aW5nIGEgcmVzcG9uc2UpCi9QYXJlbnQgMTUgMCBS
Ci9EZXN0IFsxMSAwIFIgL1hZWiAwIDI0MyAwXQovUHJldiAyMiAwIFIKL05leHQgMjQgMCBSCi9G
aXJzdCAzNyAwIFIKL0xhc3QgNDAgMCBSCi9Db3VudCA0Pj4KZW5kb2JqCgoyNCAwIG9iago8PC9U
aXRsZSAoVGhlIG92ZXJhbGwgcGF0dGVybiBhbmQgb3RoZXIgVVJJcy4uKQovUGFyZW50IDE1IDAg
UgovRGVzdCBbMTQgMCBSIC9YWVogMCA3MTAgMF0KL1ByZXYgMjMgMCBSCi9OZXh0IDI1IDAgUj4+
CmVuZG9iagoKMjUgMCBvYmoKPDwvVGl0bGUgKFNlY3VyaXR5IENvbnNpZGVyYXRpb25zKQovUGFy
ZW50IDE1IDAgUgovRGVzdCBbMTQgMCBSIC9YWVogMCA1OTMgMF0KL1ByZXYgMjQgMCBSPj4KZW5k
b2JqCgoxNSAwIG9iago8PC9UeXBlIC9PdXRsaW5lcwovRmlyc3QgMTYgMCBSCi9MYXN0IDI1IDAg
Uj4+CmVuZG9iagoKMiAwIG9iago8PC9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFIgNCAwIFIgNSAw
IFIgNiAwIFIgNyAwIFIgOCAwIFIgOSAwIFIgMTAgMCBSIDExIDAgUiAxMiAwIFIgMTMgMCBSIDE0
IDAgUl0KL0NvdW50IDEyPj4KZW5kb2JqCgo1NCAwIG9iago8PC9MZW5ndGggNTUgMCBSCi9GaWx0
ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicdVZNd6M2FN37V7zltMdHQSC+umkzTTx1m3bSjHsm
WxlkWx1AjAR2/O/7JIwBl2RDDPd933clSjz8g/0i9rv/+icLKfHjMIIojUmSpAlosdj9uPi4WVg4
DRJC/ZAiPiCJH6WwyRd3qwBo0tlvdosP95BrvmugUo0AVcHnT8+vYETT1lDzphG6Mj/A5t/F48a6
ZaFPKEvDicsPyxGCpiGhNGAQez7xe8TjUVQNfG9FK8wSeJXDPy/rsWM/DEgaBj5EoUfQR9TlSoH6
Q64P/Chz+ErgSRxlJcbmXkDiOAohCkISJSxwUdcf/xxjfGwH9W4wGzKGMIpu2A3k9wkkZIR6yQ3k
K2+MqsYwnEicenQKexFGcJ0dRsDAdTSOpsBfsV1Cj2Be14XLg3YPvcd0KEmw1RD5lNA48Jx5fip+
aQ2R25JkquzdzPp4+YTvkzhJ4TRyRlOCyYdQLgIWEOaFbHhXLL6gSZiE/zNJoii4NXHvrMmFlD6S
0g06TLHw0OvqfdaikKWsuD7Dg+MjsuB+0vaUYE89COOYREHa1blSGrDAErtlbsCRxyIIWUIiGl3G
2FYCqT/uPVI08OJ4iluC73npCNavGyZLEkqj6xqxgZrrqtEqb7NGTmhw3dTIuwa4W/kTVm8O0nTr
lwuTabkVBpqDuK4f7LDK1shqb5dzCWK0S26VskLaN0bmAjJe860sZCOtFzWXCouI39daqlwU4+31
GElTRqcom80lyB1qgz7KTIC0DOWuYDjJ5iCddhBYN7AVe4l5b89Y0U5WNnPrQh3RoCiA17VWPDss
57ILkE+juJWzNLXI5E5mIArhho3R3Yes1dqmJcu6+8JtPmTOMQ7P6x3fw45LXZwtedAQW39S+pvI
Qbxx+wJwIpgjqo3ICWwwEH7IGnh6+vKwdIG73yhidjolbr9TtZm4QTKi1sXShej7yLW4xsKJgSyK
1jSaY1Ku9AvswoZOPK2NeGs0llyc54LGbJiec26wLbyYa0zAQsJ67MZFRG5VGDKXfK95aZB8s6nt
CnWydRs4CTvWjrYIwDVocdJXB3NRcc7XcWhRa1RGnKOaqDoNUtxPL5mg71Zssj61MkZui4ld4pM0
8dmN3XTteha6wnr69FS96TqBv5Rl+B6pfVY4AMTMFUWjYdZuP3Y8wz08qbbI0RS33HJFHsXcIPwk
Hqg/iAI++W1PfOZP4Lc9eXi5X20mDQlIFEa3RtOGyMbGwh09Ix8HObZ8k8ate3WhaK6xBJyuyVpj
bvaNWaGOUfwn5axUgWTBBs7VHQcDAXetxt7qkfMlrJHrKACNDY3TxjQbSzberV6BqdWt+2gn9/nT
6/M7qV0DMjaM6W9UUasZBtTONfynkQXeZTqLwBv2iY590r6DE8hv6gRli9zSLeqULAXqZoFrU2VW
coxrNDdGZRJf5k4+MXl8iSeA3FdzGdBw6KY/n8EYshm83U6vFrrEDjqat1ssvmmdiGP9+tA09RLw
vHkr69o+DdKg4Ho2nkeHuaEqVKZWepBme8+RjbBSIAjYjmSFMkgbhXJhhVd0I+PYjVxMtamvmiKH
rioRzFY9gaxN10Yj8GBAiaxUu3cLjoOFg6UNdqMyDUepefzjBU7uOOp6sX7crOZSQNZcycLmUxhD
7jEu1ldK405sXp3hmzjjxfx7K/Xl8EKCi59niEkZXpnfuWC8jBzMmKbpu0I3SAnPc9RZc7lf7Pqd
nCZnbxsX+bu7HPrulmCB3Rn/el2R/wDnV3C+CmVuZHN0cmVhbQplbmRvYmoKCjU1IDAgb2JqCjEz
MTMKZW5kb2JqCgozIDAgb2JqCjw8L1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3gg
WzAgMCA1OTUgODQyXQovQ29udGVudHMgNTQgMCBSCi9SZXNvdXJjZXMgPDwvRm9udCA8PC9GMSA0
MSAwIFIKL0YyIDQyIDAgUgovRjMgNDMgMCBSCi9GNCA0NCAwIFIKL0Y1IDQ1IDAgUgovRjYgNDYg
MCBSPj4KL1hPYmplY3QgPDwvSTcgNDcgMCBSCi9JNiA0OCAwIFIKL0k1IDQ5IDAgUgovSTQgNTAg
MCBSCi9JMyA1MSAwIFIKL0kyIDUyIDAgUgovSTEgNTMgMCBSPj4KL1Byb2NTZXQgWy9QREYgL1Rl
eHQgL0ltYWdlQ10+PgovR3JvdXAgPDwvUyAvVHJhbnNwYXJlbmN5Ci9DUyAvRGV2aWNlUkdCPj4K
L0Fubm90cyBbNTYgMCBSIDU3IDAgUl0+PgplbmRvYmoKCjU2IDAgb2JqCjw8L1R5cGUgL0Fubm90
Ci9SZWN0IFsyNTEuODcwMiA2MTguNTc3MyAzNDMuNDA1NCA2MzEuODY2M10KL0JvcmRlciBbMCAw
IDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKG1haWx0
bzpkd2xAdXMuaWJtLmNvbSk+Pj4+CmVuZG9iagoKNTcgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1Jl
Y3QgWzI1MS44NzAyIDYxOC42MzAwIDM0My40MDU0IDYzMi4wMzYyXQovQm9yZGVyIFswIDAgMF0K
L1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAobWFpbHRvOmR3
bEB1cy5pYm0uY29tKT4+Pj4KZW5kb2JqCgo1OCAwIG9iago8PC9MZW5ndGggNTkgMCBSCi9GaWx0
ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicfVbJkttGDL3rK3Acp2Ra3LQcE2cpV7kqU844ycGX
FgmKnZBsTndTsn4z+aEAXJuqjueimREay8N7AMJgRz9w2Ryi4bfpM0nDIDqke9ifDsHxeDqCxk3x
3eaHlw2bn9LRPD0G+2R3gpd88+7nCMLx+UuxeQqDN/Dy1+anF34UTt+4L55+69pWaQs5tpW6y+YC
BvVVZmhAZFoZ+tBnabXQd8hVLWQDoskdt/ExCqJ9fFi7LZWx7KxWOVbGzWJ3nMo8BcfJ/EMDrdBW
Zl0l9BZa1LW0SyZWwRnHFDGfEqu7ysq2QuBgBm7SlpzdmObWGzRMg2QKmlWdsag5zVa2aLZcGQXN
Oo3VHUwp+u/wio2F1w47xoQshn9QXfKK+u5CPPdkFwa7KUzkb4Jr8v3ZEMKZBXETd6rAtJjJQmZg
KAEq8CxzqTGzUjWi6pOFQqsabInw6y/Pf/YPvCjviU3RY6/dirag35bWtiALIMjPmKma6wT6rBW3
xRJGzRZueDYq+xstPSFbCn33BkwPS1sHb6OrAd6iqyrIO2rbVzBZiTWnYLqsBGHga922s/cxF7hK
ca7Qg/I+iZdmxl6UVybPWl2lS90wScgsPq3NkIrvaQuF0sT+rJSWsO+0qIgVOZpMyzMTQ6NRnWZ+
Ek7ciqySBGzghSVMFnG8lJJBbACLgjzTrwb+EXlODrnh/46OqPs5LlFcQsf7HbV1H679tn2B5MGx
pO+CU7iL1pYaC9TYjNqi3Gsfjfe73UKexA+wa/K8ku2Q/iha3QdqRT9PVEdEeExhlTORNj7Ga+9o
0A+ML6/0mC40HCcDt2jKLatUR1oXBSudeUn6awzNIHJfrYgdp8H+EB8hJWLPghUrMNIpqGvyrAeZ
zUOsV6xplSr6wUi9FpeheIdIlCNDVQpOV1HFjzqbYyWRM23FlYYEYgMXKsP2I5LcsfOHUoa30XGB
9ewvxTUZhMO6wCZvlaSqZEONpb+4QhoR5UijqUFfnki1hOt9mDWvIK5CVqzjrTdaGC/dYtHRw8+f
PhAwLWFDDhgxx/0E2Jc3vk4lp5Mz5L3lrUzGTnGMSzdIEFSx1DpFg1GiK8ZNWkmIcHPvc69WVibv
K+oucW+YNH1tnWb2udMZZE2Dsqa/Bc9+N+58JVDV0bz+k9X6/8Zup4k1r89hXw677X/39hQvPi4b
9PHc+F1q29GCuild5QZ6VgrayyxW0VyQUR1yqUfe8GoZ967G146WHD04ayXy+YUvh4OzO6eStv0B
ALks+rlieeu03QAcL01NuqvQuJ2JiAXpKT2sHf6BcCMRMaOxYcrSOaIYJ/oHgYIXYec54kUo3S/K
pDfL/cSPSN4B8AKg+0J1VT7F6AdSPw24BbBUxdiM95A7S32BE2fXZzw9VpsoDeIoitdWTjeGjsOt
lLSLa0TLpJQaGsR8hdocbrefRfvIvOmgYSr1N8180fSXlsdb5MzOR171cEkzDPDhIqIzkYYnQaL5
CAvAaVour4rVujqOOPagofly8iXhDtVJjx951jXwUZy/Ic1tH+7zj8/uKcljbMxXtERAkZX+zkXu
tB0PS4aOiGPWkzUYShKmJa3035lR5Ne1+BS5IC0Rc6TKWXiT3H3h3fF7R8EUJUBpWXc14yh6LgyV
ccghFb646ZbDq6pI5308K2t0qUI7nOpKwnWE9xrFwAw+KheqezIL3TnNG2EawbmLKNSiERf2mKmm
Ge7kcbFe+Nf+wCIs1A013Z/AhOzF/DZTnR+S0J3Vw23AIJOqll1O8a3KVEWDrskrFrbP0Tfm8ydi
8Lv3oqVZYO9EkuXqfNhzs2D+Aw+yNk8KZW5kc3RyZWFtCmVuZG9iagoKNTkgMCBvYmoKMTM2Ngpl
bmRvYmoKCjQgMCBvYmoKPDwvVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAw
IDU5NSA4NDJdCi9Db250ZW50cyA1OCAwIFIKL1Jlc291cmNlcyA8PC9Gb250IDw8L0YxIDQxIDAg
UgovRjIgNDIgMCBSCi9GMyA0MyAwIFIKL0Y0IDQ0IDAgUgovRjUgNDUgMCBSCi9GNiA0NiAwIFI+
PgovWE9iamVjdCA8PC9JNyA0NyAwIFIKL0k2IDQ4IDAgUgovSTUgNDkgMCBSCi9JNCA1MCAwIFIK
L0kzIDUxIDAgUgovSTIgNTIgMCBSCi9JMSA1MyAwIFI+PgovUHJvY1NldCBbL1BERiAvVGV4dCAv
SW1hZ2VDXT4+Ci9Hcm91cCA8PC9TIC9UcmFuc3BhcmVuY3kKL0NTIC9EZXZpY2VSR0I+Pj4+CmVu
ZG9iagoKNjAgMCBvYmoKPDwvTGVuZ3RoIDYxIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0
cmVhbQp4nH1WTXPbNhC961fgKHcUWqIoSjomnaTNoU0m1kwvvkDkUoIrEgwBStEP7f/pW/DbgePx
mLK4wL79eG93FSzxI06zbdh86p7RZhWE200s4v022O32O1HRLPtt9uEwm5hvdkEcLffikM4eP4Vi
1X5/yGbzL0VC4oZfWVhhtch1ShdhzySSi6LC/mdwp9F1lZARhkpZSUsiq3TeGOk8rwuVSKt0YUSp
SpjVhtIHcXiZfTwwlB5GFAVhC2MOVzLBnQbXaEODkwWjkRV8yIRScVP27DyVlT5eKBc6E4XMVXFa
CFmkQqYpjhr831zk8xvug13nt/cTjCxXYRysV8vN1PTA8dVVhSy0yVggPcZe7kIaU+fE2KUVCq9l
IZAa02YGr4w8kbD3En+0D9NqE0Sdo5QsVQgJVTgTIudwuyvMWdeXVByRIV1bSgPPZfEu7uvrUOsr
VfJyES+1sSrrq5PpCrXhVH37+HQQskROZXJGHJxvaVDNEwfLdkMHLPiNLO5C47vK5x4f+rqWumJn
XKYvf3wNBMNx3prGkhkuT3EffBVGGcv+OiB9/zHEvlA+j+E2iNZx2DT0WqyiUUO3sXeXeo5vdkMj
vubDPzSCM0plSkadCk4FPiWVOjLGroP1iCNoQpRJHO9t+kwg3huRI4E+JPGo31p7VwxVNHcr9Lyr
R1YDxNnasnPaU9BQdVXs+XZWAH1TxiUS+bUysWySM6d83jeTJnRh0STqLhULAELNbvLeeim5YYGV
roD8vaaaXBpwnMnP1nZgj891tAqWnWuVl2A2DF2ftrwemtPUcChZh4DK0Ls/D4ev4nn+pHOyillY
UQbapAyAzThLC1G946fPdThiCzJbWnt+fhirwWodxPEynFq2IWW1rVEfJ0sFsnyWxamJnd8epVFJ
jz0ASo5FpYRk3mFfUGeZoM8XPnSrEZmOdNc4b+rS0YpZ4aISF8ccZCOYIO/nQhz2hX38FE0a/G+Z
I1VNrwkDaL9kWoSjb40OpnYuX5BCiLByrO+Ca1Wz4bxqdRKS0Kq15K72QmDBUD4g6/1uyAtlGSVW
XQlJpR/IRGqcXxaaR/G7LOVRXYAIhWnnmUZLQmRBCKeEqrjqy5UTanCYn6m0soXv875bv+ZpID4X
KIJMOa7uFiZbn4QmPhZPwaKLkGFVasWSihnHM8NpurNu/ft8QyN6lpqSElb0/ionLRgUTnEGt4H4
cG+1fujLkQ6zpOCgKuuL5Mby+YU69BTFJT8N6RNZFxqzl79wKplhjKFjyZV7kvMj2RtRMegVU6NB
6/MeLQfuveoRj3m43wS7NybCe2AcHcGqFGMjmhyZcwxoJemez/OsUtxUZ1V6+RVu3mbFk2ax7Dpj
LCscEcvK+PSc8iOlrncGn3yeI5bi81/dIrAQqBirbaPE/SbWv0Y2fUjXI9pU9L1WVdcTbX+iW5vN
hb87A/XoljDaBmGM/XJyDVWudLAfN3AHZHR8jQxvovUrFDfq89O0i5A+4OH656VN6GKymDSzCPqC
fUwnStpuYRzlssXVKMvIURQug802Cqeehm23kS0qfNiWI0aW8N3MntEwfp6b54cWXkHN655uTb46
P82KxHs0gkuk4dkCJrlBLH3MWO1HvByGPx8qsXv0AU91aCGOtWXWtjl3JXNScOJB4uaT0Y1Qd5f6
nO9GtGQFYyX9lzDaqlxeGoUxhFAt9EZjS2hXz7Zwv+Twar3sC/F6an38gdi4c71Toyk60Lh1RLh9
pHPwP17pB6MKZW5kc3RyZWFtCmVuZG9iagoKNjEgMCBvYmoKMTMxNAplbmRvYmoKCjUgMCBvYmoK
PDwvVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Db250
ZW50cyA2MCAwIFIKL1Jlc291cmNlcyA8PC9Gb250IDw8L0YxIDQxIDAgUgovRjIgNDIgMCBSCi9G
MyA0MyAwIFIKL0Y0IDQ0IDAgUgovRjUgNDUgMCBSCi9GNiA0NiAwIFI+PgovWE9iamVjdCA8PC9J
NyA0NyAwIFIKL0k2IDQ4IDAgUgovSTUgNDkgMCBSCi9JNCA1MCAwIFIKL0kzIDUxIDAgUgovSTIg
NTIgMCBSCi9JMSA1MyAwIFI+PgovUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VDXT4+Ci9Hcm91
cCA8PC9TIC9UcmFuc3BhcmVuY3kKL0NTIC9EZXZpY2VSR0I+Pj4+CmVuZG9iagoKNjIgMCBvYmoK
PDwvTGVuZ3RoIDYzIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nI1U2W7bMBB8
11fsY1oYtERRF2DkoU0KFEgvRD/ASHSkRhYVkrZrFP337uqwZVQtGjimec3MDnc3YD7+wbOX8OHX
NIooYDyJYoizhKVploJR3vat9y73ro5HKYuFn0FeeusPHIJxPd96N491WyhwlYKiqVXroJBtqx2U
tVGFa06gfnTaKqidRXCr96ZQdjW/YBSOFnQL6kDz173a49xp2CpXVG8g/+7d56TprEcIxkc9N0bh
BYvoJX7XrSphqw3hI+mZELZG78Aqc6hxxiCvagv42amylg7vHGoJEt5/+XSfg3WnRi3R8oylE+1M
K8Gdo+l009g+vJFtBbIt4VipllaNAmlI2JLo2q3wf4k5iJiYmAtkQGuJRNsZFNEYvXeqp9+RgSSj
wvVGGYsS6qKCzmh0YDjCJqpXT4QjlX81BGF0nTFRzIdEKXbe+mMAd9r7NlcaiZQJ2ielZMtZXqFb
J+vehPO70OQ0GELCS9Q82EWHdgoDpCV4wvRpD/oFD+geYMGiKBTMn4gnfATDuFXT0EiYnTw1WiLM
dtTRi2NLeL5gIhThkPMRBP4l5zc72d0u3MHAWZCkg4bNizrdWiLAAtmsabapW3degna/e1Jms6bF
JbAkZBkPxQVsimoEs87U7fNtJ11F8Vx2x40lTCrkOMkumIPJ14hfvzzm/0QRIRMBnykbbR1gfj48
PN6RonH11xIET1kQJf4Asf6LnyF2pVjEw6l7idk7Phg1GcqKMWueTv1rzkpySn4sL+xD5VQE/5Hw
UXyd8JxzFqZhNiQ8/yPhuZ+wjPZJ42ft1Fj7nTTYWK5bmq0keYpJjNktu/mrkeCpUvsSWLAjyDhL
eDr4XmLXPKgerufoGyYRXKK1S3kdYAHzIIlGvUfsOC1oUypDAIXedY3qg8DuaJ02pxUWELSqL07y
szA1Ol/p47zJ2SUmEbMs5sPrvbR44VhJN+vJQy1PjbNvBbbS+6bEJopvPPWCkcouVX0QBizx4/iq
6m3fUWRZ4oJV5dmF39/VEnUKZW5kc3RyZWFtCmVuZG9iagoKNjMgMCBvYmoKNzY4CmVuZG9iagoK
NiAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMiAwIFIKL01lZGlhQm94IFswIDAgNTk1IDg0
Ml0KL0NvbnRlbnRzIDYyIDAgUgovUmVzb3VyY2VzIDw8L0ZvbnQgPDwvRjEgNDEgMCBSCi9GMiA0
MiAwIFIKL0YzIDQzIDAgUgovRjQgNDQgMCBSCi9GNSA0NSAwIFIKL0Y2IDQ2IDAgUj4+Ci9YT2Jq
ZWN0IDw8L0k3IDQ3IDAgUgovSTYgNDggMCBSCi9JNSA0OSAwIFIKL0k0IDUwIDAgUgovSTMgNTEg
MCBSCi9JMiA1MiAwIFIKL0kxIDUzIDAgUj4+Ci9Qcm9jU2V0IFsvUERGIC9UZXh0IC9JbWFnZUNd
Pj4KL0dyb3VwIDw8L1MgL1RyYW5zcGFyZW5jeQovQ1MgL0RldmljZVJHQj4+Pj4KZW5kb2JqCgo2
NCAwIG9iago8PC9MZW5ndGggNjUgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic
nVdNj9s2EL37V/C4CVxZkiVZzqkt0BQ5tUhd5BJgQUu0xa4saklqDaPon9xF/0/fkJItbRQ07WIB
2/JwPt68eUNHQYg/dlxsYv9ueE3SKIg3acay7SbI823OtFgc3i5+3C0m5mkeZEm4ZbtysXqfsKh/
vjss7n5omHgSjX1kv3/88Ibt/lj8tKPz17NhHuTXs/Hk7E4x07Wt0pbxstTCGNkcWVFL+GNGlgLp
GNXpgt7wohIle5J2FGS9XgdxkkWTKHcuH/bYiU6YJTsLJhurVdnBDW9mUsy2SZAMh599Ne9eqJ5g
ZB0lSW+eJcEmT1NfUcqi8FaRGB9I6YtoeuDOe1+tfJX3svz+8Fg29+pw7wJPisuCcB3F0/OPY4sE
FazjVxb3lTJ29WfLbcWsmq0g2QbpmlKG+QDxX7OW0TYIo23kLJWeNQnXwSZbZzfoxylGOYGQbqdm
ZmKBMsMsn1p8HaHHf68vzfMgDfPoq/UNnU9B7DyNN3PkfK80K4XlsjZMNcQGdlD6xO1y5Khvff8S
+Rd9XMRhjInJ0kmEu8raFoWJJjjLB9mKUvJA6eOKPq0Q4N6A46crh2adf/wZz9MciJ7HUTZBmmQh
Oy0SehZuk9uzevHbf7DsRz8J0+HLUQG8KdlJaeGRqOvLu2/A4go22pO8gsIqVZtACntwQFT2VK/0
oVhv82zwfDu+DiKfeRxvgm0eJ7dnlPk3G75StzRCqUNen6ARqK8UptByT3LEme8K65XhhZ0lmFdJ
obkuKlnwmrUcErbX6kE0JDaK2Uowq3kprVQNr+eoF0J6h6jPvLOV0tJeXhhh/Ezkfnk1JFmUxtNj
v3SaXU8yaQYVhU5yw56/GCA2GqCXmZwSvLl26FPFLeqAV8Mvhrw/o+uusq6RUNdBqD/fXQN9fsMu
qmMFb5hWnRWQa46C2EiRGQVHgvvLXAIgWzgkQJHImNXSnaCSZpQA/UATKnSlrtke7XOHGn4SY/VO
gNs23m6mIbCAeshcXaYVhSzm8gJ9rhQZBGVJsmAJJV//0tV+6pBxq9UTrS9ySq0M5nxGyW2wdtUA
J1BculYyU9FitEKfBsCN1cRILVrkAFv6YK8nl6zstH9ETaNtigQdWWE0l0EY3tpthH6ShTBwprpy
uviyYB3m2dR+R0Hw35daQopZi1wlNje6ozEV8kSrnaPzqqU5MAF7L7VBojDytoZ1ZiriQ3JrWgtD
sJYbQqTgLd/LmsjuyhqY9fjOyTMyAGq+jp4UvMbFobywirvzqmlEQakwP6NzcTfRrdUDsDSTkDt1
NsNkN8ZdW2rEr5lRB3sm2YDXrikFaqQTqPJ/xIcYx9P4AftAnowaciiU1vADtlf8SWIoZePyOnAU
jjEHLtxacWotxdHiO4GE9hij6nUScwngUpGPZ7C/3tFUeSQOsiHtX/oCXUZX9iBeAUvB3vLm8nYy
+LB+aMiY76ENc5Hj/MYv378+WdPjNUjOwe3mWoJnRHhp/zYoE2HMa9OAOaL2aXLWdKe90ABpLj4m
8kY5ZWnCQONStLW6nChuS7DqxvTsGviOFUBpAHkXWJ3aznKv/OjJXsvC87WZwzvebkeEq3hzFK9q
gNBoBhgw0VzL+uK1qkd8TlriTTiVFt9C028ypy+YWZRHy6uP1bd5MBl0gwQS003oSi0cCtZvhjn2
xml2a6EbhYuDZswDaDSUoXa+4Llzl366Dxiqk2b6sSN+ocSi06NpW2LQXPC5wHQVHgKfCCmCEYuo
UdZFRCxodouInsTIH76d0FbyWKHLRy3c9IBzB0KnENdK/R6qVF0i17nouGdk45kZVEggUk+LHl/p
JQQXDMBZOsdzLYw2m9HNdPqT69fOWk974jX6dxRUzZyX+LbsZn588cJ6pDsj/NZoa8wHfLufTY3w
sg7xVYXkVoxHcPrz7MqWvvC5XKLRDh1Wtqk82SkBiWH9RJ2CvKHdPh4xdbhQGWG7lh0wyS41n5xP
/ZbKHJiYsPjLTbt6kuIMLbgKx2TBHLQ6uXWCMHg8SOxV6Bphz0o/BLj+OFPZSFKLmej5aM/X6igb
N8+O1TiC/dEHU9REimVwjdqNSKRRtxMdt/Pcqus5NVhQM4bI/wAoBLelCmVuZHN0cmVhbQplbmRv
YmoKCjY1IDAgb2JqCjE1ODMKZW5kb2JqCgo3IDAgb2JqCjw8L1R5cGUgL1BhZ2UKL1BhcmVudCAy
IDAgUgovTWVkaWFCb3ggWzAgMCA1OTUgODQyXQovQ29udGVudHMgNjQgMCBSCi9SZXNvdXJjZXMg
PDwvRm9udCA8PC9GMSA0MSAwIFIKL0YyIDQyIDAgUgovRjMgNDMgMCBSCi9GNCA0NCAwIFIKL0Y1
IDQ1IDAgUgovRjYgNDYgMCBSPj4KL1hPYmplY3QgPDwvSTcgNDcgMCBSCi9JNiA0OCAwIFIKL0k1
IDQ5IDAgUgovSTQgNTAgMCBSCi9JMyA1MSAwIFIKL0kyIDUyIDAgUgovSTEgNTMgMCBSPj4KL1By
b2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQ10+PgovR3JvdXAgPDwvUyAvVHJhbnNwYXJlbmN5Ci9D
UyAvRGV2aWNlUkdCPj4KL0Fubm90cyBbNjYgMCBSIDY3IDAgUl0+PgplbmRvYmoKCjY2IDAgb2Jq
Cjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsyMDIuNjQ2NSA1NTYuMjU3MCA0MDIuNjA5NCA1NjkuNTQ2
MF0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAv
VVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVJJX3NjaGVtZSk+Pj4+CmVu
ZG9iagoKNjcgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzcyLjAwMDAgNTQxLjg1NzAgMjI3
Ljk4MjQgNTU1LjE0NjBdCi9Cb3JkZXIgWzAgMCAwXQovU3VidHlwZSAvTGluawovQSA8PC9UeXBl
IC9BY3Rpb24KL1MgL1VSSQovVVJJIChodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2
KT4+Pj4KZW5kb2JqCgo2OCAwIG9iago8PC9MZW5ndGggNjkgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVj
b2RlPj4Kc3RyZWFtCnicdVZdj6s2EH3nV8xjboVYIEDgcdvbra5U6fYjbaVqpcoxDrgLdhZDtvs3
2z/UMQZjbt28JITxnDMzZ2acRDF+oAlOqfm1fmd5EqWnvICiOkVlWZUwsOD6VfD1OdiZ52VUZHEF
5zp4eEohWf4/X4PDwJScBsoiOLcMaMeZGGFsmQA6MDIyBWT9V/GawWoPzwc52Cf1/OEDnP8Mvj1r
7CwuoqQo9sCHK9qjY1BsuHN0MEqYFAudc5ZvlkXpeoyIGm5EKWSCp3uYbvqk4yiEt5bT1pC+sIYL
pS24UpOm+zoxNWIUDcEXc2hqi0JFDnyVL/BJHmUrfOJaJGvmdibfzOl5+JWzNzZAJxsFXCADYkPV
MRD6OnHEBSkYYCp6OegQWE3JTflYxEkUrxCpn4Vr4pRvCxoBRpBXQAxy4R0fORK4DrJfEmjQfUko
ymIr3dELvzP57ESFgCbNFvZ948QF7aZa60oAu2u6+GJiPgqoByuDzE/BNXEygEjk0nHVGtW4QCqE
m1QjFw1wpPO3OfEHr/9ZdeVntWHm2GsrZouuvOnLjptAcj931+R3Nsgv8rcv2pI/Vuum8XakiuDJ
tJjy806rTS2Lb+06NGDGo216VOyAvYSIw/+NgBBrOZ/Fzu41aeKFTbJNJSuK1UUIVPZYj3nO/PLT
J1inhI0qnLlwoUHUboCYNHkx43iTBXpVNqXevHnql5f5VuTCW7+dydnhNXtfH5aBtErOtoE0qcPB
Jiknuq6uRn2MTskml5OfkWvizgM5jUsjWPxF62uNEb/FPHdYbW86UPNWO6Uf3DX5DUXRyTesKWb5
JgVK1k6dBQcuhL6sNLi4yxc2eHZBjv7TY5Ga3XUEVJPdXU/aJc5bLUO5iRTVBTXr+H0Oq2dKkYZ5
XGfl1oBfrsVHUD3pOniTw4uuzV+kv3U7rVXIqyrLnZeD2aKEjhPprAR0cN2d1UbJOtya3Tr53muy
NRsJ79R/xWxZFk7b2oWCU+I2Dax7ByFHLgXpIvgo9QN2EJ2svtSNUX7l1JJZ0oFtdZlGIwFUh5Ym
kvPB50774jbB9asrq5alywTOWTb7WT3rWmiTyOMtLSvnJpLtUv69LuTD4zS2mDEcephBXclmIGK0
DfEaZEkRpTmeic3R5StJTvu7UXJEpegrEe2Dh09HzE7wo0slifMo1e891T+3HBcVdu3ARtxd/YSR
fv7uB0yZ4gLDxLbFMTzppDttRqUQjG69RSZ9JRk5JbpC9rriSUsVm9vbet9p2LK85/0c6mLitnxs
NMpH2eNNBn5e6vl8EKG5UlyhJ+J9u4j9C+tx92wKZW5kc3RyZWFtCmVuZG9iagoKNjkgMCBvYmoK
OTg1CmVuZG9iagoKOCAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMiAwIFIKL01lZGlhQm94
IFswIDAgNTk1IDg0Ml0KL0NvbnRlbnRzIDY4IDAgUgovUmVzb3VyY2VzIDw8L0ZvbnQgPDwvRjEg
NDEgMCBSCi9GMiA0MiAwIFIKL0YzIDQzIDAgUgovRjQgNDQgMCBSCi9GNSA0NSAwIFIKL0Y2IDQ2
IDAgUj4+Ci9YT2JqZWN0IDw8L0k3IDQ3IDAgUgovSTYgNDggMCBSCi9JNSA0OSAwIFIKL0k0IDUw
IDAgUgovSTMgNTEgMCBSCi9JMiA1MiAwIFIKL0kxIDUzIDAgUj4+Ci9Qcm9jU2V0IFsvUERGIC9U
ZXh0IC9JbWFnZUNdPj4KL0dyb3VwIDw8L1MgL1RyYW5zcGFyZW5jeQovQ1MgL0RldmljZVJHQj4+
Pj4KZW5kb2JqCgo3MCAwIG9iago8PC9MZW5ndGggNzEgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
Pj4Kc3RyZWFtCnicdZTLbtswEEX3+opZukVASxT1AowALdKi2fXhIsuAlSiJiSzaJBU1f9+hHo4U
qF5YFn1neOZyhgHx8QOVl9Dx1/xkUUBoEsUQZwlJ0ywFLbzyo/f56K3kUUpi5mdwLLz9VwbBtH4s
vd0vYa1sK+jOwFsQL6K1cOlEJz7A8cn7cvQuXojhkdP7Y9j0oJiGRguayEeIECHyk7e/Z3CnvB8O
5UqbZMR3/w8YdIXxXSPHKxiruaxqC6XSPdcFgQcBuRbcCuBQ87ZohAbVgq1xvZFIewN9LfMact40
Zlzn58X/UCk717KEiRmJJ5hdqdVpCGlUJVukEGcCR3z/dIebmomguDq0yBcGPsmC+F3Cy0oRbyiW
FjtRmJEoTtlaNNfWi6E8slVHGI2mOz0iawHSoEPoV1FIK1XLG7Cy+CMtVsjR2Ub1Brh7Q+FZyTcL
pRkluF0l7GDIN2UsiLYAVYLq9BYADQibAdB645zDTKWweS3wOXtbu1RGFsLlcgu8csdTqBOXq85b
VN3LpoHOYE3t1tbYcHND7ZAOfv+8N1smhUlK6LXzIgj8t847nPj5dismpiRLWTgkPzyL11tXwCN6
8YhVHvZuZSuMJSSh6ch0wH7G4botu6Z5JZeON7KUoiBjzSRXp8MevzbzhJSwJGRjnv1/IGkakDRI
Nif7QeppsBfDMPivhUG38uEgOBihX2QutrIjg3/Nvh5YNx2t+GuHYVnEBtjIMYujVfBOjpN54k9K
XxsTlnNEGSNZTLN1nBrCjMC+aHMx3AaWP4t5zBfxzA9IxND3VXzpttuokMUhSVmUrNX9pglBQuJZ
oR2JcVeB4BodXQ5EgJcxCuk64gYvjcLxtvM99v40plsNhcaoXDoJzmovbY3oC+EWmx8S+sY2nuq4
45mbFdvs7jJiGvdrO9jZ7sGukW7h8j+EjcbSCmVuZHN0cmVhbQplbmRvYmoKCjcxIDAgb2JqCjcw
MQplbmRvYmoKCjkgMCBvYmoKPDwvVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBb
MCAwIDU5NSA4NDJdCi9Db250ZW50cyA3MCAwIFIKL1Jlc291cmNlcyA8PC9Gb250IDw8L0YxIDQx
IDAgUgovRjIgNDIgMCBSCi9GMyA0MyAwIFIKL0Y0IDQ0IDAgUgovRjUgNDUgMCBSCi9GNiA0NiAw
IFI+PgovWE9iamVjdCA8PC9JNyA0NyAwIFIKL0k2IDQ4IDAgUgovSTUgNDkgMCBSCi9JNCA1MCAw
IFIKL0kzIDUxIDAgUgovSTIgNTIgMCBSCi9JMSA1MyAwIFI+PgovUHJvY1NldCBbL1BERiAvVGV4
dCAvSW1hZ2VDXT4+Ci9Hcm91cCA8PC9TIC9UcmFuc3BhcmVuY3kKL0NTIC9EZXZpY2VSR0I+Pj4+
CmVuZG9iagoKNzIgMCBvYmoKPDwvTGVuZ3RoIDczIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZT4+
CnN0cmVhbQp4nH1UXW+bMBR951fcx2wqBn/bVVVt01ZtT9ukvFcOmISVAAGnaf79TCAU1CRBii3d
e885vr7HGMX+B+tAkn53XhnHiEguQGiJlNIKGhtkn4NdQDVFkvuUuM8cFoxjRPgEQXCNBPWFyTaI
fnH4XgV/g2/LYMomaIxUl7NMg+iJAx7AllmweNia+vETLP8FP5Zd3ViDOeKK0a5m8fBij49Vs0bV
un5DWZPbMm03eY2Swm/dc5G3zpa2eYi6xAtoXAlEiRoUiLmC1jV5uZ6WYdLFpZrVLeyr59rdRxEz
sfWfDlNqccjMSoWrhGahktzGmSKplvyLSTdV65Cz/s9LjybwTHtZQrE5fJKYuo0uiZcYxZKyXgSm
JGHWhJwnKmQrS0MjpQ2pTTS2maAraSYYHhzFlJM5SJS1XctOHft4+pGXYaSw1H3TCGAyaVp05d4Y
80cShPVFbFb0VFQHzwUGtrZtzdqCq8BtLGxMmRa2ub+AR7VAfMSbi3jKS1MUxzs45G4DfnsCW+Wu
hbyEujCJ9TELiSmh9SMDfj1d4p3fpWDfaps4yF0nY20d1HnyYlPY12BcB3VJjiIID3IWmWmgg10d
p6dA57JdQPTglrmJtO6tdQb1KYgJTHoPidFDY5xgJLp4R/p738DmWFee0eWJKcZe5u2l/pFYInKu
vWY27AdSjUmdhxq72/vJfXbH2l51FZaq130qGwbp3Z0wgNyaMSyYt8KUed/aBtoqyf3RSrO9wc70
e1fO7PAzr+sKlv46vr4aZ5rclDf5KZ+0Z+Tf7/P0OrF/Hc7d+vCcDVSMx1pLvApXJKMho0b7J0Li
EEsqEh8wKpMTaEoFihmdYy9uCo85EjFX78KHObgq288i5TGdtetPYU3rLWNhe4T+5k6O2Xo39B6A
zamhB++u6gCFaZ2P25cz/n+gR6ZrCmVuZHN0cmVhbQplbmRvYmoKCjczIDAgb2JqCjY5NwplbmRv
YmoKCjEwIDAgb2JqCjw8L1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA1
OTUgODQyXQovQ29udGVudHMgNzIgMCBSCi9SZXNvdXJjZXMgPDwvRm9udCA8PC9GMSA0MSAwIFIK
L0YyIDQyIDAgUgovRjMgNDMgMCBSCi9GNCA0NCAwIFIKL0Y1IDQ1IDAgUgovRjYgNDYgMCBSPj4K
L1hPYmplY3QgPDwvSTcgNDcgMCBSCi9JNiA0OCAwIFIKL0k1IDQ5IDAgUgovSTQgNTAgMCBSCi9J
MyA1MSAwIFIKL0kyIDUyIDAgUgovSTEgNTMgMCBSPj4KL1Byb2NTZXQgWy9QREYgL1RleHQgL0lt
YWdlQ10+PgovR3JvdXAgPDwvUyAvVHJhbnNwYXJlbmN5Ci9DUyAvRGV2aWNlUkdCPj4+PgplbmRv
YmoKCjc0IDAgb2JqCjw8L0xlbmd0aCA3NSAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJl
YW0KeJyNVttu4zYQffdX8DFbxLR4E8k2CNACDZqXdtF13xZY0DIdsVFEVZQS+De76P90qIstZWW3
frAla2bOXDjniOAEPuhpJWl/Nf5yQTCVIkWpllgprVBtV4fvVj9tVzNzoXDKE422+9XmQSCS9P9v
D6ubu01oalc+3X9A2z9XP2+j78mPM8yUENEPDF9MtWQVsVOiSR+dIkLP0T/5W9TkFj3Uzpb7kLsK
BVu/uswG1Jjn+J2bBlXmWHizv0Wm3Hf2f/z+iPyhu8wKcG3+CVBa8G2dWYweG+QC8m2zlI1imA7Z
3ECIkPnK3qLcvyEHQD40oQtb279aGxrU+O52yApBliOwfQVcBFYtQH6+2VnoEjJob6vCH229hJ0q
rEZsF0ILwKWP5dXNGLVqd4XLUKhs9vlDrKQyIdgwVn1uwawnkPqTjZn32bqyWi5ecMzHBHJfVbZe
qGbiSHQKs5N07gmYhYdi31yTd84vtsn9HvUtcOWrf7b72BNXwmMYRWaCRX9//O3T9isUtc3tUm4c
Tt2IMMkmApRQbfZsnqAPbTUghgD3yIRZ90xdm2O8GZ6H2JkcjHa+jX3r2rMETsXpjN70J+r7BTOh
BdYpSxcXpcNeWgChEiwT1QfHSwapwFxQedlAJJhoGEO3aBf2TDCONSd9lLtne7zvx3K3idd3wxrH
IVzbaUE0TlVKz1FC3IQSzr4bQ7mysU+2vtdK0vRuM94uRUvg2LBEnaONW9qHWnDhSmMiBetdhkQ3
WWaqsLGE0YxbsxYiU2u+s2xtpLRrZjNN7CFlO2k2h1C40JS2vlYmlwxroieJDft0Oa9IkinnV2fA
gRF5ovS03o5HvjTH6krNVGEC85vVfDhz4hDkakFAq0DwyRm5Bc5CwWfOFKg0L5fRWSRoTsUMHf3i
qsrHXUU/vprG1M6U1/CZoqAF8j1+27rLLWWpxISRdAbMRaK1JLv1jh7YmjOj17tMkjWRLM3ggVEH
eTUR0DwlUzJdg44LLqfBgORoMk/jY2Ejae2Aao6oH8UteuuoDoEiRbLJuw69maIA8SgMiMWbtc9L
AJRglophp67lnqSYJFpeF1SqE6wEp/9hJQUWsKGD1UV2olRjzdTAaQwRfua0B6isVzVY28qXYYk7
ieaYcMb6AHym7796FNosP2nzEqkSzjE7+c/fDx4PEwc4YVpTOnO4gUHUNsp96YHoy30Bh66fz8ST
Ag1RRd65jkmhyBcWRLScKv/EnYGXgN3/BnmqmoA+ceFAxqAn71z69A7QVVAkUDRklvoRBzJ68IQP
vd+HqS6zSEaUzI2jnDe12bvG+RK2Pm+a6oclhIRMJvZ/ZUwJeIWUPWPik0r9C9Sz0zYKZW5kc3Ry
ZWFtCmVuZG9iagoKNzUgMCBvYmoKMTAxNgplbmRvYmoKCjExIDAgb2JqCjw8L1R5cGUgL1BhZ2UK
L1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUgODQyXQovQ29udGVudHMgNzQgMCBSCi9S
ZXNvdXJjZXMgPDwvRm9udCA8PC9GMSA0MSAwIFIKL0YyIDQyIDAgUgovRjMgNDMgMCBSCi9GNCA0
NCAwIFIKL0Y1IDQ1IDAgUgovRjYgNDYgMCBSPj4KL1hPYmplY3QgPDwvSTcgNDcgMCBSCi9JNiA0
OCAwIFIKL0k1IDQ5IDAgUgovSTQgNTAgMCBSCi9JMyA1MSAwIFIKL0kyIDUyIDAgUgovSTEgNTMg
MCBSPj4KL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQ10+PgovR3JvdXAgPDwvUyAvVHJhbnNw
YXJlbmN5Ci9DUyAvRGV2aWNlUkdCPj4+PgplbmRvYmoKCjc2IDAgb2JqCjw8L0xlbmd0aCA3NyAw
IFIKL0ZpbHRlciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJyFVduOmzAQfecr5jFbRQ7mYowU7UPV
blVV6rZqpO3DSpUXnEBDMGubVPnN9oc6DpCEiLSRIsDMzDkz59hQ4uMPNl4SdHfDNYopCZKYAUsT
wnnKQUtv/cZ7u/JG4TEnLPJTWOXe4iEG6nfrq7U3W+5Ec38Hq5/e+5XLO+VEIQl5HLuc2XIrD/dG
vrayziTU7e5F6oscmmISTeOrpIXLWpa1lRup71OeBGy5GB6nIGlAeBJdQBbWNj+0NI2qjezqTeS5
5hlNaZd3ox/GAxKykJ2LD3UhU7m87IbjeGjCrlJuorOEUJ/36EN7kR/9s1eGyvE4SM50GnGolMgv
iUQREqHJVfBNIiEjcZoEXZSxuqw3k3EBJWFEu2qfFVrGqFajrsIYlZXCyhx+lbYAW5QGEGyqhs+I
z1mPtbgNFqc+4aHP+8Ab4sRJTPAf/ieK+SSk6VBLaC0mBxGlEYl83ts9Ahqc7f6tzTJpzLqtYNDf
TJXA0bNTiWBU4qmQNc5GwlqXss5NUTZQiDqvpMarAYEIjRuii9Fu0xg7h9JCJmpolLEgTtgEVm7I
+GYOaj1FJPRJ0BOZZaiTkVirzqp27NkIt0DIk3G8KXdNdegJoUBjRkjZLXSc3Fuk97uLvWjtzxQp
GhM+gOxwnGIjwapj+Z0oa+ynwX70BTK2n5daZrY6zCGXDVZ3y6qbZC5NualxAldzncL26UncmRkd
QzwmaRoE45B9meGUnyRauqogV/CibDGHNbLDhRadK2y5l9C0GucwaYYQtx+75Sc3YglqO5WHPPgN
Ez0gvuv1KBFKejLN4Iz58fXgqyP5o3deRLYdZi33sraAcrbSiff4icDzzBlqgkzAk/NQ0HIY744n
XYsK1pX6NYdaWWiEtoMMjx++fAehs6K0qFur5fPd4JkR8pFbZyQ8QVDSKfQkxJsevXNhf/j2rZT1
Xm2lJkPuq3f6tvUfq/5CWepOufM3EFXnzE8g23mLjwm8U95X7y/VrfNVCmVuZHN0cmVhbQplbmRv
YmoKCjc3IDAgb2JqCjc1MAplbmRvYmoKCjEyIDAgb2JqCjw8L1R5cGUgL1BhZ2UKL1BhcmVudCAy
IDAgUgovTWVkaWFCb3ggWzAgMCA1OTUgODQyXQovQ29udGVudHMgNzYgMCBSCi9SZXNvdXJjZXMg
PDwvRm9udCA8PC9GMSA0MSAwIFIKL0YyIDQyIDAgUgovRjMgNDMgMCBSCi9GNCA0NCAwIFIKL0Y1
IDQ1IDAgUgovRjYgNDYgMCBSPj4KL1hPYmplY3QgPDwvSTcgNDcgMCBSCi9JNiA0OCAwIFIKL0k1
IDQ5IDAgUgovSTQgNTAgMCBSCi9JMyA1MSAwIFIKL0kyIDUyIDAgUgovSTEgNTMgMCBSPj4KL1By
b2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQ10+PgovR3JvdXAgPDwvUyAvVHJhbnNwYXJlbmN5Ci9D
UyAvRGV2aWNlUkdCPj4+PgplbmRvYmoKCjc4IDAgb2JqCjw8L0xlbmd0aCA3OSAwIFIKL0ZpbHRl
ciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJydlttum0AQhu/9FHuZVMlkzwfJykWlVu1dpfgyUrQ2
a4fGBspCKh6079PBcRxwADe1LB/QP7P/DPPtwoDii2xmhr/8ev2WigE3ShPtDFjrLCnDbP1p9nkx
68mVBS2pI4tkdvOVE3a4vljPLu6qsl5Vdem32+aKVI9pJPh+DmVDYrpLt74kVY7XA6b+VYdYAVng
n02o7i/uL8kK48jvFD8KHyOpC5TFIs9iiGSdl5dk8XP2ZdEaOpqREvjBzMWjz5Jtmm3IstmvEUP5
nK7wO00CCc8hqwguWgcYSsQUyGNVijD6VtXcl6VvboeiKAVmldovD0N5tZXgRJsIFfOdL4bSaO1A
G/mSZv4UmtvYtidD71m9W4ZyftNeHIpUEiRz7CUyzaqwCWVXyLhGpbV9pbOG6/nNgP6YmAtw1LI3
S49VVTy83o9xQxSnQ3EzWa9yAoQz/C35a16yypPx5MpYYJKZfrWc0slSlOY4zrqzWuGbbe6Tbptw
jijDzH3xqBFpQAtqD6qxMgUHYZQ4o2IGGHOvuUZnTWoF2N3DhMoedz8Ql/3g+9UTthB7kVVDKXDI
7TFFH92Ww3Wa+S1SGMNVy61HlFuS9zSepid5RjzyWWybFmKU70IZUOyTJHbWlrJtKILVXfyixfP9
XTj6pAzk0ee/wiisBqaEHIdRGAq4r03DKBT2WfL/gFFICsIaeh7GnvI8jII6sEZ/GEbuJGhO9WS9
3DgQiOxHYeRaAqPugzByacEq+R7G8XWEAIU9mi6CWRBSiG4R+wPmoWqKiRqoAGrNgb1YlTjlt+sy
DVkSH9MCCViFoksS5xjJpTyJvDmEDizBLB6mgnec1XgukZivUmQt87txdwx/KKNdz903XxQNucuz
zTItu/BwilsYZ+okbMqaMiA4kyfW6jodvxsMcaZa9T1JRZ0zbHm9XntxLYV318xI2zWHDw1UUNGP
R5XQK2c6QkEREYHnTk9oMW/oqgSqpDi1M1UromcZ7VC9CzH6zUT3GQOlFO1V2oO53ZVwAnrCBT6E
PJEmr4F8/5OQbf4c2keeJW6uL2M1tC85Ddw5dbYIy7BqyQbOk78204AmCmVuZHN0cmVhbQplbmRv
YmoKCjc5IDAgb2JqCjgxNgplbmRvYmoKCjEzIDAgb2JqCjw8L1R5cGUgL1BhZ2UKL1BhcmVudCAy
IDAgUgovTWVkaWFCb3ggWzAgMCA1OTUgODQyXQovQ29udGVudHMgNzggMCBSCi9SZXNvdXJjZXMg
PDwvRm9udCA8PC9GMSA0MSAwIFIKL0YyIDQyIDAgUgovRjMgNDMgMCBSCi9GNCA0NCAwIFIKL0Y1
IDQ1IDAgUgovRjYgNDYgMCBSPj4KL1hPYmplY3QgPDwvSTcgNDcgMCBSCi9JNiA0OCAwIFIKL0k1
IDQ5IDAgUgovSTQgNTAgMCBSCi9JMyA1MSAwIFIKL0kyIDUyIDAgUgovSTEgNTMgMCBSPj4KL1By
b2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQ10+PgovR3JvdXAgPDwvUyAvVHJhbnNwYXJlbmN5Ci9D
UyAvRGV2aWNlUkdCPj4+PgplbmRvYmoKCjgwIDAgb2JqCjw8L0xlbmd0aCA4MSAwIFIKL0ZpbHRl
ciAvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJx9VsuS4zYMvPsrcJykHI2sl61UKodkd6v2kkPi+QBa
oizOSKSGD3v9m8kPBSAtS/ZqZy7jskGg0Wg0uYli/IPjapuET+P/LN9EyTYvoCi30W5X7kDzVfPz
6o/96i4830VFFpewr1fPX3LYxOH7fbN6+u25Z8PvP8H+dfV5Twdvh7I0Snd5TocwimnNLktxRVlE
uwJL++QpbLIp+b7loE5cs66DgVnLtQQma1C25Rpe/v5qomgpZbGL4m2Wh5QJbJKPUwoDQloua16D
VTBodRI1BwaNZj0/K/0GjdLQYulOyCNIZeHVGQv8xKV9/xVMxXu+BCRPo+IK5IngruHg7Cxwk2yi
oijL+0gmL9QcnFtRtXAWCNW4quLGNK7rLtB06gxIAdTMMjhwe+Zc+i/sWYHh+iQwOIIvCNq22J1V
S+DSEod/LUlNrufA4gSBJZv7KCpxYEZUI3VrUA0WtJZoYVB1AgkBQ+xVbADJeU3V4Y3zATmGXuD0
bMusR/tv4O95CVySRbuxbAgz/yHPLRJN86IRUAoluzlXvTi2FhlBfMbgNEWgpXHWab4klXyHWv6B
+v7hldPCXuBPJaklzazAT0tZ0uKG9lFwnwn8A7NlGSd3h57eHXd8nnqDvKebJL8P498GZfgdz5ob
5TTOm3juUSPsiJ8brXqvBK5RCCR6IolUHMhcaiJJomwsdN0BA1o5P1xMjkyaWT1Ki5MIkMzjr3SA
gXT9ATcVRYJBRhy6pS3J42ldn1BXrHozS7PKytmOUEsOC2JqVBo7iE5YwXHBmFcYh070wvqJBcGh
FJTGIXpgfpm+F2xIc0FVyyWg2Xa2Cy3zPbbsxMd8gSNolbmmRHBMBsbBT3gNnHBJZpGhnuIwhM6M
9MBH/efxNCDqH+WpKfWcADADr0QjqtC6o9EwFOQODsLCy8vXT2s4cklixv3wgmC4OBhmMH5N3yyV
RhHeRuQPzNki4bE37hsZBYAdaY/g2uAUD1gKUQtGVubkL0dHosXe5z1ndCvkm+K+MgluCR256Bij
+bsTiAIrak5TJyvw9oRSRm08qAWt3wO8AIVPtjF0jO6Eb3Ydfj0r19XoLEvl4+0kC+MOr7yyxImR
ommwctAklpmyqwEN+8o5okB3bwlKa+3wUA9OrqNpkTYWbTwtk8kfepTb1fN6Udcf6yktsola9Dir
VTeOa7xEgo7xahwU0kG/ztRs4GYTDE8MjESFHsSkoUi/gdj/UumsnCYW6l29VhjjyFv+wjuepobJ
Ky0OSBte+XjjcWQU67XXG9DvGqcnweOqwaJU0jSfZhWsy9/5t0tzbsHbTZTG2fb+0CeOs6sJmpIT
BNEPHV5NMjjO+n4VqnGWwSd+YINpEk+DPGjF6o6cSIc7LrxLjvggQU92UhKA66RZXWuyHzOwio8D
nDERwdfmDtBS8biYvAVdvWf0ADox0Xnl3eA8rDJORxxlmLQJdYlTvGxHHDcSFsWboHhvErxdXkz0
OJXrI4FV1nmrGDP5N5TfIANueGwWEAjvGtomBieOrwKEv2xqyXY7ibDmEh0pPGe8FL7bnP8BAylr
NgplbmRzdHJlYW0KZW5kb2JqCgo4MSAwIG9iagoxMTc0CmVuZG9iagoKMTQgMCBvYmoKPDwvVHlw
ZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Db250ZW50cyA4
MCAwIFIKL1Jlc291cmNlcyA8PC9Gb250IDw8L0YxIDQxIDAgUgovRjIgNDIgMCBSCi9GMyA0MyAw
IFIKL0Y0IDQ0IDAgUgovRjUgNDUgMCBSCi9GNiA0NiAwIFI+PgovWE9iamVjdCA8PC9JNyA0NyAw
IFIKL0k2IDQ4IDAgUgovSTUgNDkgMCBSCi9JNCA1MCAwIFIKL0kzIDUxIDAgUgovSTIgNTIgMCBS
Ci9JMSA1MyAwIFI+PgovUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VDXT4+Ci9Hcm91cCA8PC9T
IC9UcmFuc3BhcmVuY3kKL0NTIC9EZXZpY2VSR0I+Pj4+CmVuZG9iagoKODIgMCBvYmoKPDwvTGVu
Z3RoIDgzIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQovVHlwZSAvWE9iamVjdAovU3VidHlwZSAv
SW1hZ2UKL1dpZHRoIDYxMgovSGVpZ2h0IDIzMAovQml0c1BlckNvbXBvbmVudCA4Ci9Db2xvclNw
YWNlIC9EZXZpY2VHcmF5Pj4Kc3RyZWFtCnic7cExAQAAAMKg/qlnDQ+gAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHg0zNnSNgplbmRzdHJlYW0KZW5kb2JqCgo4MyAwIG9iagoxNTkKZW5kb2JqCgo0NyAw
IG9iago8PC9MZW5ndGggODQgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YT2JqZWN0
Ci9TdWJ0eXBlIC9JbWFnZQovV2lkdGggNjEyCi9IZWlnaHQgMjMwCi9CaXRzUGVyQ29tcG9uZW50
IDgKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovU01hc2sgODIgMCBSPj4Kc3RyZWFtCnic7b13XNRX
9v/vJjEb3ajZGBPjGlNMzJpoNBpi1BSNDewdC1YUBbFgQ7H3hr0gKvZeECuoUVE2liWua1lsG4nr
Kq6ARkVACPB9fub+8v5NaNIu88ac1x88hvfc932fe+6553nPzHtmUlJEIpFIJBKJRCKRSCQSiUQi
kUgkEolEIpHI1EpKSvr5558vX758SZQ1Xb16NT4+Pl1nxsXFXblyxdYGPlMSb+eV8NWDBw+Sk5Oz
nhzwPP63teEFRnj4/v372fJwRpLYzlvhTFyay0mJjY397rvvBgwY4C7Kmjw8PNhasMdI5UnWyLlz
5wYOHGhrA58p4W1C/ZdffkkbuuLtbGnQoEHBwcHZyhhhYWGDBw+2teEFRng4KCjo8ePHucrIFl24
cEFiOw9FGsGl6aaRrOunn35q3759oUKF/iDKggpZNHHiRPYYqTwJPZkU8WQeSnl7woQJafMPO5P+
/fuLt7MufOXs7Hz9+vWsJwdPT8/nn39enJxF4aiOHTuytctNQlYClOL2vJJKI6NHj37w4EFuJuXH
H39s0qRJ8eLFGzZsOED0NFWrVq1w4cLDhw9Pm71hZbdu3cgttWrVsrWZz4iUt4cNGxYTE5PK27Cy
e/fuzz33nHg7K6pTp06xYsU6dep09erVrCcHNzc34vnzzz+3tfkFQA0aNHjllVdatWp1/vz53CRk
pR49epDka9asaethPQuys7N78cUXqfrv37+fm0n597//3bhx47/85S8zZ868InqaevXqVaRIkffe
e8/BwaFp06bW1SWs7NKlC7l96NChtjbzGRHeLlq0KN62t7fH29b7E1ipvD1kyBBbm1kANH78eNZ4
mTJl6tatiyfPnTuXleTQp08fWOnu7m5r8wuAZsyY8c4775QuXfrrr7/GwyEhIblJy2rXPXjwYFsP
61mQq6srG8V33323UaNGTM29e/dyNimKlczy2rVrczO5vxNR4/zpT38q9KsePnxoPKVYyQZm+vTp
NrTwWRL1+8svv2x42/olFMVKvD1t2jQbWlhQtGTJkrffftvw5OHDh7NylmLluHHjNFv3LGjNmjUV
KlQwPLx169bc9AYrX3jhhalTp+aVeb9njRo1qkSJEsbURERE5KwfYWW2JKzMTwkr80rCSt0SVppW
wkqbSFiZnxJW5pWElbolrDSthJU2kbAyPyWszCsJK3VLWGlaCSttImFlfkpYmVcSVuqWsNK0Elba
RDlg5ePHjzdu3Fi/fn0nJ6e8MmPKlCm7d+9Oe7xfv34//PBDXl0lx1q9evXSpUt9fX1XrlyZm34K
Oivt7e1//vnn3Pdz/PhxOzu7ESNG5LgHYaVuPQOsHD169HfffZf2eI8ePcLCwvLTkryVzVl569at
VatWubm59e/ff9u2bVFRUcZTd+/e3bBhw6BBg3r27MkCDwoKevTokXqKf50s4ikS/vXr10GMj48P
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
KrFXsfU4nkHlnpXff/99RVvr/ffft35/ylovvviira1LRzExMWk9SUq3tV3pCN8WLlw4Xd/ic1tb
lyWROtJ6m+2Kre2q+MEHH1jfPJBKFSpUsLWBqXXq1KlsJQdb2/t/Hra+IzqVypcvb2sDUysoKCiH
idhKjx8/tvU4UouJsL7dLpVsbV2WFBkZmfupsbl++ukncs5z6YlUb2vrCrZu3rxZrly5559/Pq1v
ixQpYmvrCrbYqdrZ2aXrW0Tla2sDC7z+97//1a9f/4UXXkjXwz/++KOtDfy96NatW+Ayo1C3tXW/
I7HdxeFXf6tLly5t3rz5vffes7V1BVv/+Mc/SpUqdfLkyVTuPXz48B//+EdbW1ewdfHixY8++mjX
rl2pfHvs2LHixYsLK3Ovy5cvf/HFF2vWrEnl4ZCQkLfeektYmW/65z//WbZs2eDg4FQTcfToUWFl
fupvf/vbH/7wh1QHf/nll++//15YmUv9/e9/f+2119ifpzr+73//W1iZS5FA/vrXv7IbSXX8P//5
z5///GdhZe71r3/96/PPP//uu+9SHf/vf//77rvvCivzTT/88MNf/vKXn376KdVxjggr81PCSn0S
VuqTsFK3hJUmkbDSJBJW6pOwUp+ElbolrDSJhJUmkbBSn4SV+iSs1C1hpUkkrDSJhJX6JKzUJ2Gl
bgkrTSJhpUkkrNQnYaU+CSt1S1hpEgkrTSJhpT4JK/VJWKlbwkqTSFhpEgkr9UlYqU/CSt0SVppE
wkqTSFipT8JKfRJW6paw0iQSVppEwkp9Elbqk7BSt4SVJpGw0iQSVuqTsFKfhJW6Jaw0iYSVJpGw
Up+ElfokrNQtYaVJJKw0iYSV+iSs1CdhpW4JK00iYaVJJKzUJ2GlPgkrdUtYaRIJK00iYaU+CSv1
SVipW8JKk0hYaRIJK/VJWKlPwkrdElaaRMJKk0hYqU/CSn0SVuqWCVnJwrl+/ToPoqKiwsLC+Jv/
NlgrMjLy7NmzOT794sWLERERIO/KlSuPHz/OqJmw0iQSVuqTsFKfhJW6ZUJWjh07dsqUKcnJyQEB
Ae7u7seOHYuOjo6JibFuc/fu3bi4OB6w7m5YREjcuXOHg5zI8Vu3bpHf8sSeffv2tWjRIsend+3a
dcOGDb6+voMGDYKbyry0ElaaRMJKfRJW6pOwUrdMy0pKME9Pz1mzZj169MjNzW3t2rXWbVq3bn3w
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
deOeWHOKDYCPj0/jxo0pll9//XVhpc0lrNQnYaU+CSt169ljZYETrp4wYQK4LFKkiLDS5iLnwMrZ
v5W3t3f//v3Lly9va+sKtsg2pUqVItpTudfLy+ull16ytXUFW1evXv34448HDx6cyrdjxowpWrSo
sDL3ovKqVatW3759U3l43LhxJUuWHDVq1Oy8U69evSpVqpSHHT4z6tOnD/ttUvTo0aNTPcURYWV+
iqqnSQYigG1tXcFWVFRU586d0/Vtq1atbG1dwda9e/f69euXrm+bNm1aIL7n0+Riv+Hp6ZlRchDl
j2rUqPHyyy9Xq1bNwcEh7bOEuq3DRCQSiUQiWyo2Nnbjxo1U9/v27Ssov0wtEolEIlF+6rvvvqtU
qRK4NH4eRSQSiUQikaFTp041aNBg3rx56oc7bW2OSCQSiUTm0oULF5ycnMaMGXPt2jXjd8REIpFI
JBIp/fjjj0OHDu3Xr9+ZM2fM+S18IpFIJBLZVrt373Z2dj569Gh8fLytbRGJRCKRyIzatWvX999/
L/fziEQikUj0e9b/A1RDP3sKZW5kc3RyZWFtCmVuZG9iagoKODQgMCBvYmoKMjI0ODMKZW5kb2Jq
Cgo4NSAwIG9iago8PC9MZW5ndGggODYgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9Y
T2JqZWN0Ci9TdWJ0eXBlIC9JbWFnZQovV2lkdGggMzg3Ci9IZWlnaHQgMTMzCi9CaXRzUGVyQ29t
cG9uZW50IDgKL0NvbG9yU3BhY2UgL0RldmljZUdyYXk+PgpzdHJlYW0KeJztwTEBAAAAwqD+qWcM
H6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgLMBEANR
qgplbmRzdHJlYW0KZW5kb2JqCgo4NiAwIG9iago3MwplbmRvYmoKCjQ4IDAgb2JqCjw8L0xlbmd0
aCA4NyAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0lt
YWdlCi9XaWR0aCAzODcKL0hlaWdodCAxMzMKL0JpdHNQZXJDb21wb25lbnQgOAovQ29sb3JTcGFj
ZSAvRGV2aWNlUkdCCi9TTWFzayA4NSAwIFI+PgpzdHJlYW0KeJztnXl8zcf+/y/X0mppi66qiqtc
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
jiPiNGq2UXmk69evczx3z7G7m7jpdO/eXX+dqUgkEpmihISEFi1aqN8VFYlEIrN09OhRT09PjqVm
GyISidxanM7i4uLMtkIkErm10tPT//jjD7OtEInuR/0/8QMYrQplbmRzdHJlYW0KZW5kb2JqCgo4
NyAwIG9iago5MjM1CmVuZG9iagoKODggMCBvYmoKPDwvTGVuZ3RoIDg5IDAgUgovRmlsdGVyIC9G
bGF0ZURlY29kZQovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvSW1hZ2UKL1dpZHRoIDUyNQovSGVp
Z2h0IDE0NwovQml0c1BlckNvbXBvbmVudCA4Ci9Db2xvclNwYWNlIC9EZXZpY2VHcmF5Pj4Kc3Ry
ZWFtCnic7cGBAAAAAMMgf+od4QJVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxwA5uVseCmVuZHN0cmVhbQpl
bmRvYmoKCjg5IDAgb2JqCjk4CmVuZG9iagoKNDkgMCBvYmoKPDwvTGVuZ3RoIDkwIDAgUgovRmls
dGVyIC9GbGF0ZURlY29kZQovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvSW1hZ2UKL1dpZHRoIDUy
NQovSGVpZ2h0IDE0NwovQml0c1BlckNvbXBvbmVudCA4Ci9Db2xvclNwYWNlIC9EZXZpY2VSR0IK
L1NNYXNrIDg4IDAgUj4+CnN0cmVhbQp4nO2dCXyM1/7/Sxfb1dZyld6q7dLiVmm5qlXValpiqT3W
EPsaIYpoY1dUaCmChloT0lJaa4idXmILErk0IbmWICoRSUXo83t3zr/Pa/4TxoiZPJnJ9/Pyyuuc
M+c5z/ds3/f5PmNmNE0kEolEIpFIJBKJRCKRSCTKOS1ZsmSoM2vYsGEHDhwwehRFD9SlS5eGDx9u
9DJ5LI0cOTI5Odm8U1u3bjXaKOPFtMbHx5sPy7179xISEuKdWRcuXLBYwCtWrDB6pO0v3ObRo0dt
38WvvfZa+fLl33JalShRonv37tl2YiJH69tvvy1QoEDt2rWNXinZVK1atZ566qlNmzaZd6px48Zl
ypQx2jSDVbRo0QkTJpgPy7Vr1/7973/7OK0GDBjw/PPPWyxgFkC5cuWMHmw7q1ixYv3797d9F1et
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
dHJlYW0KZW5kb2JqCgo5MCAwIG9iagoxMTI1OAplbmRvYmoKCjkxIDAgb2JqCjw8L0xlbmd0aCA5
MiAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0ltYWdl
Ci9XaWR0aCA0NzgKL0hlaWdodCAyODMKL0JpdHNQZXJDb21wb25lbnQgOAovQ29sb3JTcGFjZSAv
RGV2aWNlR3JheT4+CnN0cmVhbQp4nO3BMQEAAADCoP6pZwlPoAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3gbC
qXhpCmVuZHN0cmVhbQplbmRvYmoKCjkyIDAgb2JqCjE1NAplbmRvYmoKCjUwIDAgb2JqCjw8L0xl
bmd0aCA5MyAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUg
L0ltYWdlCi9XaWR0aCA0NzgKL0hlaWdodCAyODMKL0JpdHNQZXJDb21wb25lbnQgOAovQ29sb3JT
cGFjZSAvRGV2aWNlUkdCCi9TTWFzayA5MSAwIFI+PgpzdHJlYW0KeJztnQdYFFfbsE1M7DHGqOn2
gglGY+zRxBKNnRhswRo71mBDMQrWWCJ2sRv7G4km9l4wosaIIqJYASGiL5JQPhU0lP/+dr7MT0A2
wsDM7vLcFxfX7JRzzsw85z7PmV2WlBRBEARBEARBEARBEARBEARByHEePXp07ty5X4SM8fX1DQsL
S0pKMvpe2TiPHz++fv36yZMnjb7huR1uQUBAwF9//WV0RORqfvvtt/79+zsKGdOpUycvL6+oqCij
75WNExwcPHXqVKPvtvC/jBo16tatW0ZHRK5mzpw5xYoVK1q0aOnSpcsI6Xjttdfy5cvXunVrf39/
o++VjbN3794aNWoULFjwzTffNPq2517efvttbkHZsmW3bdtmdETkaqZMmfLyyy83adJk7ty584V0
DBkyhFht2LDhzp07Q0JCHj16ZPQds1l+/vnnd999197efvz48Ubf9tzLjBkzqlWrxuDIMgEvU0Wj
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
x+Dl5eUVGxs7dOhQbD9y5EjGu++///7nn3+m8TVr1uzbt++JEycOHTpERSNGjKCowYMHcx9TTP9J
U8ysImbWgpjZWDJr5ueff37Lli1M2Nlh8eLFaOr48eNKnky/PnXqVNu2bXv16nX79u2ZM2d++umn
dA3MjHBwS0BAAGvUfBJfjR8/Xs/ur9HMiYmJn3zyyZ49e7gsPXr04GVKKjMrkFR379793LlzqQ/E
olyoCRMmMH7hW/zs4uJC5KeY/mAc8WLXs2fPImFXV1dMQglc5CJFinB9PDw8WE8VZMtMWBo3buzu
7r5+/XoGQa7txIkTKbBgwYLK43oxc2rEzFoQMxtLZs2cN29e+i8L+JYcz8HBgZSvefPmCxcuVJ6C
1qtXr1atWhcvXuzUqROpNSk0Bm7Tpg3KwszNmjVLSEhQq8bYZN06nKaCRjPfvHnTzs6OK3Pt2jVO
REn+05j5wYMHjo6Ov/zyS+oDe/bsOWvWrOjoaAYsvNq+fXuM4evryyayX/Le3377bfr06Wg5ODiY
kYvZx2effVa0aFEy85iYGEzCUVwr9WnGokWL0DuXlNR63rx5hQoVEjOnR8ysBTGzsWTBzOoy2TKS
YZ5erly5pk2bktF9agIzM/X++OOPUdm7774bFBRUv359/HzlyhVMfu/ePeVwnOPm5sbhOXd2iOvO
nTvx8fHKS41mZqBhOpBiujjYmOuWks7MGJJ49vHxSX1g6dKlyXIZyPbv308OzEA2depU9Ms1WbBg
AU6mkficBXZgN29v72LFimEPPM/hSUlJXKX+/furZibNpkBljIuIiHj11VfFzOkRM2tBzGws2s28
a9cu4j88PFz56uOoqCim2MOHD+/SpQvLXbt2HTt2rCK0kJAQ9HLq1Cnl8KtXr9JrcFHOnZ2fn9/i
xYtJ4JXHsFrMzNm1a9duzpw5JMwUSBI7ePBgnJnGzLiRUyZ6Ux9bsGDBSpUqkW+jzcqVKw8ZMoSZ
wsiRIxm5cOy6detoHuNamTJl7EywD/u/8cYbaglMTPr166eamWXsrXyRMuNOiRIlxMzpETNrQcxs
LNrNHBgYyHzc09OT5A3VoA4SwmrVqo0fP57gZ95N+rdy5coU0zPVGTNmLFy4UPnrkt27d0+aNInD
c+7sgoODBw4ciP3CwsKoVIuZSfVLlSpVIBX16tVj6EltZlS5b98+akxzUshWaYCyD5I/duwY0vj2
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
w9Vj0vHUSxcQEPDFF1+oZu7atWtGF1kQLBl8+yy73b59+6+//jK6RwrCv0CUnj59umnTpvKcWRAE
wXKIj4//6aefatWqJWYWBEGwHGJiYry8vKpUqSJmFgRBsBzu3r3rYcLohgiCIAj/n1u3bvn4+Bjd
CkEQBEEQBEEQBEEwx/8DSsw/pAplbmRzdHJlYW0KZW5kb2JqCgo5MyAwIG9iagoxNTk5NwplbmRv
YmoKCjk0IDAgb2JqCjw8L0xlbmd0aCA5NSAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL1R5cGUg
L1hPYmplY3QKL1N1YnR5cGUgL0ltYWdlCi9XaWR0aCA1NTUKL0hlaWdodCAxNTYKL0JpdHNQZXJD
b21wb25lbnQgOAovQ29sb3JTcGFjZSAvRGV2aWNlR3JheT4+CnN0cmVhbQp4nO3BMQEAAADCoP6p
Zw0PoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEcDGIf1fQplbmRzdHJlYW0KZW5kb2JqCgo5
NSAwIG9iagoxMDcKZW5kb2JqCgo1MSAwIG9iago8PC9MZW5ndGggOTYgMCBSCi9GaWx0ZXIgL0Zs
YXRlRGVjb2RlCi9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9JbWFnZQovV2lkdGggNTU1Ci9IZWln
aHQgMTU2Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovU01hc2sg
OTQgMCBSPj4Kc3RyZWFtCnic7Z13XFRn1sdji2nqqyYGE010NW40GrurRo0RK7GCCjGKXRSMiGLH
XmOJvXfNq1iwgA1BiYhGRKOCytrBTsB17cay837feT57d3aGIG2YK3N+f/C53Hnqec7z+51z7507
BoNAIBAIBAKBQCAQCAQCgUAgEAgEAoHATvHkyZPffvstXJAifv3112fPnmXx0rx8+TIxMfHgwYO2
nr3AWjh06NDDhw+z2K9eX7x48eLatWuyI/SAiIiIK1eusCIZXFPUx8vLy1mQIr777ruYmJhM2USp
x+PHj/39/V1cXGw9e4G10L59e/ZyxnexnYB4bNGiRbIj9IC2bdvOnj07ISEhg2s6b948BweHfPny
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
sjlevHgRGhrKNsljgZw5c8IDuXLlsvxIkD3A4rLKlufxB/U9xEwEDSbrZqadmgqQVpiKyhU583p5
oxp2shbOROQywqpdZD3UomdWU8n6M2dKly5tawIW/P/rti4mh8DAwLp16w4fPvzEiRPJFhAIBILX
F6YvERLoDffv3/f393dxcSF7lXtAAoFAIMhKJCYmzps3r0OHDmFhYdprrAQCgUAgyAJcu3Zt1KhR
6gfW5XtAAoFAIMhKnD9/3sPDY9CgQcm+LlIgEAgEAuuB9KdVq1am3woXCAQCgSBroH5Y2dajEAgE
AoFAIBAIBLrD/wGqr+zNCmVuZHN0cmVhbQplbmRvYmoKCjk2IDAgb2JqCjE3ODQwCmVuZG9iagoK
NTIgMCBvYmoKPDwvTGVuZ3RoIDg4MjIKL0ZpbHRlciAvRENURGVjb2RlCi9UeXBlIC9YT2JqZWN0
Ci9TdWJ0eXBlIC9JbWFnZQovV2lkdGggNTc2Ci9IZWlnaHQgMjA4Ci9CaXRzUGVyQ29tcG9uZW50
IDgKL0NvbG9yU3BhY2UgL0RldmljZVJHQj4+CnN0cmVhbQr/2P/gABBKRklGAAECAAABAAEAAP/b
AEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0NDQf
Jzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIANACQAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA
AAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU
MoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl
ZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK
0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG
BwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS
8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4
eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri
4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APf6KKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKqajqEemWRupU
kdQ6R7YwMku4QdSB1YVbrE8V/wDICP8A19Wv/o+OgT2JP7fT/nwu/wDyH/8AF0n/AAkCf8+F5/5D
/wDi657VtPbUbQCGYwXULebbzD+BwOMjupBII7gnp1GNeaFq2oaVqk081tHrF1btb2+yRmht19AS
oPJGWOPQdq05UcyrSO6/4SBP+fC7/wDIf/xdL/b6f8+F5/5D/wDi64m60vXZby9ZL5fLkkDWzrO0
bQLgDbs2lGwQTlgc7sHpUlxpetvLOtvq/lQrI89vuG5t5wRG/HMYO/pyQwA27AScqH7WXc7L/hIE
/wCfC8/8h/8AxdJ/wkCf8+F3/wCQ/wD4uuIbSfEHmwyvqMc4bzXng814VVmIKbGQZKoo2Y43ZLHm
rUGmaj5tj9pvHkiignEyidgzyM6GPlQuQqh1yeeec5Jo5UHtZdzrf+EgT/nwvP8AyH/8XR/wkCf8
+F5/5D/+LrhP+EcvnEFzcTRXFy9y1xeWzuRDJldqoDtyVTjAIIJySATkP1DQbq8sb+C1s9OsXuLC
e2VopH+Z3XC5wqgAHnOGPpjnJyoPay7ncf8ACQJ/z4Xf/kP/AOLpf+EgT/nwvP8AyH/8XXD3ej62
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
aKOZh7KHYxv7Gm/57J+Ro/sab/nsn5GtmijmYeyh2Mb+xpv+eyfkaP7Gm/57J+RrZoo5mHsodjG/
sab/AJ7J+Ro/sab/AJ7J+RrZoo5mHsodjG/sab/nsn5Gj+xpv+eyfka2aKOZh7KHYxv7Gm/57J+R
o/sab/nsn5GtmijmYeyh2Mb+xpv+eyfkaP7Gm/57J+RrZoo5mHsodjG/sab/AJ7J+Ro/sab/AJ7J
+RrZoo5mHsodjG/sab/nsn5Gj+xpv+eyfka2aKOZh7KHYxv7Gm/57J+Ro/sab/nsn5GtmijmYeyh
2Mb+xpv+eyfkaP7Gm/57J+RrZoo5mHsodjG/sab/AJ7J+Ro/sab/AJ7J+RrZoo5mHsodjG/sab/n
sn5Gj+xpv+eyfka2aKOZh7KHYxv7Gm/57J+Ro/sab/nsn5GtmijmYeyh2Mb+xpv+eyfkaP7Gm/57
J+RrZoo5mHsodjG/sab/AJ7J+Ro/sab/AJ7J+RrZoo5mHsodjG/sab/nsn5Gj+xpv+eyfka2aKOZ
h7KHYxv7Gm/57J+Rq7pVkdO0mzsS+/7NAkO/GN21QM47dKuUUm2yoxUdgooopFBRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFAH/2QplbmRzdHJlYW0KZW5kb2JqCgo1MyAwIG9iago8PC9MZW5n
dGggNjExOQovRmlsdGVyIC9EQ1REZWNvZGUKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0ltYWdl
Ci9XaWR0aCA1NzYKL0hlaWdodCAxODAKL0JpdHNQZXJDb21wb25lbnQgOAovQ29sb3JTcGFjZSAv
RGV2aWNlUkdCPj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQIAAAEAAQAA/9sAQwAIBgYHBgUIBwcHCQkI
CgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJ
CQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIy/8AAEQgAtAJAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkK
C//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNi
coIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SF
hoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn
6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQE
AwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBka
JicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWW
l5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5
+v/aAAwDAQACEQMRAD8A9/ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAqC8vILC2NxcuUiDKuQpblmCgYHPJIFT1ieK/8AkBH/AK+rX/0fHQJ7Fr+3LD+/N/4Dyf8A
xNH9uWH9+b/wHk/+JrmdTspby2H2a5e2uom8yGVegbHRh/Epzgj8sEAjIu9J1u+0vUZXuoYNVnga
G1SOVmgtx65KgsxPJJXjgDuTpyHOqzO9/tyw/vzf+A8n/wATR/blh/fm/wDAeT/4muCvbDxPJqF0
9tqdslszqYAQQ0a4GQRtIPOeTnr2xVmex11pZhb6rHHErtNCWiDMxOCIn4xsB3cj5iCOQVyy5R+2
fkdp/blh/fm/8B5P/iaP7csP783/AIDyf/E1wVxp/idmheLVLY7i7TxFSqqTjYqMBkhQMc4ySTx0
q1b2Gs7rD7VqIZYoZhc+XhTLIXQx87egUODjB5HXmjlD2z8js/7csP783/gPJ/8AE0f25Yf35v8A
wHk/+Jrg/wCxdWZYbia98yd52lurcTvHGykYWNXUbgqemPnOScZ4deaRqFxYX8NqIbOWaymhiZLy
VgJGXCtjAAwf4sE+lHIHtmd1/blh/fm/8B5P/iaP7csP783/AIDyf/E1wl7pviEuzafqFvF+4t4y
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
ef8A8d/wrToouw5I9jM/sWH/AJ7z/mv+FH9iw/8APef81/wrToouw5I9jM/sWH/nvP8A+O/4Uf2L
D/z3n/Nf8K06KLsOSPYzP7Fh/wCe8/5r/hR/YsP/AD3n/wDHf8K06KLsOSPYzP7Fh/57z/mv+FH9
iw/895/zX/CtOii7Dkj2Mz+xYf8AnvP/AOO/4Uf2LD/z3n/Nf8K06KLsOSPYzP7Fh/57z/mv+FH9
iw/895//AB3/AArToouw5I9jM/sWH/nvP+a/4Uf2LD/z3n/Nf8K06KLsOSPYzP7Fh/57z/8Ajv8A
hR/YsP8Az3n/ADX/AArToouw5I9jM/sWH/nvP+a/4Uf2LD/z3n/Nf8K06KLsOSPYr2NlDp9qLeAE
IGd/mOSWZizH8yasUUUigooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//ZCmVuZHN0cmVhbQplbmRvYmoK
CjQxIDAgb2JqCjw8L1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1RydWVUeXBlCi9CYXNlRm9udCAvQXJp
YWwKL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCi9GaXJzdENoYXIgMzIKL0xhc3RDaGFyIDI1
NQovV2lkdGhzIFsyNzcgMjc3IDM1NCA1NTYgNTU2IDg4OSA2NjYgMTkwIDMzMyAzMzMgMzg5IDU4
MyAyNzcgMzMzIDI3NyAyNzcgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2
IDI3NyAyNzcgNTgzIDU4MyA1ODMgNTU2IDEwMTUgNjY2IDY2NiA3MjIgNzIyIDY2NiA2MTAgNzc3
IDcyMiAyNzcgNTAwIDY2NiA1NTYgODMzIDcyMiA3NzcgNjY2IDc3NyA3MjIgNjY2IDYxMCA3MjIg
NjY2IDk0MyA2NjYgNjY2IDYxMCAyNzcgMjc3IDI3NyA0NjkgNTU2IDMzMyA1NTYgNTU2IDUwMCA1
NTYgNTU2IDI3NyA1NTYgNTU2IDIyMiAyMjIgNTAwIDIyMiA4MzMgNTU2IDU1NiA1NTYgNTU2IDMz
MyA1MDAgMjc3IDU1NiA1MDAgNzIyIDUwMCA1MDAgNTAwIDMzMyAyNTkgMzMzIDU4MyAwIDY2NiA2
NjYgNzIyIDY2NiA3MjIgNzc3IDcyMiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1MDAgNTU2IDU1
NiA1NTYgNTU2IDI3NyAyNzcgMjc3IDI3NyA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2
IDU1NiA1NTYgNTU2IDM5OSA1NTYgNTU2IDU1NiAzNTAgNTM3IDYxMCA3MzYgNzM2IDEwMDAgMzMz
IDMzMyAwIDEwMDAgNzc3IDAgNTQ4IDAgMCA1NTYgNTc2IDAgMCAwIDAgMCAzNzAgMzY1IDAgODg5
IDYxMCA2MTAgMzMzIDU4MyAwIDU1NiAwIDAgNTU2IDU1NiAxMDAwIDI3NyA2NjYgNjY2IDc3NyAx
MDAwIDk0MyA1NTYgMTAwMCAzMzMgMzMzIDIyMiAyMjIgNTQ4IDAgNTAwIDY2NiAxNjYgNTU2IDMz
MyAzMzMgNTAwIDUwMCA1NTYgMjc3IDIyMiAzMzMgMTAwMCA2NjYgNjY2IDY2NiA2NjYgNjY2IDI3
NyAyNzcgMjc3IDI3NyA3NzcgNzc3IDAgNzc3IDcyMiA3MjIgNzIyIDI3NyA0NjkgMzMzIDU1MiAz
MzMgMzMzIDMzMyAzMzMgMzMzIDMzMyAzMzNdCi9Gb250RGVzY3JpcHRvciA5NyAwIFI+PgplbmRv
YmoKCjk3IDAgb2JqCjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvQXJpYWwKL0Fz
Y2VudCA5MDUKL0Rlc2NlbnQgLTIxMQovSXRhbGljQW5nbGUgMAovU3RlbVYgMAovQ2FwSGVpZ2h0
IDAKL0ZsYWdzIDMyCi9Gb250QkJveCBbLTY2NCAtMzI0IDIwMjggMTAzN10KL0ZvbnRGaWxlMiA5
OCAwIFI+PgplbmRvYmoKCjk4IDAgb2JqCjw8L0xlbmd0aCA5OSAwIFIKL0ZpbHRlciAvRmxhdGVE
ZWNvZGUKL0xlbmd0aDEgMjU2NDg+PgpzdHJlYW0KeJy9vAl8VNX1OH7vfe/NvrxZMlsmmZdMMgkZ
ICELIRDJsITFEHaQKJEMyWSB7JOwKEqoIoioaCuuFVyqoCIDBAxBv+BSW1ELrUsrrUIV15ZKW6St
mJn/ufe9hFC7fH///+/zn5dz77n3nrudc+655943E4QRQgbUg7jE1tqWcPunz5zSQc5bCGFr7aou
aXv7r1YBfgYhVV59e0PL6qzd3yCkERESYg3Na+u7Tf46hIzHEBrd2hgJ1x0vubgNodI8aGNsI2RY
WwzPQboR0hmNLV1rDr9kyYH0Vkjvam6rDSOuaTFCVxVC+rmW8Jp2/qThh5CG/pDUGm6JvIwbShGa
CMlkY3tbtCuRg7YjVCXS8vbOSPsf9nR8DGnoTzcAeRjR+dAZIaxC//WDh+EEcYgX5EpqjZyn1ekN
RmRCyCwiixUhG7KjJIQcQ5WcLrcn2YtSUhHySWnpCPkzMgNZ2WjEf+/7/5+P0I/cAB7haeTmA8iF
UOJzgC9oHG9KfEHLaUy+AuI+BUA2aA9uQnvQUfQKPg+19qLDqBf9HDnRVPQIWod+hDYhFboWcm5H
8+ERIP9H2J3oRbnoMWDkY+htoL0G3Yz6kQO7El+i9Wgj9w7U2oiMKB1NQnNRG7oTz0p0o6XoNH8L
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
F4pWcbHUioUETMFC5b/Y9oO7RLeHaBVMMIqDODrYBhs2Ur7JTOc7CF3dCqbwoUuJ5VpQJTrIjqEP
1AFT9f8AKKEzHAplbmRzdHJlYW0KZW5kb2JqCgo5OSAwIG9iagoxNjk2NgplbmRvYmoKCjQyIDAg
b2JqCjw8L1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1RydWVUeXBlCi9CYXNlRm9udCAvVGltZXNOZXdS
b21hbgovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKL0ZpcnN0Q2hhciAzMgovTGFzdENoYXIg
MjU1Ci9XaWR0aHMgWzI1MCAzMzMgNDA4IDUwMCA1MDAgODMzIDc3NyAxODAgMzMzIDMzMyA1MDAg
NTYzIDI1MCAzMzMgMjUwIDI3NyA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1
MDAgMjc3IDI3NyA1NjMgNTYzIDU2MyA0NDMgOTIwIDcyMiA2NjYgNjY2IDcyMiA2MTAgNTU2IDcy
MiA3MjIgMzMzIDM4OSA3MjIgNjEwIDg4OSA3MjIgNzIyIDU1NiA3MjIgNjY2IDU1NiA2MTAgNzIy
IDcyMiA5NDMgNzIyIDcyMiA2MTAgMzMzIDI3NyAzMzMgNDY5IDUwMCAzMzMgNDQzIDUwMCA0NDMg
NTAwIDQ0MyAzMzMgNTAwIDUwMCAyNzcgMjc3IDUwMCAyNzcgNzc3IDUwMCA1MDAgNTAwIDUwMCAz
MzMgMzg5IDI3NyA1MDAgNTAwIDcyMiA1MDAgNTAwIDQ0MyA0NzkgMjAwIDQ3OSA1NDEgMCA3MjIg
NzIyIDY2NiA2MTAgNzIyIDcyMiA3MjIgNDQzIDQ0MyA0NDMgNDQzIDQ0MyA0NDMgNDQzIDQ0MyA0
NDMgNDQzIDQ0MyAyNzcgMjc3IDI3NyAyNzcgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUw
MCA1MDAgNTAwIDUwMCAzOTkgNTAwIDUwMCA1MDAgMzUwIDQ1MyA1MDAgNzU5IDc1OSA5NzkgMzMz
IDMzMyAwIDg4OSA3MjIgMCA1NDggMCAwIDUwMCA1NzYgMCAwIDAgMCAwIDI3NSAzMTAgMCA2NjYg
NTAwIDQ0MyAzMzMgNTYzIDAgNTAwIDAgMCA1MDAgNTAwIDEwMDAgMjUwIDcyMiA3MjIgNzIyIDg4
OSA3MjIgNTAwIDEwMDAgNDQzIDQ0MyAzMzMgMzMzIDU0OCAwIDUwMCA3MjIgMTY2IDUwMCAzMzMg
MzMzIDU1NiA1NTYgNTAwIDI1MCAzMzMgNDQzIDEwMDAgNzIyIDYxMCA3MjIgNjEwIDYxMCAzMzMg
MzMzIDMzMyAzMzMgNzIyIDcyMiAwIDcyMiA3MjIgNzIyIDcyMiAyNzcgNDY5IDMzMyA1MDAgMzMz
IDMzMyAzMzMgMzMzIDMzMyAzMzMgMzMzXQovRm9udERlc2NyaXB0b3IgMTAwIDAgUj4+CmVuZG9i
agoKMTAwIDAgb2JqCjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvVGltZXNOZXdS
b21hbgovQXNjZW50IDg5MQovRGVzY2VudCAtMjE2Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViAwCi9D
YXBIZWlnaHQgMAovRmxhZ3MgMzIKL0ZvbnRCQm94IFstMTY2IC0zMDYgMTAwOCAxMDA2XQovRm9u
dEZpbGUyIDEwMSAwIFI+PgplbmRvYmoKCjEwMSAwIG9iago8PC9MZW5ndGggMTAyIDAgUgovRmls
dGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoMSA1Njc3Mj4+CnN0cmVhbQp4nJy8CWAU5d0//jzPHDt7
z+5m73P2TjbZ3WR3QxICmQDhRqJcCZoSbgSUJCICSolnIB6gVcSjiFUUhNYAAgGsohVbq1Zs1ao9
xL6oeKSlLVotZPP/PrMJQt/f+zv+O5lnnnnmeuZ7fL7H80wQRgjpUCdiBu6af83ctj7vkSJoeQMh
bJ6/amXgn6Uf3gz1kwipXl3UtviaXzzlhSvUOxHiyxcvX7NowlW/24qQ8Y8IPf7bJQvnLjjhvV6N
0N4euEflEmgwVHG7Yf807IeXXLNy9YQ+0y8R2qeDe9YuXzF/Lira40No/3jYl6+Zu7qN/wW/HqHn
NsD5gWvnXrPwzOaH22Afnuf8pG3FdSsHwmgBQr/ZTI+3dSxsO1V1/5OwD88zWqANI/o+9I0Q5tH/
8YcHt4RhEcerBLVGq9MbjKLJbCmyIpvd4XS5PV6fPyChYCgcicbixSWJ0rJkCqXpZeWoIpPNVQ6r
qq4ZXjtiZJ1cP2r0mIax48ZPmPh/fvb/v9+kyWjK/8v53D2wTkZ+WD3M/ciN0MDHsJ6C9XR+4sB5
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
4HPAa8AaWXx9vr506KkUVcxF6KAT8g2s7Xp4YG8NOvWduo5P1DX9WF3txEAI6sX2tCSC+ODN2SXw
X4C/Ax8CXwBNvgHfgEpeqY/aXImVIhzdp3s+ykSlSFn9Uh6nl7tcikRYqX5HCMc7oP4z893jnvES
/tAuMbwhEAQpa4maVUjvBP4XHG/6VAplbmRzdHJlYW0KZW5kb2JqCgoxMDIgMCBvYmoKMzg4NTUK
ZW5kb2JqCgo0MyAwIG9iago8PC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UcnVlVHlwZQovQmFzZUZv
bnQgL0FyaWFsLEJvbGQKL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCi9GaXJzdENoYXIgMzIK
L0xhc3RDaGFyIDI1NQovV2lkdGhzIFsyNzcgMzMzIDQ3NCA1NTYgNTU2IDg4OSA3MjIgMjM3IDMz
MyAzMzMgMzg5IDU4MyAyNzcgMzMzIDI3NyAyNzcgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2
IDU1NiA1NTYgNTU2IDMzMyAzMzMgNTgzIDU4MyA1ODMgNjEwIDk3NSA3MjIgNzIyIDcyMiA3MjIg
NjY2IDYxMCA3NzcgNzIyIDI3NyA1NTYgNzIyIDYxMCA4MzMgNzIyIDc3NyA2NjYgNzc3IDcyMiA2
NjYgNjEwIDcyMiA2NjYgOTQzIDY2NiA2NjYgNjEwIDMzMyAyNzcgMzMzIDU4MyA1NTYgMzMzIDU1
NiA2MTAgNTU2IDYxMCA1NTYgMzMzIDYxMCA2MTAgMjc3IDI3NyA1NTYgMjc3IDg4OSA2MTAgNjEw
IDYxMCA2MTAgMzg5IDU1NiAzMzMgNjEwIDU1NiA3NzcgNTU2IDU1NiA1MDAgMzg5IDI3OSAzODkg
NTgzIDAgNzIyIDcyMiA3MjIgNjY2IDcyMiA3NzcgNzIyIDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2
IDU1NiA1NTYgNTU2IDU1NiA1NTYgMjc3IDI3NyAyNzcgMjc3IDYxMCA2MTAgNjEwIDYxMCA2MTAg
NjEwIDYxMCA2MTAgNjEwIDYxMCA1NTYgMzk5IDU1NiA1NTYgNTU2IDM1MCA1NTYgNjEwIDczNiA3
MzYgMTAwMCAzMzMgMzMzIDAgMTAwMCA3NzcgMCA1NDggMCAwIDU1NiA1NzYgMCAwIDAgMCAwIDM3
MCAzNjUgMCA4ODkgNjEwIDYxMCAzMzMgNTgzIDAgNTU2IDAgMCA1NTYgNTU2IDEwMDAgMjc3IDcy
MiA3MjIgNzc3IDEwMDAgOTQzIDU1NiAxMDAwIDUwMCA1MDAgMjc3IDI3NyA1NDggMCA1NTYgNjY2
IDE2NiA1NTYgMzMzIDMzMyA2MTAgNjEwIDU1NiAyNzcgMjc3IDUwMCAxMDAwIDcyMiA2NjYgNzIy
IDY2NiA2NjYgMjc3IDI3NyAyNzcgMjc3IDc3NyA3NzcgMCA3NzcgNzIyIDcyMiA3MjIgMjc3IDU4
MyAzMzMgNTUyIDMzMyAzMzMgMzMzIDMzMyAzMzMgMzMzIDMzM10KL0ZvbnREZXNjcmlwdG9yIDEw
MyAwIFI+PgplbmRvYmoKCjEwMyAwIG9iago8PC9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5h
bWUgL0FyaWFsLEJvbGQKL0FzY2VudCA5MDUKL0Rlc2NlbnQgLTIxMQovSXRhbGljQW5nbGUgMAov
U3RlbVYgMAovQ2FwSGVpZ2h0IDAKL0ZsYWdzIDMyCi9Gb250QkJveCBbLTYyNyAtMzc2IDIwMzMg
MTA0N10KL0ZvbnRGaWxlMiAxMDQgMCBSPj4KZW5kb2JqCgoxMDQgMCBvYmoKPDwvTGVuZ3RoIDEw
NSAwIFIKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aDEgMjc0Mjg+PgpzdHJlYW0KeJy9fQl8
VNX18L1vnTf7TGbPMi+Z7AtZmBACkbxAEoEIhNUEjWRIJiSSfWGxFdCqLG64AS4tqVWhauuQoAaE
Gpdqbf/9i3UpWlv5t1iXSuVvLVIlM9+5970sqG2///d9v2+G++55955z77lnu+e+mQkII4SMaBti
Y7c0dYS69zz7sQFa/gMhbG/a0C//9eTdBD6FkDizpXtdx4PsXx0ISR6E+EvXtW9uMdiu1iNkbkQo
T24Nh5p/ebthBkKzt8EYM1qhwf6C8RW4H4H71NaO/k1Przafgft34f6h9q6mEGJzFiJURvAPdoQ2
dYtG2+cIXZIJ93JnqCP8q7Yo4F4yH6HEJd1dff2xbPRbhFbvI/3dveHuH7mud8I9jG9thzaMyHrI
ihAW0L99Ya1mWIQ4xH8TQUAi0kl6ZFBHNSGzxWpDyD7eH4ccTpfb4/UhFJ+QmOSXk1MCqWnpGZn/
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
ML6tHlojzI4RjFbUjeAYaboxnvzd7EMY3Xhr/BGEsffGW+vrkce1odxTbp9jK62u/JZLo3ad8uev
PFPBxMiemuV1kUcT6yNFBIgl1tdEriN/VfsIY2FMVZVHGDOp6uuOcN2MpWoZaee6K+sB7TRFA2s2
AxrKIBWg6eYimaBBPJlL0EBHKl46kANeMqkAT29C6RQvXW+ieBwmeIdOylWVh2SZ4qQhdJLinExD
U3DAYoC28lB6OsUKyLiOYOG6gEwZy6ID+f2AkuenKHAG8tOB/JhOFsmfREnTUIonUIrpXCyexPGr
OI7McRxHJuDk/F++wnNz8HDhwJYXyB8qbwxUhaE0Rm7e0OqJbFsry4e2DGh/wTy9cW1TK6lD4chA
IFwZ2RKolA8VvvAt3S+Q7sJA5SH0QtWKukMvKOHKoUKlsCoQqqwfLi+rq7horp0Tc9WVfctgZWSw
OjJXecW3dFeQ7nIyVwWZq4LMVa6U07mq2ojd19Yd0qG55FvatB5mDHqw4cb45Pq5Lmv3HGLQR2Yn
e7bEH+UQPogMOfURY2BuxASFdOVV5FWQLvAz0mUmf41e6/JsmZ0cfxQf1Lqs0GwLzJ34fQQiSOTX
ljWR5OWr64ipRJTQt+usj7xotwdVtVXCP7jvpwXeUzFR37e++r/tNTAw0EcuAzl9CNVEspfXRGaQ
336KIkzVWFkPbdPG21iWth2SpKqR2Ch05gATuJ9MR6AcTP7qi6In/8kRMygMigw5KvQP+xKLuo7D
Dr4VCpzjmI1D+fS8zGwcTkkj55f+4fxitYbzKamHfMlF5Kv9JUBK6jS1Vmx5AOxO2523u2QwbTBv
sIT8zOapR6DR/wjZSofyH2FRf07fuCAA7K9H6h+jgfl+OJSQSCceJEBOTn1OH/3GPfq6qCd+BJMz
Kdg+bdQ+Onz/uELU9j6kIqudOQPjRAMaCe0coCQA/i8hlR6OCmVuZHN0cmVhbQplbmRvYmoKCjEw
NSAwIG9iagoxNzQ4NAplbmRvYmoKCjQ0IDAgb2JqCjw8L1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1Ry
dWVUeXBlCi9CYXNlRm9udCAvVGltZXNOZXdSb21hbixCb2xkCi9FbmNvZGluZyAvTWFjUm9tYW5F
bmNvZGluZwovRmlyc3RDaGFyIDMyCi9MYXN0Q2hhciAyNTUKL1dpZHRocyBbMjUwIDMzMyA1NTUg
NTAwIDUwMCAxMDAwIDgzMyAyNzcgMzMzIDMzMyA1MDAgNTY5IDI1MCAzMzMgMjUwIDI3NyA1MDAg
NTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgMzMzIDMzMyA1NjkgNTY5IDU2OSA1
MDAgOTMwIDcyMiA2NjYgNzIyIDcyMiA2NjYgNjEwIDc3NyA3NzcgMzg5IDUwMCA3NzcgNjY2IDk0
MyA3MjIgNzc3IDYxMCA3NzcgNzIyIDU1NiA2NjYgNzIyIDcyMiAxMDAwIDcyMiA3MjIgNjY2IDMz
MyAyNzcgMzMzIDU4MSA1MDAgMzMzIDUwMCA1NTYgNDQzIDU1NiA0NDMgMzMzIDUwMCA1NTYgMjc3
IDMzMyA1NTYgMjc3IDgzMyA1NTYgNTAwIDU1NiA1NTYgNDQzIDM4OSAzMzMgNTU2IDUwMCA3MjIg
NTAwIDUwMCA0NDMgMzk0IDIyMCAzOTQgNTIwIDAgNzIyIDcyMiA3MjIgNjY2IDcyMiA3NzcgNzIy
IDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDQ0MyA0NDMgNDQzIDQ0MyA0NDMgMjc3IDI3NyAyNzcg
Mjc3IDU1NiA1MDAgNTAwIDUwMCA1MDAgNTAwIDU1NiA1NTYgNTU2IDU1NiA1MDAgMzk5IDUwMCA1
MDAgNTAwIDM1MCA1NDAgNTU2IDc0NyA3NDcgMTAwMCAzMzMgMzMzIDAgMTAwMCA3NzcgMCA1NDgg
MCAwIDUwMCA1NzYgMCAwIDAgMCAwIDI5OSAzMzAgMCA3MjIgNTAwIDUwMCAzMzMgNTY5IDAgNTAw
IDAgMCA1MDAgNTAwIDEwMDAgMjUwIDcyMiA3MjIgNzc3IDEwMDAgNzIyIDUwMCAxMDAwIDUwMCA1
MDAgMzMzIDMzMyA1NDggMCA1MDAgNzIyIDE2NiA1MDAgMzMzIDMzMyA1NTYgNTU2IDUwMCAyNTAg
MzMzIDUwMCAxMDAwIDcyMiA2NjYgNzIyIDY2NiA2NjYgMzg5IDM4OSAzODkgMzg5IDc3NyA3Nzcg
MCA3NzcgNzIyIDcyMiA3MjIgMjc3IDU4MSAzMzMgNTAwIDMzMyAzMzMgMzMzIDMzMyAzMzMgMzMz
IDMzM10KL0ZvbnREZXNjcmlwdG9yIDEwNiAwIFI+PgplbmRvYmoKCjEwNiAwIG9iago8PC9UeXBl
IC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL1RpbWVzTmV3Um9tYW4sQm9sZAovQXNjZW50IDg5
MQovRGVzY2VudCAtMjE2Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViAwCi9DYXBIZWlnaHQgMAovRmxh
Z3MgMzIKL0ZvbnRCQm94IFstNTU4IC0zMDYgMjAzMyAxMDI1XQovRm9udEZpbGUyIDEwNyAwIFI+
PgplbmRvYmoKCjEwNyAwIG9iago8PC9MZW5ndGggMTA4IDAgUgovRmlsdGVyIC9GbGF0ZURlY29k
ZQovTGVuZ3RoMSAzNTkxNj4+CnN0cmVhbQp4nLy8CXwcxZU4XFU93XNP99z3dM/0HBqN5pA0OkaS
pfYh+bZlMMY2Fr6Nb0uysbENsQGDY0Nic8RADIshhCv8Y2GDkSEJDhASNuzihCSQY4OTOCyQiJDF
kASQ5nvVPZLtwO7+f9/3+30addWr6urqqnfVe69qBmGEkAXtRkz51uUblvYef+MsCzWvIoQdy7du
kZba3jkL8BmEDIZVvVdt+Kvz71sQMr6DEDvlqvXbV7nnf3gpQnwBoamLVq9cuuLHEd2vEZp/K/TR
uBoqnFMtL0D5JSjHV2/Ycs3gk8YPoQzPo0fXb1q+FLFdkxBacBDKT2xYek2vYZpzIkIL26AsbVy6
YWX69xFou3ARFN29mzZvKcfRiwjt2ELv9/av7J379xeGoXwnQvanoQ4jOh86I4Q59L/+4YuL5DzI
aJkOsZzeABNGyITM0K3VxgvIPtbM4XS5PV6fP4CCoXBElKIxOZ5IpqrS//u7///5Y7+KRHaGeoWY
O1EQofLv4AKalt8ZmVb+jF2H5JG15TOME7AR167KXwLtQXH0DjqEnkc96MeEQZ04h+YjHfYhPyK4
hKZjAXkRi02oCsloOupGbjQN/RFb0VFUi97DXeh6nECz0b0ohmYhDxqPbkNH8OTyu+h69Dpeg74F
Tz+KFZRCM/CU8ltoDuouPwPvQKgV3YW+jm1IhDsmLJd/Cz1sRnvRs+gXqIwWorvZI9BLN7oEbSw/
gxahn+CF+IpyCE1FG9GX0N3oAfRddBZ/GZ/SseUlqAEtQ/1Yj524irmh/ChqZt80Pl1+qXwaCdD+
Aej1zySj6yq/jxT0jg6XVwP5nagePhvRg+gE+g324QZmIrKhIryrB12LjjJVMMYpaB/M7Vm8Ex9l
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
+JcrOd72+Jf7+9nK0S0VW5a1Ld20reM6zUC27eyY/VVNb4XXO+9pVfovunb3pV9Y1Z/28c6VVf1d
6bX8O72PizHx4c6O4+I+jvr7jgvDYqxzFx8Xhjv6QXYnkbE2cR/IWJAjkIkPsjZOhvEH55AJUxju
mGprs4l2ClOcCEmzk4jut4m2ziWSnhC2EtFW6Qkietre0AM5sKGfI5AtijEPbehZFCOyCk42VVMD
TpEaTjLlqwHBVI2Ppu+ZnXbb09+2p7/Np6cFYXZ+Q40trZvV0A41ohs03v/Hl9b+f1gkZDaPxvv4
d7EPuDo1wED6idHhivTkoKJMxUezX9JeMzAYGuZY1dKjLq0jHXd1KFOb+64z3cenN7s6plhfZ2/f
VJ9f67A2+zd3utSO/kz3wZb98/b6Un6vloPXYXaQM2vhe3Xvv870fj7dzffaz/faz/fq9nfTXl27
2oWunr6pItbO/5II4YxYWoJsGahc09++sjzRRqlz55qKxypfdTDhGCv19qcXu9rTTgCfqg3UBvgU
UppPLcFwWXaq4rE711S+KhzLTpVjeKmrnZkVndEO/GfgZZopvGBjw7BtXWFPmN5OmgeBiZ5JL1Ci
z8Gg0ey8yVKzL6/XpmWGd2vfVDDYWRHt4F+UkeH3b2+/wbxee0Ovl2FPaE0X/pV04S8tWNn4r8Gf
BT8MSjN00z8NuEA3/Rnc8k8DLuCmv1qaaTvddqFNmgmeDl4A7bnT5y6ck2ZqT9deqJWasxIY9H1j
kHD2X8prpAz6sy+kLemNR9NreLnKORvgyctHuVXwssdpnRdcvPm13tmOYU+maIk9auTjF7X1fwEl
JIA8CmVuZHN0cmVhbQplbmRvYmoKCjEwOCAwIG9iagoyMzE3NgplbmRvYmoKCjQ1IDAgb2JqCjw8
L1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1RydWVUeXBlCi9CYXNlRm9udCAvQ291cmllck5ldwovRW5j
b2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKL0ZpcnN0Q2hhciAzMgovTGFzdENoYXIgMjU1Ci9XaWR0
aHMgWzYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2
MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYw
MCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAw
IDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAg
NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2
MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYw
MCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMCA2MDAgNjAwIDYwMCA2
MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYw
MCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAw
IDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAwIDYw
MCA2MDAgMCA2MDAgMCAwIDYwMCA2MDAgMCAwIDAgMCAwIDYwMCA2MDAgMCA2MDAgNjAwIDYwMCA2
MDAgNjAwIDAgNjAwIDAgMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAg
NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAw
IDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAg
NjAwIDYwMCAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAw
IDYwMCA2MDAgNjAwXQovRm9udERlc2NyaXB0b3IgMTA5IDAgUj4+CmVuZG9iagoKMTA5IDAgb2Jq
Cjw8L1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvQ291cmllck5ldwovQXNjZW50IDgz
MgovRGVzY2VudCAtMzAwCi9JdGFsaWNBbmdsZSAwCi9TdGVtViAwCi9DYXBIZWlnaHQgMAovRmxh
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
K9sqmyobKxsqo5W7w7XhneHt4ZpwdTgc3hquCIfCFN7NX6/fwveL3Vt3creV/4eXKgTfGeI2pG4n
IS0cotO0vEsfCY2M92kjy49SNDJjLH8+3nBfq/7mq8tbGvq05doRGpno27vc3TJyv/LxueXjLSPL
VWe/deGOpr09hdFy6HfvazRx4b72mEk/2MdvDV8lTWv9wbV9fj81xWsu3KnQrl2boj2LvXt7a198
6sRg8gnNJb8t+yTY3vKPhbEl+5f/eGT8wvKH+6eWOxl5vH9qBJHjl4yvho6Hjg0kV0Pd3E1dWK2+
Ejo+cI7p1VeSUyU+MkBPrlI9d8JHBvORsYGvLtTNfM9xp/jqhK9uHd+dU/UDyTv19QHPKeE5tZ5n
bj3PnPDM+Ty64qkv46n8OdULT33lzzfx1H0NnueeyFMWTatv8wfvSv+0Vf6K9jv9b/Ab2i81DFiA
S8tXF+f3Ll+ZMYxV6tc+8V/e/vylGTyeojet+9onDVZyub8hadw5/cbm+eU3ePp0Q/IOvTEwceHO
G3EruXI6fnqgwUxO3R0yD91ap+73AnV3DplPEGaysEOsa+jWE6Zv8fQQ67rFum6xrqH4kOiSqkdZ
hqlvqn9a9XdD26pRwJf21U/17dmZf1Gq+YX6vW/ue1BB2ge0rWVquaahbzkC4Km2RFuCp7DLeGo7
yDv8qb1vvlC/74H2gT+1E+SnGvpo70AmiR/X9ZGv+eO6rvea+5rLvfy4XgEgn5R0yfX4+20TNXJ/
i+I05rP5KuAtOaN1153y1Acq3QKxNI+bkvA1rADJmrvuc5juxn9cGS2kAOLcgiaf1gTil42rYRJi
iI1UQuh/AdyL3vYKZW5kc3RyZWFtCmVuZG9iagoKMTExIDAgb2JqCjIyMzg4CmVuZG9iagoKNDYg
MCBvYmoKPDwvVHlwZSAvRm9udAovU3VidHlwZSAvVHJ1ZVR5cGUKL0Jhc2VGb250IC9Db3VyaWVy
TmV3LEJvbGQKL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCi9GaXJzdENoYXIgMzIKL0xhc3RD
aGFyIDI1NQovV2lkdGhzIFs2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAg
NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2
MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYw
MCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAw
IDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAg
NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2
MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDAg
NjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2
MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYw
MCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAw
IDYwMCA2MDAgMCA2MDAgNjAwIDAgNjAwIDAgMCA2MDAgNjAwIDAgMCAwIDAgMCA2MDAgNjAwIDAg
NjAwIDYwMCA2MDAgNjAwIDYwMCAwIDYwMCAwIDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAw
IDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDAgNjAwIDYwMCA2MDAgNjAwIDYw
MCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAw
IDYwMCA2MDAgNjAwIDYwMCA2MDAgMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYw
MCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMF0KL0ZvbnREZXNjcmlwdG9yIDExMiAwIFI+PgplbmRv
YmoKCjExMiAwIG9iago8PC9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL0NvdXJpZXJO
ZXcsQm9sZAovQXNjZW50IDgzMgovRGVzY2VudCAtMzAwCi9JdGFsaWNBbmdsZSAwCi9TdGVtViAw
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
c3RyZWFtCmVuZG9iagoKMTE0IDAgb2JqCjE4MDgwCmVuZG9iagoKMTE1IDAgb2JqCjw8L1Byb2R1
Y2VyIChQcmluY2UgNy4wIGFscGhhIDE2IFwod3d3LnByaW5jZXhtbC5jb21cKSkKL1RpdGxlIChP
Z3BTZXR1cCk+PgplbmRvYmoKCnhyZWYKMCAxMTYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAw
MDE2IDAwMDAwIG4gCjAwMDAwMDM0ODkgMDAwMDAgbiAKMDAwMDAwNTAyNyAwMDAwMCBuIAowMDAw
MDA3MTg5IDAwMDAwIG4gCjAwMDAwMDg5NDEgMDAwMDAgbiAKMDAwMDAxMDE0NiAwMDAwMCBuIAow
MDAwMDEyMTY3IDAwMDAwIG4gCjAwMDAwMTM5NzcgMDAwMDAgbiAKMDAwMDAxNTExNSAwMDAwMCBu
IAowMDAwMDE2MjQ5IDAwMDAwIG4gCjAwMDAwMTc3MDQgMDAwMDAgbiAKMDAwMDAxODg5MiAwMDAw
MCBuIAowMDAwMDIwMTQ2IDAwMDAwIG4gCjAwMDAwMjE3NTkgMDAwMDAgbiAKMDAwMDAwMzQyNSAw
MDAwMCBuIAowMDAwMDAwMTI0IDAwMDAwIG4gCjAwMDAwMDA2MzEgMDAwMDAgbiAKMDAwMDAwMDg3
OCAwMDAwMCBuIAowMDAwMDAxMzg2IDAwMDAwIG4gCjAwMDAwMDE5MjQgMDAwMDAgbiAKMDAwMDAw
MjEwMyAwMDAwMCBuIAowMDAwMDAyNDQxIDAwMDAwIG4gCjAwMDAwMDMwMjUgMDAwMDAgbiAKMDAw
MDAwMzE3OSAwMDAwMCBuIAowMDAwMDAzMzE1IDAwMDAwIG4gCjAwMDAwMDAyMjIgMDAwMDAgbiAK
MDAwMDAwMDM3MyAwMDAwMCBuIAowMDAwMDAwNTAzIDAwMDAwIG4gCjAwMDAwMDA3NzggMDAwMDAg
biAKMDAwMDAwMTAyOSAwMDAwMCBuIAowMDAwMDAxMTY1IDAwMDAwIG4gCjAwMDAwMDEyNzcgMDAw
MDAgbiAKMDAwMDAwMTU1MiAwMDAwMCBuIAowMDAwMDAxNjY3IDAwMDAwIG4gCjAwMDAwMDE3OTEg
MDAwMDAgbiAKMDAwMDAwMjMzNCAwMDAwMCBuIAowMDAwMDAyNTg1IDAwMDAwIG4gCjAwMDAwMDI2
ODkgMDAwMDAgbiAKMDAwMDAwMjgwOSAwMDAwMCBuIAowMDAwMDAyOTE4IDAwMDAwIG4gCjAwMDAx
MTY3OTQgMDAwMDAgbiAKMDAwMDEzNTA4NSAwMDAwMCBuIAowMDAwMTc1MjgzIDAwMDAwIG4gCjAw
MDAxOTQxMDcgMDAwMDAgbiAKMDAwMDIxODY0MSAwMDAwMCBuIAowMDAwMjQyMzYxIDAwMDAwIG4g
CjAwMDAwMjI0NTQgMDAwMDAgbiAKMDAwMDA0NTQxMiAwMDAwMCBuIAowMDAwMDU1MTQ2IDAwMDAw
IG4gCjAwMDAwNjY5NjEgMDAwMDAgbiAKMDAwMDA4MzQ2OCAwMDAwMCBuIAowMDAwMTAxNTE3IDAw
MDAwIG4gCjAwMDAxMTA1MDcgMDAwMDAgbiAKMDAwMDAwMzYxNyAwMDAwMCBuIAowMDAwMDA1MDA1
IDAwMDAwIG4gCjAwMDAwMDUzOTIgMDAwMDAgbiAKMDAwMDAwNTU1OSAwMDAwMCBuIAowMDAwMDA1
NzI2IDAwMDAwIG4gCjAwMDAwMDcxNjcgMDAwMDAgbiAKMDAwMDAwNzUzMCAwMDAwMCBuIAowMDAw
MDA4OTE5IDAwMDAwIG4gCjAwMDAwMDkyODIgMDAwMDAgbiAKMDAwMDAxMDEyNSAwMDAwMCBuIAow
MDAwMDEwNDg3IDAwMDAwIG4gCjAwMDAwMTIxNDUgMDAwMDAgbiAKMDAwMDAxMjUzMiAwMDAwMCBu
IAowMDAwMDEyNzE3IDAwMDAwIG4gCjAwMDAwMTI4OTYgMDAwMDAgbiAKMDAwMDAxMzk1NiAwMDAw
MCBuIAowMDAwMDE0MzE4IDAwMDAwIG4gCjAwMDAwMTUwOTQgMDAwMDAgbiAKMDAwMDAxNTQ1NiAw
MDAwMCBuIAowMDAwMDE2MjI4IDAwMDAwIG4gCjAwMDAwMTY1OTEgMDAwMDAgbiAKMDAwMDAxNzY4
MiAwMDAwMCBuIAowMDAwMDE4MDQ2IDAwMDAwIG4gCjAwMDAwMTg4NzEgMDAwMDAgbiAKMDAwMDAx
OTIzNCAwMDAwMCBuIAowMDAwMDIwMTI1IDAwMDAwIG4gCjAwMDAwMjA0ODggMDAwMDAgbiAKMDAw
MDAyMTczNyAwMDAwMCBuIAowMDAwMDIyMTAxIDAwMDAwIG4gCjAwMDAwMjI0MzMgMDAwMDAgbiAK
MDAwMDA0NTEyMyAwMDAwMCBuIAowMDAwMDQ1MTQ2IDAwMDAwIG4gCjAwMDAwNDUzOTIgMDAwMDAg
biAKMDAwMDA1NDgzMyAwMDAwMCBuIAowMDAwMDU0ODU1IDAwMDAwIG4gCjAwMDAwNTUxMjYgMDAw
MDAgbiAKMDAwMDA2NjU5MCAwMDAwMCBuIAowMDAwMDY2NjEzIDAwMDAwIG4gCjAwMDAwNjY5NDAg
MDAwMDAgbiAKMDAwMDA4MzE0NCAwMDAwMCBuIAowMDAwMDgzMTY3IDAwMDAwIG4gCjAwMDAwODM0
NDcgMDAwMDAgbiAKMDAwMDEwMTQ5NCAwMDAwMCBuIAowMDAwMTE3ODIzIDAwMDAwIG4gCjAwMDAx
MTgwMDYgMDAwMDAgbiAKMDAwMDEzNTA2MiAwMDAwMCBuIAowMDAwMTM2MTE5IDAwMDAwIG4gCjAw
MDAxMzYzMTIgMDAwMDAgbiAKMDAwMDE3NTI1OSAwMDAwMCBuIAowMDAwMTc2MzE3IDAwMDAwIG4g
CjAwMDAxNzY1MDcgMDAwMDAgbiAKMDAwMDE5NDA4MyAwMDAwMCBuIAowMDAwMTk1MTUxIDAwMDAw
IG4gCjAwMDAxOTUzNDkgMDAwMDAgbiAKMDAwMDIxODYxNyAwMDAwMCBuIAowMDAwMjE5NjY5IDAw
MDAwIG4gCjAwMDAyMTk4NTcgMDAwMDAgbiAKMDAwMDI0MjMzNyAwMDAwMCBuIAowMDAwMjQzMzk0
IDAwMDAwIG4gCjAwMDAyNDM1ODcgMDAwMDAgbiAKMDAwMDI2MTc1OSAwMDAwMCBuIAowMDAwMjYx
NzgzIDAwMDAwIG4gCgp0cmFpbGVyCjw8L0luZm8gMTE1IDAgUgovU2l6ZSAxMTYKL1Jvb3QgMSAw
IFI+PgpzdGFydHhyZWYKMjYxODc3CiUlRU9GCg==

--=_mixed 005DFB7A852575DF_=
Content-Type: application/octet-stream; name="OgpSetup.doc"
Content-Disposition: attachment; filename="OgpSetup.doc"
Content-Transfer-Encoding: base64

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAA+AAAAAAAAAAA
EAAA+gAAAAEAAAD+////AAAAAPYAAAD3AAAA////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////s
pcEAJ2AJBAAA+BK/AAAAAAAAEAAAAAAABgAAeUkAAA4AYmpiauvI68gAAAAAAAAAAAAAAAAAAAAA
AAAJBBYALnIAAImiAACJogAAeUEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//w8AAAAA
AAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAAAAAAAAAAAAKQAAAAAAKQGAAAAAAAApAYAAKQG
AAAAAAAApAYAAAAAAACkBgAAAAAAAKQGAAAAAAAApAYAABQAAAAAAAAAAAAAALgGAAAAAAAAIDIA
AAAAAAAgMgAAAAAAACAyAAAAAAAAIDIAADQAAABUMgAAbAAAALgGAAAAAAAAXEkAAPYAAADMMgAA
OgAAAAYzAAAAAAAABjMAAAAAAAAGMwAAAAAAAAYzAAAAAAAA4TMAAAAAAADhMwAAAAAAAOEzAAAA
AAAA20gAAAIAAADdSAAAAAAAAN1IAAAAAAAA3UgAAAAAAADdSAAAAAAAAN1IAAAAAAAA3UgAACQA
AABSSgAAaAIAALpMAAC4AAAAAUkAABUAAAAAAAAAAAAAAAAAAAAAAAAApAYAAAAAAADINQAAAAAA
AAAAAAAAAAAAAAAAAAAAAADhMwAAAAAAAOEzAAAAAAAAyDUAAAAAAADINQAAAAAAAAFJAAAAAAAA
AAAAAAAAAACkBgAAAAAAAKQGAAAAAAAABjMAAAAAAAAAAAAAAAAAAAYzAADbAAAAFkkAABYAAAAc
PQAAAAAAABw9AAAAAAAAHD0AAAAAAADINQAAzgIAAKQGAAAAAAAABjMAAAAAAACkBgAAAAAAAAYz
AAAAAAAA20gAAAAAAAAAAAAAAAAAABw9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAyDUAAAAAAADbSAAAAAAAAAAAAAAAAAAAHD0AAAAAAAAcPQAA
UgEAAKdFAAD0AAAApAYAAAAAAACkBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0cAAAAAAAAGMwAAAAAAAMAyAAAMAAAAkEsIrOb0
yQEAAAAAAAAAACAyAAAAAAAAljgAAE4EAACbRgAAHgAAAAAAAAAAAAAA20gAAAAAAAAsSQAAMAAA
AFxJAAAAAAAAuUYAAGYAAAByTQAAAAAAAOQ8AAAuAAAAck0AADwAAAAfRwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf
RwAAOAAAAHJNAAAAAAAAAAAAAAAAAACkBgAAAAAAAFdHAACEAQAA4TMAAGgAAABJNAAASgAAABw9
AAAAAAAAkzQAADwAAADPNAAA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4TMA
AAAAAADhMwAAAAAAAOEzAAAAAAAAAUkAAAAAAAABSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAEj0AAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEzAAAA
AAAA4TMAAAAAAADhMwAAAAAAAFxJAAAAAAAAyDUAAAAAAADINQAAAAAAAMg1AAAAAAAAyDUAAAAA
AAAAAAAAAAAAALgGAAAAAAAAuAYAAAAAAAC4BgAAJCYAANwsAABEBQAAuAYAAAAAAAC4BgAAAAAA
ALgGAAAAAAAA3CwAAAAAAAC4BgAAAAAAALgGAAAAAAAAuAYAAAAAAACkBgAAAAAAAKQGAAAAAAAA
pAYAAAAAAACkBgAAAAAAAKQGAAAAAAAApAYAAAAAAAD/////AAAAAAIADAEAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NQSBk
cmFmdCBub3RlIG9uIE9HUFggc2V0dXAgcGF0dGVybnMsDUV2ZW50IHF1ZXVlcywgYW5kIFVSSXMN
DQ1EYXZpZCBXLiBMZXZpbmUNSUJNIFQuIEouIFdhdHNvbiBSZXNlYXJjaCBDZW50ZXINEyBIWVBF
UkxJTksgIm1haWx0bzpkd2xAdXMuaWJtLmNvbSIgARRkd2xAdXMuaWJtLmNvbRUNDVByZWxpbWlu
YXJ5IERyYWZ0IDAuMUENRm9yIGNvbW1lbnRzDQ1KdW5lIDE4LCAyMDA5DQxJbnRyb2R1Y3Rpb24N
DVRoaXMgbm90ZSBkZXNjcmliZXMgdGhlIHBhdHRlcm5zIGZvciB1c2luZyBPR1AsIGV2ZW50IHF1
ZXVlcyBhbmQgY2xpZW50IHNpZGUgY2FwYWJpbGl0aWVzIHRvIG1vZGVsIHRoZSBjbGllbnQgLyBz
ZXJ2aWNlIGludGVyYWN0aW9uIHdpdGhpbiBPR1AuIEl0IGJlZ2lucyBieSBkZWZpbmluZyB0aGUg
b3ZlcmFsbCBhcHByb2FjaCwgdGhlbiB0aGUgc3BlY2lmaWMgZWxlbWVudHMgaW4gdGhlIGN1cnJl
bnQgaW1wbGVtZW50YXRpb24uIA0NQSBmYWlybHkgY29tcGxldGUgd29ya2VkIGV4YW1wbGUgaXMg
cHJvdmlkZWQuIFRoZSBleGFjdCBMTFNELCB0aGUgZXhhY3QgVVJJIGZvcm1hdHMsIGFuZCB0aGUg
ZXhhbXBsZSBzZXJ2aWNlIGFyZSBwcm92aWRlZCB0byBpbGx1c3RyYXRlIHRoZSBzZXJ2aWNlIHBh
dHRlcm4sIGFuZCBhcmUgZXh0cmVtZWx5IHByb3Zpc2lvbmFsLiANDVRoZSBzZXF1ZW5jZSBkaWFn
cmFtcyB1c2VkIHRvIGlsbHVzdHJhdGUgdGhlIGZsb3dzLCBhcyB3ZWxsIGFzIHRoZSBzdHJ1Y3R1
cmFsIGRpYWdyYW1zIHJlcHJlc2VudCBvbmUgcG9zc2libGUgYXBwcm9hY2ggdG8gaW1wbGVtZW50
aW5nIHRoZSBzZXJ2aWNlIHBhdHRlcm4uIE5vdGhpbmcgYmV5b25kIHRoZSBpbnRlcmZhY2VzIHdv
dWxkIGJlIG5vcm1hdGl2ZS4gDQ1UaGlzIG5vdGUgaXMgYSBEUkFGVCBpdCBpcyB2ZXJ5IHByZWxp
bWluYXJ5IGFuZCBpcyBpbnRlbmRlZCB0byBkcml2ZSBkaXNjdXNzaW9uLiBGb2xsb3dpbmcgZnVy
dGhlciBkaXNjdXNzaW9uLCBJIGV4cGVjdCB0byBwb3N0IGl0IGFzIGEgZm9ybWFsIGlucHV0IHRv
IHRoZSBPR1hQIGRpc2N1c3Npb24uIA0NUXVlc3Rpb25zIG9mIG5vdGU6DUhvdyBtdWNoIHJ1biB0
aW1lIC8gbGF0ZW5jeSBjb3N0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRlc2lnbg1UaGlzIGRl
c2lnbiBpcyBpbnRlbmRlZCB0byBwZXJtaXQgdGhlIHN1YnN0aXR1dGlvbiBvZiByaHR0cCwgb3Ig
eG1wcCBvciBzaW1pbGFyIHRyYW5zcG9ydHMgaW4gdGhlIGFyY2hpdGVjdHVyZS4gSG93IGNsb3Nl
IGRvIHdlIGNvbWUgdG8gdGhhdCBpZGVhbC4gDUlzIHRoaXMgc2VjdXJlIGVub3VnaCB0byBub3Qg
aGl0IGFuIGluc3RhbnQgRUtSIHdhbGwgYXQgdGhlIElFVEYNQXJlIHdlIG1pc3NpbmcgYW55IGtl
eSByZXF1aXJlbWVudHMgaGVyZT8NUmVxdWlyZW1lbnRzDQ1UaGlzIG5vdGUgYWRkcmVzc2VzIHRo
ZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzIGZvciBzZXJ2aWNlL2NsaWVudCBtb2RlbGluZyBpbiBP
R1BYOg0NU3VwcG9ydCBkZXBsb3lpbmcgc2VydmljZXMgYWNyb3NzIGFyYml0cmFyeSBkb21haW4g
YW5kIGhvc3RpbmcgbW9kZWxzIA0NSW4gcGFydGljdWxhciwgcGVybWl0IHNlcnZpY2VzIHRvIGJl
IGRlcGxveWVkIGFjcm9zcyBtdWx0aXBsZSBob3N0cyB3aXRoaW4gYSBkb21haW4sIGNsdXN0ZXJp
bmcgcGlwZXMsIGFuZCBzZWN1cmVseSBzaGFyaW5nIGV2ZW50IHF1ZXVlcyBhbmQgZXZlbnQgZGVs
aXZlcnkuICANQWJzdHJhY3QgYXdheSBhIHNwZWNpZmljIHNpbmdsZSBiaWRpcmVjdGlvbmFsIHBp
cGUgZnJvbSB0aGUgT0dQWCBzcGVjcw0NU3VwcG9ydCBldmVudCBxdWV1ZXMsIHItaHR0cCBpZiBp
dCBiZWNvbWVzIGEgY29tbW9uIHBhdHRlcm4sIHdlYnNvY2tldHMsIGlmIHRoZXkgYmVjb21lIGNv
bW1vbiwgYW5kIGZ1bGwgZHVwbGV4IHNjaGVtZXMsIHN1Y2ggYXMgeG1wcCwgaWYgdGhleSBiZWNv
bWUgdmlhYmxlIA1Qcm92aWRlIGEgbW9kZWwgZm9yIGFyY2hpdGVjdHVyYWxseSBkZXNjcmliaW5n
IHJlc291cmNlcyBvbiB0aGUgY2xpZW50Lg0NVGhpcywgaW4gZWZmZWN0LCBpcyCTYWRkcmVzc2lu
Z5QgY2xpZW50IHNpZGUgcmVzb3VyY2VzLCBwcm92aWRpbmcgcmVmZXJlbmNlcyB0byB0aGVtLg1Q
ZXJtaXQgc2VydmljZSBzaWRlIGRlcGxveWVycyB0byBwYXNzIGFyb3VuZCByZWZlcmVuY2VzIHRv
IHRoZXNlIGNsaWVudCBzaWRlIHJlc291cmNlcyB3aXRoaW4gdGhlIHNlcnZpY2UgY2xvdWQgc2Fm
ZWx5IGFuZCB0cmFuc3BhcmVudGx5DQ1QcmV2ZW50IHNlcnZpY2VzIGZyb20gc3Bvb2ZpbmcgbWVz
c2FnZXMgdG8gcmVzb3VyY2VzIG90aGVycyB0aGFuIHRob3NlIHRoZXkgaGF2ZSBiZWVuIGdyYW50
ZWQgYWNjZXNzIHRvDVByb3ZpZGUgYSBlbmRwb2ludCBpbmRlcGVuZGVudCBwYXRoIHRvIHRoZSBj
bGllbnQgKHZpYSBhbnkgZXZlbnRxIGF2YWlsYWJsZSwgb3IgYW55IFVSSSByZXByZXNlbnRpbmcg
dGhlIGNsaWVudCByZXNvdXJjZSkNUHJldmVudGluZyBndWVzc2luZyBvZiBlbmRwb2ludCByZXNv
dXJjZSBhZGRyZXNzZXMNQ2xvc2VseSBtb2RlbCB0aGUgY3VycmVudCBldmVudCBxdWV1ZSBpbXBs
ZW1lbnRhdGlvbnMNDVN1cHBvcnQgZGVwbG95aW5nIHNlcnZpY2VzIG9uIG11bHRpcGxlIGRvbWFp
bnMgYW5kIGhvc3RpbmcgbW9kZWxzDQ1WaXJ0dWFsIHdvcmxkcyBoYXZlIGEgd2lkZSByYW5nZSBv
ZiBkZXBsb3ltZW50IHBhdHRlcm5zLCBhbmQgcmVxdWlyZSBhIGJyb2FkIHJhbmdlIG9mIHNlcnZp
Y2VzLCB3aXRoIGRpZmZlcmVudCBjb21wdXRhdGlvbmFsIHByb2ZpbGVzLiBXZSB3YW50IHRvIGVu
YWJsZSBwZW9wbGUgdG8gZGVsZWdhdGUgc2VydmljZXMgdG8gYXJiaXRyYXJ5IHNlcnZlcnMuIFRo
aXMgc2hvdWxkIGVuYWJsZSBjbG91ZHMgdG8gaG9zdCBzZXJ2aWNlcywgYW5kIHBlcm1pdCBkZXBs
b3llcnMgdG8gY2hvc2UgIGRlcGxveW1lbnQgbW9kZWxzIHdoaWNoIG1lZXQgdGhlaXIgbmVlZHMu
IA1BYnN0cmFjdGluZyBhd2F5IHNwZWNpZmljIHBpcGVzIA0NVGhpcyBpcyB0aGUgc2luZ2xlIGxh
cmdlc3QgZHJpdmVyLiBXZSB3YW50IHRvIGRpdm9yY2UgdGhlIE9HUFggc3BlY2lmaWNhdGlvbnMg
ZnJvbSB0aGUgY3VycmVudCBMaW5kZW4gTGFiIGV2ZW50IHF1ZXVlIGltcGxlbWVudGF0aW9uLCB0
aGUgVURQIHBpcGVzLCBhbmQgYW55IHNpbmdsZSBhcHByb2FjaCB0byBkZWxpdmVyaW5nIGJpdHMg
dG8gdGhlIGNsaWVudC4gT0dQWCBhc3BpcmVzIHRvIHN1cHBvcnQgdmlydHVhbCB3b3JsZHMgb3Zl
ciBhIHBlcmlvZCBvZiBtdWx0aXBsZSB5ZWFycy4gV2UgYXNzdW1lIHRoYXQgdGhlIHBpcGVzIHRv
IGNsaWVudHMgd2lsbCBldm9sdmUgb3ZlciB0aW1lLiBDcmVhdGluZyBhIHdlYiBzZXJ2aWNlcywg
VVJJIGFkZHJlc3NlZCBhcHByb2FjaCB0byBtYW5hZ2luZyBjb25uZWN0aW9ucyB0byByZWdpb25z
LCBpcyBhIHBvd2VyZnVsIHdheSB0byBkZS1jb3VwbGUgdHJhbnNwb3J0IGNob2ljZXMgZnJvbSBw
cm90b2NvbCBoYW5kbGVycy4gDQ1SZXN0L0NhcHMgc3R5bGUgbW9kZWwgZm9yIGNsaWVudCByZXNv
dXJjZXMNDU9uY2Ugd2Ugd2FudCB0byBtb2RlbCB0aGUgY2xpZW50knMgcmVzb3VyY2VzIHNlcGFy
YXRlIGZyb20gdGhlIGNvbW11bmljYXRpb25zIHBpcGVzIHVzZWQgdG8gYWNjZXNzIHRob3NlIHJl
c291cmNlcywgd2UgYXJlIGZhY2VkIHdpdGggdGhlIHByb2JsZW0gb2YgbmFtaW5nLCBhbmQgYWRk
cmVzc2luZyB0aG9zZSByZXNvdXJjZXMuICBUaGUgY3VycmVudCBjbGllbnQsIG1vc3RseSBhc3N1
bWVzIHRoYXQgaXQgY2FuIHBhcnNlIGZyb20gbWVzc2FnZSB0eXBlIHRvIGRldGVybWluZSB3aGVy
ZSB0aGUgbWVzc2FnZSBzaG91bGQgYmUgcm91dGVkLiANDVRoZSBvdmVyYWxsIGp1c3RpZmljYXRp
b25zIGZvciB1c2luZyBSRVNUIGFwcHJvYWNoZXMgYXJlIGFzIGNvZ2VudCBmb3IgdGhlIGNsaWVu
dCwgYXMgYW55IG90aGVyIHBvcnRpb24gb2YgT0dQLiBUaGUgUkVTVCBtb2RlbCBhZmZvcmRzIGEg
Y29uc2lzdGVudCBhcHByb2FjaCB0byBtb2RlbGluZyByZXNvdXJjZXMgDQ1PdmVyYWxsIGFwcHJv
YWNoDQ1XZSBhcHByb2FjaCB0aGUgb3ZlcmFsbCBkZXNpZ24gYXMgZGVzY3JpYmluZyBhY2Nlc3Mg
dG8gcmVzb3VyY2VzIGhvc3RlZCBieSBjbGllbnRzLiBBcyBtYW55IGNsaWVudHMgYXJlIGluYWNj
ZXNzaWJsZSBmb3IgZnVsbCBodHRwIGFjY2VzcyBmcm9tIHRoZSBzZXJ2aWNlcyB3aGljaCB3aXNo
IHRvIGNvbnRhY3QgdGhlbSwgd2UgZGVzY3JpYmUgdGhlIG92ZXJhbGwgYXBwcm9hY2gsIGluIGEg
d2F5IHdoaWNoIHBlcm1pdHMgZXZlbnRxdWV1ZXMgdG8gYmUgdXNlZCBpbiB0aGUgY3VycmVudCBp
bXBsZW1lbnRhdGlvbiwgYW5kIGFwcHJvYWNoZXMgc3VjaCBhcyByZXZlcnNlLUhUVFAgKFNvbWV0
aW1lcyByZWZlcmVkIHRvIGFzIHJodHRwLCByLWh0dHAgb3IgcHR0aCkgIGluIHRoZSBmdXR1cmUg
d2l0aCBubyBjaGFuZ2VzIHRvIHRoZSBiYXNpYyBhcHByb2FjaC4gKGFuZCBpZGVhbGx5IG5vbmUg
dG8gdGhlIGNvZGUsIGJleW9uZCBzdXBwb3J0aW5nIHItaHR0cCBsaXN0ZW5lcnMuKSANDU5hbWVk
IGNsaWVudCBzaWRlIHJlc291cmNlcw0NVGhlIG1ham9yIGFkZGl0aW9uIHRvIHRoZSBjdXJyZW50
IG1vZGVsIGlzIHRoYXQgb2YgYWRkcmVzc2FibGUgY2xpZW50IHNpZGUgcmVzb3VyY2VzLiBUaGlz
IGVmZmVjdGl2ZWx5IGV4dGVuZHMgdGhlIFJFU1QvIENhcGFiaWxpdGllcyBtb2RlbCB0byBpbnRl
cmFjdGlvbnMgaW52b2x2aW5nIHNlbmRpbmcgZGF0YSB0byB0aGUgY2xpZW50LiBJbnN0ZWFkIG9m
IHNlbmRpbmcgdGhlbSB0byB0aGUgY2xpZW50IGFzIGEgc2luZ2xlIGVuZHBvaW50LCB3ZSBjYW4g
cm91dGUgdGhlIGRhdGEgdG8gc3BlY2lmaWMgZW5kcG9pbnRzIG1hbmFnZWQgYnkgdGhlIGNsaWVu
dC4gQnkgdXNpbmcgdGhlIGJhc2ljIFJFU1QgbW9kZWwgZm9yIG1hbmlwdWxhdGluZyB0aGVzZSBy
ZXNvdXJjZXMsIHdlIGdldCBhIHNpbXBsZSwgd2VsbCBkZWZpbmVkIHNldCBvZiBpbnRlcmFjdGlv
bnMgYmV0d2VlbiBzZXJ2aWNlcyBhbmQgY2xpZW50IHNpZGUgcmVzb3VyY2VzLg0NQSBzaW1wbGUg
ZXhhbXBsZSAoZnJpZW5kc2hpcCkNDVNvLCBpbnN0ZWFkIG9mIGVtYmVkZGluZyBmcmllbmRzaGlw
IGluc2lkZSBhIElNIG1lc3NhZ2UsIG9yIGV2ZW4gaW4gYSBzZXBhcmF0ZSBtZXNzYWdlLCBhbmQg
cmVxdWlyaW5nIHRoZSBjbGllbnQgdG8gcGFyc2UgdGhlIGhlYWRlciBhbmQgdGhlbiByb3V0ZSB0
aGUgbWVzc2FnZSwgd2UgaW5zdGVhZCBkZWZpbmUgYSByZXNvdXJjZSBvbiB0aGUgY2xpZW50LCB3
aGljaCBpcyBhc3NvY2lhdGVkIHdpdGggZnJpZW5kc2hpcCBtZXNzYWdlcy4gVGhpcyByZXNvdXJj
ZSBpcyB0aGVuIHBhc3NlZCB0byB0aGUgc2VydmljZShzKSB3aGljaCBuZWVkIHRvIG1hbmlwdWxh
dGUgdGhlIHJlc291cmNlLiBUaGUgY29tbW9uIGNhc2Ugd2lsbCBiZSB0aGF0IHNlcnZpY2VzIHdp
bGwgcG9zdCBtZXNzYWdlcyB0byB0aGUgY2xpZW50LCBidXQgd2UgZGVmaW5lIHRoZSBtb2RlbCBn
ZW5lcmFsbHkgc28gdGhhdCBzZXJ2aWNlcyBjYW4gaW52b2tlIG5vcm1hbCBSRVNUIHNlbWFudGlj
IG9wZXJhdGlvbnMgb24gdGhlIHJlc291cmNlcy4gDQ1FeHBvc2luZyBjbGllbnQgc2lkZSByZXNv
dXJjZXMgd2l0aCBhbiBldmVudCBxdWV1ZQ0NU2luY2UgdGhlIGNsaWVudCBjYW5ub3QgZGlyZWN0
bHkgZXhwb3NlIGl0cyByZXNvdXJjZXMsIHRoZSBjbGllbnQgcmVsaWVzIG9uIGV2ZW50IHF1ZXVl
cyB0byBmZXRjaCByZXF1ZXN0cyBkZXN0aW5lZCBmb3IgdGhlc2UgcmVzb3VyY2VzIGZyb20gc2Vy
dmljZXMuIFRoaXMgaXMgbWVkaWF0ZWQgdmlhIGEgQ09NRVQgc3R5bGUgZXZlbnQgcXVldWUuIFRo
ZSBjbGllbnQgcG9sbHMgdGhlIHNlcnZpY2UsIGFuZCB3aGVuIHRoZXJlIGFyZSByZXF1ZXN0cyBk
ZXN0aW5lZCBmb3IgaXQsIGl0IGNvbGxlY3RzIHRob3NlIHJlcXVlc3RzIGFuZCByb3V0ZXMgdGhl
bSB0byB0aGUgaGFuZGxlcnMgd2hpY2ggcHJvY2VzcyB0aGVtLiANDQENVGhlIHJlcXVlc3RzIGNv
bnRhaW4gdGhlIHJlc291cmNlIHRoZXkgYXJlIHJvdXRlZCB0bywgYW5kIHRoZSBtZXRob2QgdG8g
YmUgaW52b2tlZCBvbiB0aGUgcmVzb3VyY2UsIGFzIHdlbGwgYXMgdGhlIHBheWxvYWQgb2YgdGhl
IHJlcXVlc3QuIA0NPG1hcD4gDTxrZXk+c2VxdWVuY2U8L2tleT48aW50PnNlcXVlbmNlIG51bWJl
cjwvaW50PiANPGtleT5yZXNvdXJjZTwva2V5PjxzdHJpbmc+cGF0aCBvZiByZXNvdXJjZTwvc3Ry
aW5nPg08a2V5Pm1ldGhvZDwva2V5PjxzdHJpbmc+UE9TVDwvc3RyaW5nPg08a2V5PnBheWxvYWQ8
L2tleT57TExTRCBvZiBwYXlsb2FkfQ08L21hcD4NDUVhY2ggcmVxdWVzdCBjYW4gYmUgcm91dGVk
IGJ5IHRoZSBldmVudCBxdWV1ZSB0byB0aGUgZGVzaXJlZCBoYW5kbGVyLg0NAQ1Ob3RlIHRoZSBz
ZXBhcmF0ZSBldmVudCBxdWV1ZXMgc2hhcmluZyBvbmUgbWFwIG9mIHJlc291cmNlIHRvIGhhbmRs
ZXJzLCBhbmQgZGVsaXZlcmluZyBldmVudHMgdG8gc2hhcmVkIGhhbmRsZXJzLg0NTm93LCBpbiBv
cmRlciB0byBjb21wbGV0ZSB0aGlzIHN0b3J5LCB3ZSBuZWVkIHRvIGRlc2NyaWJlIGhvdyB0aGUg
c2VydmljZXMga25vdyB3aGF0IHJlc291cmNlcyBvbiB0aGUgY2xpZW50IHRoZXkgc2hvdWxkIHBv
c3QgdG8sIGFuZCBob3cgdGhlc2UgcmVzb3VyY2VzIGFyZSBhZGRyZXNzZWQuIA0NQW4gZXZlbnRx
IFVSSQ0NVG8gc3VwcG9ydCBhZGRyZXNzaW5nIGNsaWVudCBzaWRlIHJlc291cmNlIHJlYWNoZWQg
dml0IGV2ZW50IHF1ZXVlcywgd2UgaW50cm9kdWNlIGFuIJNldmVudHE6lCBVUkkuIA0NZXZlbnRx
Oi8vY2xpZW50X2lkQGZxZG5fb2ZfZXZlbnRxX2hvc3Qve3BhdGggdG8gcmVzb3VyY2V9DQ1vcg1l
dmVudHFzOi8vY2xpZW50X2lkQGZxZG5fb2ZfZXZlbnRxX2hvc3Qve3BhdGggdG8gcmVzb3VyY2V9
DQ1Gb3IgZGV0YWlscyBvbiBVUkkgZm9ybWF0LCATIEhZUEVSTElOSyAiaHR0cDovL2VuLndpa2lw
ZWRpYS5vcmcvd2lraS9VUklfc2NoZW1lIiAUaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9V
Uklfc2NoZW1lFSBhbmQgbW9yZSBmb3JtYWxseToNEyBIWVBFUkxJTksgImh0dHA6Ly90b29scy5p
ZXRmLm9yZy9odG1sL3JmYzM5ODYiIBRodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2
FSANDVdlIGFyZSBkZXNjcmliaW5nIGEgc2NoZW1lIJNldmVudHGUIHdpdGggaGllcmFyY2hpY2Fs
IHBhcnQgYnJva2VuIGludG8gdGhlIHRyYWRpdGlvbmFsIJNhdXRob3JpdHmUIGFuZCCTcGF0aJQg
IE91ciBhdXRob3JpdHkgaXMgYWRkcmVzc2VkIGFzIJNjbGllbnRfaWRAZnFkbl9vZiBldmVudHFf
aG9zdJQNDVdoYXQgdGhpcyBzYXlzIGlzIJNmb3IgdGhlIHVuaXF1ZSBjbGllbnQgKGNsaWVudF9p
ZCkgeW91IGNhbiByb3V0ZSB2aWEgYW4gZXZlbnQgcXVldWUgaG9zdGVkIGJ5IHRoZSBob3N0IGxp
c3RlZCBhcyCTZnFkbl9vZl9ldmVudHFfaG9zdJQgd2hpY2ggd2lsbCBiZSBhIGhvc3RuYW1lLiAg
VG8gYWRkcmVzcyB0aGUgc3BlY2ljIHJlc291cmNlLCBvbiB0aGF0IGNsaWVudCwgeW91IG11c3Qg
cHJvdmlkZSB0aGUgcGF0aC4gDQ1UaGUgY2xpZW50X2lkLCBpcyBhIHNob3J0IHRlcm0gdW5pcXVl
IHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNsaWVudCwgZHVyaW5nIHRoaXMgc2Vzc2lvbiB3aXRo
IHRoZSBzZXJ2aWNlcyBjbG91ZC4gVGhpcyBpcyBwcm92aWRlZCB0byBwZXJtaXQgc2V2ZXJhbCBp
bXBvcnRhbnQgb3B0aW9ucy4gRmlyc3QsIGl0IHBlcm1pdHMgdXMgdG8gcGFzcyBhIGNhcGFiaWxp
dHkgd2l0aCBhbiBldmVudHE6IFVSSSB0byBhIHNlcnZpY2Ugd2hpY2ggYWxyZWFkeSBoYXMgYSBj
b25uZWN0aW9uIHRvIHRoZSBjbGllbnQsIGFuZCBhbGxvd3MgdGhlIHRyYW5zcG9ydCBsZXZlbCBz
b2Z0d2FyZSB0byB1bmRlcnN0YW5kIGl0IGFscmVhZHkgaGFzIGEgY29ubmVjdGlvbiB0byB0aGUg
Y2xpZW50LiBJdCBhbHNvIGFsbG93cyBjb3JyZWN0IGJlaGF2aW9yIGluIHRoZSBmYWNlIG9mIGFu
IGF0dGVtcHQgdG8gcmUtZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB0byB0aGUgZXZlbnRxIGhvc3Qs
IGFuZCBmaW5hbGx5LCBpdCBhbGxvd3Mgc2VydmljZXMgdG8gY2hvc2UgKmFueSogZXZlbnQgcXVl
dWUgaXQga25vd3MgYWJvdXQgd2hpY2ggY29ubmVjdHMgdG8gdGhlIGNsaWVudCBmb3IgZGVsaXZl
cmluZyBpdJJzIHJlcXVlc3RzIHRvIHRoZSBjbGllbnQuIFRoaXMgYWxsb3dzIGEgbnVtYmVyIG9m
IHBvdGVudGlhbCBkZXBsb3ltZW50IHBhdHRlcm5zIHdoaWNoIHBlcm1pdCBzY2FsaW5nIG9mIHRo
ZSBjb21wdXRhdGlvbmFsIGZhYnJpYyB3aXRoIG5vIGNoYW5nZXMgdG8gdGhlIGNsaWVudCwgb3Ig
bmVjZXNzYXJpbHkgdGhlIHNlcnZpY2VzLiANDVRoZSBldmVudHFzIHNjaGVtZSwgaXMgaWRlbnRp
Y2FsIHRvIHRoZSBldmVudHEgc2NoZW1lLCB3aXRoIHRoZSBhZGRlZCByZXF1aXJlbWVudCB0aGF0
IHRoZSB1bmRlcnlsaW5nIGV2ZW50IHF1ZXVlIGJlIGltcGxlbWVudGVkIHVzaW5nIGh0dHBzIG9y
IGFuIGVxdWFsbHkgc2VjdXJlIHRyYW5zcG9ydCwgc28gdGhhdCBtZXNzYWdlcyBjYW5ub3QgYmUg
aW50ZXJjZXB0ZWQsIGFuZCB0aGVyZSBpcyBhIGhpZ2ggZGVncmVlIG9mIGNvbmZpZGVuY2UgdGhh
dCB0aGUgaG9zdCBob2xkaW5nIHRoZSBzZXJ2aWNlIGVuZCBvZiB0aGUgZXZlbnRxIGlzIHRoZSBk
ZXNpcmVkIGhvc3QuIA0NUHV0dGluZyBpdCBhbGwgdG9nZXRoZXIgDQ1UbyBhY3R1YWxseSB1c2Ug
dGhpcyBwbHVtYmluZywgd2UgbmVlZCB0byBhc3NvY2lhdGUgdGhlIGNsaWVudCBzaWRlIHJlc291
cmNlIHdpdGggdGhlIHNlcnZpY2Ugd2hpY2ggd2lzaGVzIHRvIHVzZSBpdC4gV2UgaW5jb3Jwb3Jh
dGUgdGhpcyBpbnRvIHRoZSBzZXR1cCBmbG93IG5lZWRlZCB0byB1c2UgdGhlIHJlc291cmNlLiAg
VGhlIGNsaWVudC92aWV3ZXIgcmVxdWVzdHMgYSBjYXBhYmlsaXR5IGZyb20gYSBzZWVkIGNhcCBp
biB0aGUgc2VydmljZXMgbmV0d29yay4gKGZyb20gaW5pdGlhbCBsb2dpbiwgb3IgdHJhbnNpdGl2
ZWx5IGZyb20gb3RoZXIgY2FwcykgVGhlIHNlcnZpY2UgcmV0dXJucyB3aXRoIGEgVVJJIG9mIHRo
ZSBzZXJ2aWNlIHNpZGUgcmVzb3VyY2UuIFRoZSBjbGllbnQgdGhlbiBjcmVhdGVzIGEgY2xpZW50
IHNpZGUgcmVzb3VyY2UgKG9yIHJlc291cmNlcykgIGZvciB0aGUgc2VydmljZSB0byB1c2UsIGFu
ZCBwYXNzZXMgdGhlbSB1cCB0byB0aGUgc2VydmljZSwgd2hpY2ggdGhlbiBiZWdpbnMgdG8gaXNz
dWUgcmVxdWVzdHMgYWdhaW5zdCB0aGVzZSByZXNvdXJjZXMuDQ1DbGllbnQvVmlld2VyIGxvZ3Mg
aW50byBhIHNlcnZpY2UgYW5kIGFjcXVpcmVzIG9uZSBvciBtb3JlIHNlZWRjYXBzDVRoZSBjbGll
bnQgcmVxdWVzdHMgYSBzZXQgb2YgY2FwYWJpbGl0aWVzIGZyb20gdGhlIHNlZWRjYXBzLiANT25l
IG9yIG1vcmUgb2YgdGhlc2UgY2FwYWJpbGl0eSByZXF1ZXN0cyBpbmNsdWRlcyBhbiBldmVudCBx
dWV1ZQ1UaGUgY2xpZW50IGVzdGFibGlzaGVzIHRoZSBldmVudCBxdWV1ZXMsIHBvc3RpbmcgaXRz
IJNjbGllbnRfaWSUIHRvIHRoZSBldmVudCBxdWV1ZSBob3N0LiANWmVybyBvciBtb3JlIG9mIHRo
ZSBjYXBhYmlsaXRpZXMgcmVxdWVzdGVkIHVzZSBjbGllbnQgc2lkZSByZXNvdXJjZXMuIEZvciB0
aGVzZSBjYXBhYmlsdGllcywgdGhlIGNsaWVudCBjcmVhdGVzIGFuZCByZWdpc3RlcnMgYSBjbGll
bnQgc2lkZSByZXNvdXJjZSwgaW4gdGhlIGZvcm0gb2YgYSBjbGllbnQgY2FwYWJpbGl0eSwgY29t
cG9zZXMgYSBVUkkgZm9yIHRoZSByZXNvdXJjZXMsIGFuZCBpbmZvcm1zIHRoZSBzZXJ2aWNlIG9m
IHRoZSBVUklzIG9mIHRoZSBjbGllbnQgc2lkZSByZXNvdXJjZXMuIA1UaGUgc2VydmljZSBzaWRl
IHNlcnZpY2UgYmVnaW5zIHBvc3RpbmcgcmVxdWVzdHMgb24gdGhlIGFzc29jaWF0ZWQgZXZlbnQg
cXVldWVzDVRoZSBjbGllbnQgcm91dGVzIHRoZSByZXF1ZXN0cyB0byB0aGUgcmVnaXN0ZXJlZCBo
YW5kbGVycy4gDVdlIGZsb3cgYSByZXNwb25zZSBmcm9tIHRoZSBoYW5kbGVyIGJhY2sgdG8gdGhl
IGludm9rZXINDUZyb20gbG9naW4gdG8gYSBjbGllbnQgY2FwIGRlbGl2ZXJlZCBtZXNzYWdlIA1B
IHNtYWxsIHdvcmtlZCBleGFtcGxlLiBUaGUgYWN0dWFsIHNlcnZpY2UgaW52b2x2ZWQsIGFuZCB0
aGUgZGVwbG95bWVudCBkZXRhaWxzIG9mIHRoZSBzZXJ2aWNlIGFyZSBwdXJlbHkgbm90aW9uYWwu
IERvIG5vdCBmb2N1cyBvbiB0aGUgc3BlY2lmaWMgc2VydmljZSBtZXNzYWdlcywgYnV0IHRoZSBy
b3V0aW5nIGFuZCBzZXR1cCBmbG93cyB3aGljaCBlbmFibGUgdGhlIG1lc3NhZ2VzIHRvIGZsb3cu
IA0NDQ0NDQ0NDQ1Mb2dpbi9BdXRoIGluaXRpYWwgY2FwIGdyYW50cw0NAQ0NVGhpcyBpcyBwcmV0
dHkgbXVjaCBPR1AgYnVzaW5lc3MgYXMgdXN1YWwuIFRoZSBjbGllbnQgY29ubmVjdHMgdG8gdGhl
IGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UsIGFuZCBnZXRzIGEgc2VlZGNhcCwgb24gYW4gQWdlbnQg
RG9tYWluIFNlcnZpY2UgKG4sIG9uZSBvZiBtYW55KSANDVNldHRpbmcgdXAgYW4gZXZlbnQgcXVl
dWUNDQENDVByZXR0eSBzdHJhaWdodCBmb3J3YXJkLiBXZSBjcmVhdGUgYSBoYW5kbGVyIG9uIHRo
ZSBjbGllbnQsIHdoaWNoIGNhbGxzIHRoZSBjYXAgdGhlIGNsaWVudCBnb3QgZnJvbSB0aGUgbG9n
aW4gc3RlcC4gVGhlIEFEIGhhcyBjcmVhdGVkIGFuIGV2ZW50IHF1ZXVlLCB3aGljaCB3ZSBjYWxs
LiANDVRoZXJlIGlzIG9uZSBhZGRpdGlvbmFsIHRpZGJpdCB0aGF0IGZsb3dzIGF0IHRoaXMgcG9p
bnQsIHdoaWNoIGlzIHRoYXQgd2UgZ2V0IHRoZSBIb3N0IGVuZCBvZiBvdXIgY2Fwcy4gVGhpcyBm
ZXRjaGVzIGZyb20gdGhlIGhvc3Qgc2lkZSBvZiB0aGUgYWdlbnQgZG9tYWluIGV2ZW50IHF1ZXVl
LCB3aGljaCB3ZSB3aWxsIHVzZSBpbiBvdXIgVVJJcy4gDQ08bWFwPg08a2V5Pmhvc3RfZW5kX2Nh
cDwva2V5Pg08c3RyaW5nPmZ1bGx5LnF1YWxpZmllZC5kb21haW4uY29tPC9jb20+DTwvbWFwPg0N
V2lyaW5nIHVwIHRoZSBjbGllbnQgc2lkZSByZXNvdXJjZSBvZiBhIHNlcnZpY2UNDVRoZSBuZXh0
IHN0ZXAgaXMgdGhlIG1ham9yIGFkZGl0aW9uIHRvIHRoZSBzZXF1ZW5jZS4gV2UgdGFrZSB0aGUg
Y2FwICBmb3IgYSBzZXJ2aWNlIHdlIHJlcXVlc3RlZCBlYXJsaWVyLCBhbmQgdGhlbiBjcmVhdGUg
dGhlIGNsaWVudCBzaWRlIGhhbmRsZXIsIGFzc29jaWF0ZSBpdCB3aXRoIGEgY2xpZW50IHNpZGUg
cmVzb3VyY2UsIGFuZCBwYXNzIHRoYXQgcmVzb3VyY2UgdG8gdGhlIHNlcnZpY2Ugc2lkZSBjYXAN
DQ0BDQ08bWFwPg08a2V5Pm9yZy5vZ3B4LmZyaWVuZHNoaXAuY2xpZW50X2xpc3RlbmVyPC9rZXk+
DTxzdHJpbmc+ZXZlbnRxOi8vNGEwZTBlMDktZDNlMS00YWI4LWJjM2YtODc1ZTBmODJkOTc1QGFk
aG9zdC50ZXN0Lm9yZy9jY2Fwcy9lMTMyYzRlYS01NWM4LTRiZTMtYTc3ZS0zZWM5MWVmNjNiN2Ev
ZnNsaXN0bmVyPC9zdHJpbmc+DTwvbWFwPg0NDUZsb3dpbmcgYSBtZXNzYWdlIHRvIHRoZSBoYW5k
bGVyOg0NRmluYWxseSwgd2l0aCBhbGwgdGhlIGJpdHMgaW4gcGxhY2UsIHdlIGNhbiBzZW5kIGFu
IGV2ZW50LCBhbmQgZXhwZWN0IGl0IHRvIGdldCBwaWNrZWQgdXAgYXQgdGhlIGZhciBlbmQgYnkg
dGhlIGhhbmRsZXIuIA0NDQENDU91ciBoeXBvdGhldGljYWwgbWVzc2FnZSBpczoNPG1hcD4NPGtl
eT5yZXF1ZXN0X3R5cGU8L2tleT4NPHN0cmluZz5mcmllbmRzaGlwIHJlcXVlc3Q8L3N0cmluZz4N
PGtleT51c2VyIHNvY2lhbCBuYW1lPC9rZXk+DTxzdHJpbmc+IEhpcHBvIFRoZSBBdmF0YXJpYW48
L3N0cmluZz4NPGtleT51c2VyIHV1aWQ8L2tleT4NPHN0cmluZz40NTA5OTcxYi1iMmYzLTQzYTkt
YmM3MS0xNzM2Yzk3MWE4Zjc8L3N0cmluZz4NPGtleT5tZXNzYWdlPC9rZXk+DTxzdHJpbmc+UGxl
YXNlIGJlIG15IGZyaWVuZCwgd2UgbWV0IGF0IHRoZSBoaXBwbyB3YWxsb3cgbGFzdCB3ZWVrDTwv
c3RyaW5nPg08L21hcD4NDQ1TbywgdGhlIEZyaWVuZHNoaXAgc2VydmljZXMgdGFrZXMgdGhhdCBw
YXlsb2FkLCBhbmQgdGhlIFVSSSBvZiB0aGUgY2xpZW50knMgcmVzb3VyY2UuIEl0IGlzIG91dCBv
ZiBzY29wZSwgaG93IGl0IHBvc3RzIHRoZSByZXF1ZXN0IHRvIHRoZSBzZXJ2aWNlIGVuZCBvZiB0
aGUgZXZlbnQgcXVldWUuIChiZWluZyBhIGRlcGxveWVyIGlzc3VlLCBub3QgcGFydCBvZiB0aGUg
cHVibGljIHNwZWMpIEl0IHBhc3NlcyB0aGUgVVJJLCBhbmQgdGhlIHBheWxvYWQsIGFuZCBpdCBn
ZXRzIHRvIHRoZSBpbnB1dCBob3BwZXIgb2YgdGhlIGV2ZW50IHF1ZXVlLCBhbG9uZyB3aXRoIHRo
ZSBtZXRob2QgYmVpbmcgaW52b2tlZC4gKGluIHRoaXMgY2FzZSCTUE9TVJQpIFRoZSBldmVudCBx
dWV1ZSB0aGVuIHBhY2thZ2VzIHVwIHRoZSBtZXNzYWdlIGFzIHBhcnQgb2YgdGhlIGFycmF5IG9m
IG1lc3NhZ2VzIGl0IGhhcyBib3VuZCB0byB0aGUgY2xpZW50Og0NPGFycmF5Pg0uDS4NPG1hcD4N
PGtleT5tZXRob2Q8L2tleT48c3RyaW5nPlBPU1Q8L3N0cmluZz4NPGtleT5zZXF1ZW5jZSBpZDwv
a2V5PjxpbnRlZ2VyPjk4NzI2PC9pbnRlZ2VyPg08a2V5PnJlc291cmNlPC9rZXk+DTxzdHJpbmc+
L2NjYXBzL2UxMzJjNGVhLTU1YzgtNGJlMy1hNzdlLTNlYzkxZWY2M2I3YS9mc2xpc3RuZXI8L3N0
cmluZz4NPGtleT5wYXlsb2FkPC9rZXk+DTxtYXA+DTxrZXk+cmVxdWVzdF90eXBlPC9rZXk+DTxz
dHJpbmc+ZnJpZW5kc2hpcCByZXF1ZXN0PC9zdHJpbmc+DTxrZXk+dXNlciBzb2NpYWwgbmFtZTwv
a2V5Pg08c3RyaW5nPiBIaXBwbyBUaGUgQXZhdGFyaWFuPC9zdHJpbmc+DTxrZXk+dXNlciB1dWlk
PC9rZXk+DTxzdHJpbmc+NDUwOTk3MWItYjJmMy00M2E5LWJjNzEtMTczNmM5NzFhOGY3PC9zdHJp
bmc+DTxrZXk+bWVzc2FnZTwva2V5Pg08c3RyaW5nPlBsZWFzZSBiZSBteSBmcmllbmQsIHdlIG1l
dCBhdCB0aGUgaGlwcG8gd2FsbG93IGxhc3Qgd2Vlaw08L3N0cmluZz4NPC9tYXA+DTwvbWFwPg08
L2FycmF5Pg0NRmxvd2luZyBhIHJlc3BvbnNlDU5vIHN1Y2ggcmVzb3VyY2U6DQ1JZiB0aGVyZSBp
cyBubyBoYW5kbGVyIGF0IHRoZSByZXNvdXJjZSBsaXN0ZWQgaW4gdGhlIHJlcXVlc3QgdGhlIGV2
ZW50IHF1ZXVlIGhhbmRsZXIgZmxvd3MgYmFjayBhIDQwNCByZXNwb25kcyBwZXIgdHJhZGl0aW9u
YWwgaHR0cDsNDTxhcnJheT4NLi4NPG1hcD4NPGtleT5zZXF1ZW5jZSBudW1iZXI8L2tleT48aW50
ZWdlcj45ODcyNjwvaW50ZWdlcj4NDTxrZXk+aHR0cF9yZXNwb25zZTwva2V5Pg08bWFwPg08a2V5
PnJlc3BvbnNlIGNvZGU8L2tleT4NPGludGVnZXI+NDA0PC9pbnRlZ2VyPiANPGtleT5wYXlsb2Fk
PC9rZXk+DTxzdHJpbmc+DU5vIHJlc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleQ08L3N0
cmluZz4NPC9tYXA+DTwvbWFwPg08L2FycmF5Pg0NDVN1Y2Nlc3NmdWwgcmVzcG9uc2VzDQ1XaGVu
IHRoZSBmcmllbmRzaGlwIGhhbmRsZXIgaGFzIGFjY2VwdGVkIHRoZSByZXF1ZXN0LCBpdCBjYW4g
cG9zdCBhIHJlc3BvbnNlLiBUaGlzIGNhbiwgb2YgY291cnNlLCBpbmNsdWRlIHNpbXBseSBhY2Nl
cHRpbmcgdGhlIHJlcXVlc3QsIGFuZCB0aGVuIHBvc3RpbmcgYW4gk2FjY2VwdCBmcmllbmRzaGlw
lCBtZXNzYWdlIHRvIHRoZSBtYWluIGNhcCwgb3IgYWNjZXB0aW5nIGl0IGRpcmVjdGx5LCBkZXBl
bmRpbmcgb24gdGhlIGRlc2lnbiBvZiB0aGUgZnJpZW5kc2hpcCBzZXJ2aWNlLiBXZSB3aWxsIGRv
IGJvdGgsIGZvciBpbGx1c3RyYXRpdmUgcHVycG9zZXMNDVNpbXBsZSBvaw0NRm9yIHRoZSBzaW1w
bGUsIGFjY2VwdGVkIHJlc3BvbnNlLCB0aGUgaGFuZGxlciB3aWxsIHBvc3QgYmFjayB0byB0aGUg
ZXZlbnQgcXVldWUgYW4gT0suIChUaGlzIGlzIGFuIGludGVybmFsIGZsb3csIG5vdCBwYXJ0IG9m
IHRoZSBPR1BYIGFyY2hpdGVjdHVyZSkgYW5kIHRoZSBldmVudCBxdWV1ZSB3aWxsIHRoZW4gcGFz
cyBvbiB0aGUgcmVzcG9uc2UgdG8gdGhlIGludm9rZXIuIA0NAQ1TdHJ1Y3R1cmFsbHksIHRoaXMg
aXMgdmVyeSBzaW1pbGFyIHRvIHRoZSByZXF1ZXN0LiBUaGUgZ2V0KCkgY2FsbCB3aWxsIHBhc3Mg
dXAgcmVzcG9uc2VzIGZvciBoYW5kbGluZyBieSB0aGUgc2VydmljZSBzaWRlIGV2ZW50IHF1ZXVl
LiANDTxhcnJheT4NLi4NPG1hcD4NPGtleT5zZXF1ZW5jZSBudW1iZXI8L2tleT4NPGludGVnZXI+
OTg3MjY8L2ludGVnZXI+DQ08a2V5Pmh0dHBfcmVzcG9uc2U8L2tleT4NPG1hcD4NPGtleT5yZXNw
b25zZSBjb2RlPC9rZXk+DTxpbnRlZ2VyPjIwMDwvaW50ZWdlcj4gDTxrZXk+cGF5bG9hZDwva2V5
Pg08L21hcD4NPC9tYXA+DTwvYXJyYXk+DQ1QYXNzaW5nIGJhY2sgY29udGVudA0NVGhlIGZpbmFs
IGNhc2UsIGlzIGFjdHVhbGx5IHBhc3NpbmcgYmFjayBjb250ZW50IG9uIGEgcmVwbHkuIFRoaXMg
bWVyZWx5IGFkZHMgIHRoZSBwYXlsb2FkDTxhcnJheT4NLi4NPG1hcD4NPGtleT5zZXF1ZW5jZSBu
dW1iZXI8L2tleT4NPGludGVnZXI+OTg3MjY8L2ludGVnZXI+DQ08a2V5Pmh0dHBfcmVzcG9uc2U8
L2tleT4NPG1hcD4NPGtleT5yZXNwb25zZSBjb2RlPC9rZXk+DTxpbnRlZ2VyPjIwMDwvaW50ZWdl
cj4gDTxrZXk+cGF5bG9hZDwva2V5Pg08bWFwPg08a2V5PnJlcXVlc3RfdHlwZTwva2V5Pg08c3Ry
aW5nPmZyaWVuZHNoaXAgYWNjZXB0PC9zdHJpbmc+DTxrZXk+dXNlciBzb2NpYWwgbmFtZTwva2V5
Pg08c3RyaW5nPkhhcHB5IFNvbmdiaXJkPC9zdHJpbmc+DTxrZXk+dXNlciB1dWlkPC9rZXk+DTxz
dHJpbmc+NDUwOTk3MWItZmZhMy00M2E5LTE3NDgtMTczNmM5NzhmYTNlPC9zdHJpbmc+DTxrZXk+
bWVzc2FnZTwva2V5Pg08c3RyaW5nPlRoYW5rIHlvdS4gSZJkIGxvdmUgdG8gYmUgZnJpZW5kcy4g
DTwvc3RyaW5nPg08L21hcD4NPC9tYXA+DTwvYXJyYXk+DQ1UaGUgb3ZlcmFsbCBwYXR0ZXJuIGFu
ZCBvdGhlciBVUklzLi4gDVRoZSBvdmVyYWxsIHBhdHRlcm4gaXMgaW50ZW5kZWQgdG8gcHJvdmlk
ZSBhIGZyYW1ld29yayBmb3IgaGFuZGxpbmcgbm90IGp1c3QgZXZlbnRxOiBzY2VtZSBVUklzLCBi
dXQgYW55IFVSSSB3aGljaCB3aWxsIHN1Y2Nlc3NmdWxseSBmbG93IHRoZSBkYXRhIGJldHdlZW4g
dGhlIHR3byBzZXJ2aWNlcy4gRm9yIHRoaXMgdG8gd29yaywgIHRoZSBiYXNpYyBwYXR0ZXJuLCBv
ZiBzZXR0aW5nIGEgY2xpZW50IHNpZGUgY2FwIG5lZWRzIHRvIGtlZXAgaW4gbWluZCB0aGF0IHRo
ZSCTZXZlbnRxL2V2ZW50cXOUIHNjaGVtZSBpcyBub3QgdGhlIG9ubHkgVVJJIHdoaWNoIG1pZ2h0
IGJlIHBhc3NlZCBpbiB0aGUgZnV0dXJlLiANDVNlY3VyaXR5IENvbnNpZGVyYXRpb25zDQ1FdmVu
dCBxdWV1ZXMgZXhwb3NlIGNsaWVudCBzaWRlIHJlc291cmNlcyB0byBtZXNzYWdlcyBmcm9tIHNl
cnZlcnMuIFRoZSBVUkkgZm9yIGV2ZW50cSBwcm92aWRlcyByb3V0aW5nIHRvIHRoZXNlIHJlc291
cmNlcy4gVGhpcyBleHBvc2VzIHRoZXNlIHJlc291cmNlcyB0byBhIG51bWJlciBvZiBwb3NzaWJs
ZSBhdHRhY2tzLiANVGhlIHVzZSBvZiBjYXBhYmlsaXRpZXMsIGFuZCB0aGUgbGltaXRhdGlvbiB0
aGF0IGluIG9yZGVyIHRvIGFjY2VzcyBhIGNsaWVudCBzaWRlIGNhcGFiaWxpdHksIG9uZSBoYXMg
dG8gaGF2ZSBhY2Nlc3MgdG8gdGhlIGhvc3Qgc2lkZSBvZiBhbiBldmVudCBxdWV1ZSwgZWxpbWlu
YXRlcyBtb3N0IG9mIHRoZSBwb3NzaWJsZSBhdHRhY2tzLiAgDQ1UaGUgY3VycmVudCBjYXBhYmls
aXRpZXMgc3BlY2lmaWNhdGlvbiB1c2VzIGEgMTI4IGJpdCBVVUlELCBnZW5lcmF0ZWQgZm9yIGVh
Y2ggc2Vzc2lvbiwgZm9yIGVhY2ggY2FwYWJpbGl0eSwgdG8gbWFrZSB0aGUgcmVzb3VyY2UgcG9y
dGlvbiBvZiB0aGUgY2FwYWJpbGl0eSBlc3NlbnRpYWxseSB1bi1ndWVzc2FibGUuICBUaGlzIHJl
cXVpcmVzIGNhcmUgaW4gcGFzc2luZyBhcm91bmQgY2FwYWJpbGl0aWVzLCBhcyBpZiB0aGV5IGFy
ZSBwYXNzZWQgaW4gcGxhaW50ZXh0LCB0aGV5IHdvdWxkIGJlIHN1YmplY3QgdG8gc25pZmZpbmcs
IGFuZCBpZiBwYXNzZWQgaW4gb3BlbiBzZXNzaW9ucywgc3VjaCBhcyBodHRwLCB0aGV5IHdvdWxk
IGJlIHZ1bG5lcmFibGUgdG8gbWFuIGluIHRoZSBtaWRkbGUgYXR0YWNrcy4gDQ1Db250cm9sIG9m
IHRoZSBzZXJ2aWNlcyBzaWRlIGVuZHBvaW50IG9mIGV2ZW50IHF1ZXVlcyBwcm92aWRlcyBhIHNl
cGFyYXRlIG1lYW5zIG9mIGxpbWl0aW5nIHRoZSBzZWN1cml0eSBpc3N1ZXMuIE5vdGhpbmcgZGVz
Y3JpYmVkIGhlcmUgZGVmaW5lcyBob3cgdGhlIGhvc3QgZW5kIG9mIGFuIGV2ZW50IHF1ZXVlIGlz
IGV4cG9zZWQgdG8gc2VydmljZXMuIERlcGVuZGluZyBvbiB0aGUgaG9zdCBpbXBsZW1lbnRhdGlv
biwgdGhlIHJlc291cmNlIGNvdWxkIGJlIGFjY2Vzc2libGUgYnJvYWRseSwgb3Igb25seSB0byBw
cm9ncmFtcyBydW5uaW5nIGluIHRoZSBhZGRyZXNzIHNwYWNlIG9mIHRoZSBldmVudCBxdWV1ZS4g
SWYgdGhlIHJlc291cmNlIGlzIG1hZGUgYXZhaWxhYmxlIGJyb2FkbHksIHRoZSBjYXBhYmlsaXR5
IGRlc2lnbiBsaW1pdHMgdGhlIGV4cG9zdXJlIG9mIHRoZSByZXNvdXJjZSB0byBtZXNzYWdlcyBh
aW1lZCBhdCB0aGUgYWN0dWFsbHkgcmVzb3VyY2UsIGJ1dCBvcGVucyB1cCB0aGUgZXZlbnQgcXVl
dWUgaXRzZWxmIGFzIGEgdmVoaWNsZSBmb3IgZGVuaWFsIG9mIHNlcnZpY2UgYXR0YWNrcy4gDQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAlCAAAJggAACcIAAA+CAAAcQgAAHIIAACVCAAAlggAAJcI
AAClCAAApggAAKgIAAC+CAAAzQgAANQIAADcCAAA6QgAAOoIAABNCQAA4AkAAOEJAAAFCwAADQsA
AH8LAACECwAAwQsAAB0MAAAeDAAASA0AAHINAAB/DQAAgA0AANQNAAALDgAAug4AALwOAAACDwAA
Aw8AAKIPAACoDwAA6Q8AAOoPAAAjEAAALBAAAEEQAAB+EAAAlxAAAMoQAADLEAAA4BEAABYSAAAX
EgAAWBIAAFkSAABaEgAA4RIAAPz4/Pj88Pzl8Nzw/Nj82PzUzca/xvy6/Lr8tvzUttSv1Kunq9TY
p9Sn1Kejp9Sn1Kef1J+nm5SQAAAAAAYWaP5BCwAADBVoDFUlABZoDFUlAAAGFmjjHZcAAAYWaINq
/wAABhZoDFUlAAAGFmjULlMAAAYWaHYiLgAADBVog2r/ABZog2r/AAAGFmiobZkAAAkWaPp+igA1
CIEMFWj6fooAFmjjHZcAAAwVaPp+igAWaPskNwAADBVoCnL8ABZoCnL8AAAGFmgKcvwAAAYWaL1C
5wAAEBVodyd3ABZo+n6KADBKEgAAFQIIgQNqAAAAAAYIARZo+n6KAFUIAQ8DagAAAAAWaPp+igBV
CAEGFmgGQVoAAAYWaPp+igA4AAYAAAEIAAACCAAAJwgAAD4IAAA/CAAAQAgAAFAIAABxCAAApwgA
AKgIAAC/CAAAzAgAAM0IAADbCAAA6QgAAOoIAADhCQAA4gkAAJ8KAACgCgAAbwsAAHALAAAeDAAA
HwwAADIMAAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAPUAAAAAAAAAAAAAAAD1AAAAAAAAAAAA
AAAA+gAAAAAAAAAAAAAAAPUAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAPoA
AAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAPoAAAAAAAAAAAAAAAD6AAAAAAAA
AAAAAAAA+gAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAADrAAAAAAAAAAAAAAAA5gAAAAAAAAAAAAAA
AOEAAAAAAAAAAAAAAADhAAAAAAAAAAAAAAAA4QAAAAAAAAAAAAAAAOEAAAAAAAAAAAAAAADhAAAA
AAAAAAAAAAAA4QAAAAAAAAAAAAAAAOEAAAAAAAAAAAAAAADhAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAQAAGdk+yQ3AAAEAABnZPp+igAABAAAZ2QKcvwAAAQDAGdkCnL8AAAEFwBn
ZPp+igAABBYAZ2T6fooAABkABgAAeUkAAP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAgEBATIMAAByDAAABw0AAEgNAAByDQAAfw0AAIANAADUDQAA1Q0AABwOAAAd
DgAAvA4AAAMPAAAEDwAAog8AAOoPAADrDwAAQRAAAMoQAADLEAAAMxEAAK0RAADgEQAA9wAAAAAA
AAAAAAAAAPcAAAAAAAAAAAAAAAD3AAAAAAAAAAAAAAAA9wAAAAAAAAAAAAAAAPIAAAAAAAAAAAAA
AADtAAAAAAAAAAAAAAAA6AAAAAAAAAAAAAAAAOgAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAA1wAA
AAAAAAAAAAAAANIAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAA0gAAAAAAAAAAAAAAANIAAAAAAAAA
AAAAAADKAAAAAAAAAAAAAAAA0gAAAAAAAAAAAAAAANIAAAAAAAAAAAAAAADKAAAAAAAAAAAAAAAA
1wAAAAAAAAAAAAAAAMIAAAAAAAAAAAAAAADCAAAAAAAAAAAAAAAAwgAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAIAAAKJgELRgwAZ2SDav8ACAAACiYAC0YMAGdkCnL8AAAEEABnZNQuUwAACAAAD4RoAV6E
aAFnZNQuUwAIAAAKJgALRgwAZ2S9QucAAAQAAGdkCnL8AAAEAABnZINq/wAABAMAZ2QKcvwACAAA
CiYAC0YLAGdkCnL8AAAW4BEAABYSAAAXEgAAWRIAAFoSAACbEwAAvBMAAL0TAACtFQAArhUAANkV
AADaFQAAERcAABIXAADGFwAAxxcAANgXAADZFwAAzxkAANAZAADsGQAA7RkAAPcAAAAAAAAAAAAA
AADyAAAAAAAAAAAAAAAA7QAAAAAAAAAAAAAAAOgAAAAAAAAAAAAAAADjAAAAAAAAAAAAAAAA3gAA
AAAAAAAAAAAAANkAAAAAAAAAAAAAAADZAAAAAAAAAAAAAAAA8gAAAAAAAAAAAAAAAN4AAAAAAAAA
AAAAAADUAAAAAAAAAAAAAAAA1AAAAAAAAAAAAAAAAM8AAAAAAAAAAAAAAADPAAAAAAAAAAAAAAAA
2QAAAAAAAAAAAAAAAMoAAAAAAAAAAAAAAADFAAAAAAAAAAAAAAAAxQAAAAAAAAAAAAAAAMUAAAAA
AAAAAAAAAADAAAAAAAAAAAAAAAAAuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAZ2TCO7AA
AAQGAGdkwjuwAAAEAABnZOMdlwAABAMAZ2TCO7AAAAQAAGdkjAKDAAAEAABnZJMD6AAABAAAZ2S9
QucAAAQGAGdkvULnAAAEAABnZNQuUwAABAAAZ2QMVSUAAAQGAGdk1C5TAAAEAABnZPskNwAIAAAK
JgALRgwAZ2QKcvwAABXhEgAAmhMAAJsTAAC8EwAADxUAAKwVAACtFQAA2BUAANkVAACYFgAAEBcA
ABEXAADFFwAAxhcAAMcXAABVGQAAzhkAAM8ZAADRGwAA6hsAAOwbAAD7GwAAbhwAAI0cAADqHAAA
9R0AAPYdAACMHwAAjR8AAI4fAACPHwAAkB8AABsgAAAcIAAAIiEAACMhAAAkIQAAlSEAAJYhAABB
IgAAQiIAAIciAACmIgAAtiIAALciAAC4IgAA/PXx6vzq8ebi3tfTzOrIxMDEvMS4vLS8tLi0rbSl
oZ20l4qXhJeEnYB8gIRzABAVaPV+JgAWaPV+JgAwShMAAAYWaE8nsAAABhZo0TLQAAAKFmjRMtAA
MEoTAAAZA2pWZAAAFWhBVgUAFmjRMtAAMEoTAFUIAQoWaEFWBQAwShMAAAYWaEFWBQAABhZo0zZy
AAAPA2rXAAAAFmjRMtAAVQgBDBVoHEF3ABZoHEF3AAAGFmgcQXcAAAYWaNlnaAAABhZoNj6EAAAG
Fmg7Cz8AAAYWaMI7sAAABhZo4x2XAAAMFWiMAoMAFmiMAoMAAAYWaIwCgwAADBVokwPoABZokwPo
AAAGFmiRftYAAAYWaJMD6AAABhZohTV8AAAMFWi9QucAFmi9QucAAAYWaL1C5wAADBVo1C5TABZo
1C5TAAAGFmgtd1sALe0ZAADMGwAAzRsAAOsbAADsGwAA9h0AAPcdAAAqHgAAKx4AAI0fAACOHwAA
kB8AABwgAAAdIAAAJCAAAFMgAACIIAAAryAAANMgAADaIAAA2yAAACEhAAAiIQAAJCEAAJYhAACX
IQAAQSIAAPoAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA9QAAAAAAAAAAAAAAAPoAAAAAAAAAAAAA
AAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAADrAAAAAAAAAAAAAAAA6wAA
AAAAAAAAAAAAAOsAAAAAAAAAAAAAAADrAAAAAAAAAAAAAAAA6wAAAAAAAAAAAAAAAOsAAAAAAAAA
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
BhZoh2iCAAAGFmjiOlcAAAYWaIQ1tgAABhZoVFIQAAAMFWiENbYAFmiENbYAAA8DaivpAAAWaIQ1
tgBVCAEALRk1AAAaNQAAGzUAAD01AAA+NQAAuDUAALk1AAC6NQAAvDUAAL01AADaNQAA4DUAAPg1
AAAcNgAAODYAAF42AABzNgAAqTYAALw2AAD+NgAACDcAAA83AAAQNwAAETcAAO44AADvOAAA+gAA
AAAAAAAAAAAAAPUAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAA6wAAAAAAAAAAAAAAAOsAAAAAAAAA
AAAAAADrAAAAAAAAAAAAAAAA6wAAAAAAAAAAAAAAAOsAAAAAAAAAAAAAAADmAAAAAAAAAAAAAAAA
5gAAAAAAAAAAAAAAAOYAAAAAAAAAAAAAAADmAAAAAAAAAAAAAAAA5gAAAAAAAAAAAAAAAOYAAAAA
AAAAAAAAAADmAAAAAAAAAAAAAAAA4QAAAAAAAAAAAAAAAOEAAAAAAAAAAAAAAADhAAAAAAAAAAAA
AAAA4QAAAAAAAAAAAAAAAOEAAAAAAAAAAAAAAADhAAAAAAAAAAAAAAAA4QAAAAAAAAAAAAAAAOEA
AAAAAAAAAAAAAADcAAAAAAAAAAAAAAAA4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAGdk9TkO
AAAEAABnZC9BLQAABAAAZ2RUUhAAAAQAAGdkh2iCAAAEBgBnZIdoggAABAAAZ2SBbPsAAAQDAGdk
4jpXAAAZRzgAAO44AADvOAAAADsAAAE7AAAJOwAACjsAAAs7AAAeOwAALzsAADA7AAAxOwAAMzsA
AE87AABuOwAAgDsAAJ87AAC2OwAAtzsAAL47AADIOwAA3DsAAPs7AAD8OwAALTwAADM8AAA0PAAA
TDwAAFg8AACuPAAArzwAALA8AADEPAAAxTwAAMY8AAAxPQAA1z0AAAc+AAAIPgAAEj4AABM+AADv
PgAA8D4AAHo/AACBPwAA+fPq8+Tb19PPyNPP08/Tz9PPv7mzqrO5pLmknqSV05HPitOGkdORhpF+
enEAABAVaE412AAWaJF0NQAwShMAAAYWaJF0NQAADwNqcAABABZokXQ1AFUIAQYWaExlMgAADBVo
TGUyABZoTGUyAAAGFmhVcbAAABAVaE412AAWaGEvtAAwShMAAAoWaBUzswAwShMAAAoWaGEvtAAw
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
H0QAANpEAACeRQAAn0UAADZHAAA3RwAAeUkAAPoAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAA
AAAAAAAAAAAAAPoAAAAAAAAAAAAAAAD6AAAAAAAAAAAAAAAA+gAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAZ2QWXOUAAAYs
ADGQaAEfsNAvILDgPSGwCAcisAgHI5CgBSSQoAUlsAAAF7DQAhiw0AIMkNACAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcA
AABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAANDJ6nn5us4RjIIAqgBLqQsCAAAAFwAAAA8AAABkAHcAbABAAHUAcwAuAGkAYgBt
AC4AYwBvAG0AAADgyep5+brOEYyCAKoAS6kLRAAAAG0AYQBpAGwAdABvADoAZAB3AGwAQAB1AHMA
LgBpAGIAbQAuAGMAbwBtAAAAeViB9Dsdf0ivLIJdxIUnYwAAAAClqwAAf2MAAEQAZAAAAAAAAAAI
AAAAAAAAAAAAAAAAAEA4MCpYAvoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAATw
RAAAALIECvAIAAAAAgQAAAAKAABDAAvwIAAAAARBAgAAAAXBCAAAAAYBAgAAAP8BAAAIAGUAcQAx
AAAAAAAQ8AQAAAAAAACAUgAH8OdiAAAFBb5kIn9ncL0/bKxYPPeM8Iv/AMNiAAABAAAAGwEAAAAA
UAmgRh3wu2IAAL5kIn9ncL0/bKxYPPeM8Iv//9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcG
BQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4z
NDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjIyMjL/wAARCALQA8ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAEC
AwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0Kx
wRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1
dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ
2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QA
tREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaH
iImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiivJPCvhXw7deENEuLjQdLmnlsIHkkk
s42Z2MakkkjJJPOaaVyJz5D1uivOv+EO8L/9C3o//gDF/wDE0f8ACHeF/wDoW9H/APAGL/4mq5DP
267HotFedf8ACHeF/wDoW9H/APAGL/4mj/hDvC//AELej/8AgDF/8TRyB7ddj0WivOv+EO8L/wDQ
t6P/AOAMX/xNH/CHeF/+hb0f/wAAYv8A4mjkD267HotFedf8Id4X/wChb0f/AMAYv/iaP+EO8L/9
C3o//gDF/wDE0cge3XY9Forzr/hDvC//AELej/8AgDF/8TR/wh3hf/oW9H/8AYv/AImjkD267Hot
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
6B/2Dbf/ANFrXotedeDv+RH0D/sG2/8A6LWrgYV9kbdFFFaHKFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQBieMf+RH1/wD7Btx/6LavRa868Y/8iPr/AP2Dbj/0W1ei1nM6qGzCiiioNwooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPOvB3/Ij6B/2Dbf/ANFrW3WJ4O/5EfQP
+wbb/wDota263R573CiiigQUUUUAFFFFABRRRQAUUUUAFFFFABVrwJ/yTzw1/wBgq1/9FLVWrXgT
/knnhr/sFWv/AKKWomdOH6nQUUUVmdAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFedeDv8AkR9A/wCwbb/+i1r0WvOvB3/Ij6B/
2Dbf/wBFrVwMK+yNuiiitDlCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAxPGP8AyI+v/wDYNuP/AEW1
ei1514x/5EfX/wDsG3H/AKLavRazmdVDZhRRRUG4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFAHnXg7/AJEfQP8AsG2//ota26xPB3/Ij6B/2Dbf/wBFrW3W6PPe4UUU
UCCiiigAooooAKKKKACiiigAooooAKteBP8Aknnhr/sFWv8A6KWqtWvAn/JPPDX/AGCrX/0UtRM6
cP1OgooorM6AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAK868Hf8iPoH/YNt/wD0Wtei1514O/5EfQP+wbb/APotauBhX2Rt0UUV
ocoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGJ4x/5EfX/+wbcf+i2r0WvOvGP/ACI+v/8AYNuP/RbV
6LWczqobMKKKKg3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA86
8Hf8iPoH/YNt/wD0WtbdWv8AhBfCBOT4U0P/AMF0X/xNH/CCeD/+hU0P/wAF0P8A8TV85zuhfqVa
Ktf8IJ4P/wChU0P/AMF0P/xNH/CCeD/+hU0P/wAF0P8A8TT5w+r+ZVoq1/wgng//AKFTQ/8AwXQ/
/E0f8IJ4P/6FTQ//AAXQ/wDxNHOH1fzKtFWv+EE8H/8AQqaH/wCC6H/4mj/hBPB//QqaH/4Lof8A
4mjnD6v5lWirX/CCeD/+hU0P/wAF0P8A8TR/wgng/wD6FTQ//BdD/wDE0c4fV/Mq0Va/4QTwf/0K
mh/+C6H/AOJo/wCEE8H/APQqaH/4Lof/AImjnD6v5lWirX/CCeD/APoVND/8F0P/AMTR/wAIJ4P/
AOhU0P8A8F0P/wATRzh9X8yrVrwJ/wAk88Nf9gq1/wDRS0f8IJ4P/wChU0P/AMF0P/xNbkEENrbx
29vEkUMShI441CqigYAAHAAHaplK5pTp8l9SSiiipNAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK868Hf8AIj6B/wBg23/9FrXo
tedeDv8AkR9A/wCwbb/+i1q4GFfZG3RRRWhyhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAYnjH/AJEf
X/8AsG3H/otq9Frzrxj/AMiPr/8A2Dbj/wBFtXotZzOqhswoooqDcKKKKACiiigAooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAK868Hf8iPoH/YNt/wD0Wtei1z//AAgvhAnJ8KaH/wCC6L/4mqi7GdSHOVaK
tf8ACCeD/wDoVND/APBdD/8AE0f8IJ4P/wChU0P/AMF0P/xNVzmf1fzKtFWv+EE8H/8AQqaH/wCC
6H/4mj/hBPB//QqaH/4Lof8A4mjnD6v5lWirX/CCeD/+hU0P/wAF0P8A8TR/wgng/wD6FTQ//BdD
/wDE0c4fV/Mq0Va/4QTwf/0Kmh/+C6H/AOJo/wCEE8H/APQqaH/4Lof/AImjnD6v5lWirX/CCeD/
APoVND/8F0P/AMTR/wAIJ4P/AOhU0P8A8F0P/wATRzh9X8yrRVr/AIQTwf8A9Cpof/guh/8AiaP+
EE8H/wDQqaH/AOC6H/4mjnD6v5lWirX/AAgng/8A6FTQ/wDwXQ//ABNH/CCeD/8AoVND/wDBdD/8
TRzh9X8yrRVr/hBPB/8A0Kmh/wDguh/+Jo/4QTwf/wBCpof/AILof/iaOcPq/mVaKtf8IJ4P/wCh
U0P/AMF0P/xNH/CCeD/+hU0P/wAF0P8A8TRzh9X8yrRVr/hBPB//AEKmh/8Aguh/+Jo/4QTwf/0K
mh/+C6H/AOJo5w+r+ZVoq1/wgng//oVND/8ABdD/APE0f8IJ4P8A+hU0P/wXQ/8AxNHOH1fzKtFW
v+EE8H/9Cpof/guh/wDiaP8AhBPB/wD0Kmh/+C6H/wCJo5w+r+ZVoq1/wgng/wD6FTQ//BdD/wDE
0f8ACCeD/wDoVND/APBdD/8AE0c4fV/Mq0Va/wCEE8H/APQqaH/4Lof/AImj/hBPB/8A0Kmh/wDg
uh/+Jo5w+r+ZVoq1/wAIJ4P/AOhU0P8A8F0P/wATR/wgng//AKFTQ/8AwXQ//E0c4fV/Mq0Va/4Q
Twf/ANCpof8A4Lof/iaP+EE8H/8AQqaH/wCC6H/4mjnD6v5lWirX/CCeD/8AoVND/wDBdD/8TR/w
gng//oVND/8ABdD/APE0c4fV/Mq0Va/4QTwf/wBCpof/AILof/iaP+EE8H/9Cpof/guh/wDiaOcP
q/mVaKtf8IJ4P/6FTQ//AAXQ/wDxNH/CCeD/APoVND/8F0P/AMTRzh9X8yrRVr/hBPB//QqaH/4L
of8A4mj/AIQTwf8A9Cpof/guh/8AiaOcPq/mVaKtf8IJ4P8A+hU0P/wXQ/8AxNH/AAgng/8A6FTQ
/wDwXQ//ABNHOH1fzOa8Y/8AIj6//wBg24/9FtXotc//AMIL4QByPCmh/wDgui/+JroKmTuaU4ci
CiiipNAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2YN+AABEAGQAAAAAAAAACAAAAAAAAAAA
AAAAAABAODAqWAIhAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAE8EQAAACyBArw
CAAAAAEEAAAACgAAQwAL8CAAAAAEQQEAAAAFwQgAAAAGAQIAAAD/AQAACABlAHEAMgAAAAAAEPAE
AAAAAQAAgFIAB/DrfQAABQUUmCUntOOX9KUxOQbs/dbK/wDHfQAAAQAAAJpkAAAAAFAJoEYd8L99
AAAUmCUntOOX9KUxOQbs/dbK///Y/+AAEEpGSUYAAQEBAGAAYAAA/9sAQwAIBgYHBgUIBwcHCQkI
CgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJ
CQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIy/8AAEQgC0APAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkK
C//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNi
coIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SF
hoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn
6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQE
AwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBka
JicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWW
l5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5
+v/aAAwDAQACEQMRAD8A9/ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAryTwr4V8O3XhDRLi40HS5p5bCB5JJLONmdjGpJJIySTzmv
W6868Hf8iPoH/YNt/wD0WtXAwruyQf8ACHeF/wDoW9H/APAGL/4mj/hDvC//AELej/8AgDF/8TUP
9vXVv49/sG7jhFpdWX2mynwUZnVsPFkkiRsYfjBA6g9af4x1+Xw34bnvrWBLm+ZkhtLdiczSuwVV
AHLHkttHJCnp1F6HP717D/8AhDvC/wD0Lej/APgDF/8AE0f8Id4X/wChb0f/AMAYv/iakhu79fEc
dhPeaU8I08SvEhZblpd+C4Qk4ixx1Jzxk1Nf6/o2lTrBqOrWFnMy7xHcXKRsVyRnDEcZB59qNA1K
v/CHeF/+hb0f/wAAYv8A4mj/AIQ7wv8A9C3o/wD4Axf/ABNakt5awXUFrLcwx3Fxu8mJ3AeXaMtt
HU4HJx0qQzRLOkBkQTOrOsZYbmUEAkDuAWXJ9x607IV2Y/8Awh3hf/oW9H/8AYv/AImj/hDvC/8A
0Lej/wDgDF/8TWp9stft32H7TD9r8vzvI3jzNmcbtvXbnjPTNVYtf0afUTp0OrWEl8GZDbJcoZAy
53DaDnIwcjtg0tB3kVf+EO8L/wDQt6P/AOAMX/xNH/CHeF/+hb0f/wAAYv8A4mtG71KwsHRLy9tr
ZpFd0WaVULKg3ORk8hRyT2HWsjxH4qtdJ8FX3iGxlhvYoo/3DwsJI3ctsXJBGVDkZwc4B70aAuZk
3/CHeF/+hb0f/wAAYv8A4mj/AIQ7wv8A9C3o/wD4Axf/ABNZereKdUsbrTfD9lp8N94lu7YSzBCy
WtsMYMrMRkpvBwvUgYyCVBpXeveOfDdq+p67pmj6hpsWPPXSXlE0K55kxJwygZyOOoOQATRoO0u5
0P8Awh3hf/oW9H/8AYv/AImj/hDvC/8A0Lej/wDgDF/8TVXUfEksHirwvp1mbaax1hbl3mGWJVIw
6FGBxg5685HStGxvLqfXtWtZbnTZLe38nyYrdybiLcpLecOgyeVx1FGgveIP+EO8L/8AQt6P/wCA
MX/xNH/CHeF/+hb0f/wBi/8AiatRa/o0+onTodWsJL4MyG2S5QyBlzuG0HORg5HbBq1LeWsF1Bay
3MMdxcbvJidwHl2jLbR1OBycdKNAuzL/AOEO8L/9C3o//gDF/wDE0f8ACHeF/wDoW9H/APAGL/4m
r2n6zpereZ/ZupWd75WPM+zTrJsznGdpOM4P5Vzuk+PtL1PxXqmlf2hpq29v9nSzlF0pN28gYtt5
wcHauBk5zzyADQPeNT/hDvC//Qt6P/4Axf8AxNH/AAh3hf8A6FvR/wDwBi/+Jrbop2FdmJ/wh3hf
/oW9H/8AAGL/AOJo/wCEO8L/APQt6P8A+AMX/wATW3RRYLsxP+EO8L/9C3o//gDF/wDE0f8ACHeF
/wDoW9H/APAGL/4mtuiiwXZif8Id4X/6FvR//AGL/wCJo/4Q7wv/ANC3o/8A4Axf/E1t0UWC7MT/
AIQ7wv8A9C3o/wD4Axf/ABNH/CHeF/8AoW9H/wDAGL/4mtuiiwXZif8ACHeF/wDoW9H/APAGL/4m
j/hDvC//AELej/8AgDF/8TW3RRYLsxP+EO8L/wDQt6P/AOAMX/xNH/CHeF/+hb0f/wAAYv8A4mtu
iiwXZif8Id4X/wChb0f/AMAYv/iaP+EO8L/9C3o//gDF/wDE1t0UWC7MT/hDvC//AELej/8AgDF/
8TR/wh3hf/oW9H/8AYv/AImtuiiwXZif8Id4X/6FvR//AABi/wDiaP8AhDvC/wD0Lej/APgDF/8A
E1t0UWC7MT/hDvC//Qt6P/4Axf8AxNH/AAh3hf8A6FvR/wDwBi/+JrboosF2Yn/CHeF/+hb0f/wB
i/8AiaP+EO8L/wDQt6P/AOAMX/xNbdFFguzE/wCEO8L/APQt6P8A+AMX/wATR/wh3hf/AKFvR/8A
wBi/+JrboosF2Yn/AAh3hf8A6FvR/wDwBi/+Jo/4Q7wv/wBC3o//AIAxf/E1t0UWC7MT/hDvC/8A
0Lej/wDgDF/8TR/wh3hf/oW9H/8AAGL/AOJrboosF2Yn/CHeF/8AoW9H/wDAGL/4mj/hDvC//Qt6
P/4Axf8AxNbdFFguzE/4Q7wv/wBC3o//AIAxf/E0f8Id4X/6FvR//AGL/wCJrboosF2Yn/CHeF/+
hb0f/wAAYv8A4mj/AIQ7wv8A9C3o/wD4Axf/ABNbdFFguzE/4Q7wv/0Lej/+AMX/AMTR/wAId4X/
AOhb0f8A8AYv/ia26KLBdmJ/wh3hf/oW9H/8AYv/AImj/hDvC/8A0Lej/wDgDF/8TW3RRYLsxP8A
hDvC/wD0Lej/APgDF/8AE0f8Id4X/wChb0f/AMAYv/ia26KLBdmJ/wAId4X/AOhb0f8A8AYv/iaP
+EO8L/8AQt6P/wCAMX/xNbdFFguzE/4Q7wv/ANC3o/8A4Axf/E0f8Id4X/6FvR//AABi/wDia26K
LBdmJ/wh3hf/AKFvR/8AwBi/+Jo/4Q7wv/0Lej/+AMX/AMTW3RRYLsxP+EO8L/8AQt6P/wCAMX/x
NH/CHeF/+hb0f/wBi/8Aia26KLBdmJ/wh3hf/oW9H/8AAGL/AOJo/wCEO8L/APQt6P8A+AMX/wAT
W3RRYLsxP+EO8L/9C3o//gDF/wDE0f8ACHeF/wDoW9H/APAGL/4mtuiiwXZif8Id4X/6FvR//AGL
/wCJo/4Q7wv/ANC3o/8A4Axf/E1t0UWC7MT/AIQ7wv8A9C3o/wD4Axf/ABNH/CHeF/8AoW9H/wDA
GL/4mtuiiwXZif8ACHeF/wDoW9H/APAGL/4mj/hDvC//AELej/8AgDF/8TW3RRYLsxP+EO8L/wDQ
t6P/AOAMX/xNH/CHeF/+hb0f/wAAYv8A4mtuiiwXZif8Id4X/wChb0f/AMAYv/ia6bwKS3w+8NMx
JJ0q1JJ7/ulqpVrwJ/yTzw1/2CrX/wBFLWczooNu50FFFFQdAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXnXg7/kR9A/7
Btv/AOi1r0WvOvB3/Ij6B/2Dbf8A9FrVwMK+yMX4kWjwaXY+JrVJnvdBuVulSEsGlhLASxkjopXk
kg4CnsTUGomDxZ8R9Gs4pvP03R7YapI8EpeKSZyBCrbThWAHmKSTlSeMEk9reWkGoWNxZXSeZb3E
bRSpkjcrDBGRyOD2rm/A3gpfBtpdrJqD6hdXLIGuHQofLRQsaYLNwozj2IHYVdtTBSVvMq/81v8A
+5b/APbmuD8Mwalrmgvql38PofENxqW/z9TuNTjR5cMy/IrDMW0fKNm37ox0GPVv+Ef/AOK4/wCE
k+1f8w37B9n8v/ppv37s/hjH41z1x8Pb6zur/wD4RfxLNoVhf/NNZx2qyorkEFoyWBjyMfdwRgYO
AoCaKUkcuLDXPDHg/TNc1mKaCXw9q2YElnSeVdOkCRtEpX5WY7sAnGAONowKn1nUnbxFqXjxYITb
+HdSi0za27zTCu9LjC52li1wpUkjhOcchvQrfwtp1r4ZutCi84QXcciXM5fdNM0gIeRmI+ZznOSP
TjAApmn+F4rTwa/hy4vbm6WaCaK4unI8yRpSxkfnPJLsRnPbOepLBzo888RaleSW3jzxXZ3DwzWT
RaJZSD5ZIVWRPPAxxhmfKtksO22ob/wvqk2iLY6d8ME0y5hbzbW/t9Zh8+GQEkNvPzMMnoT06YIB
HpOneFbO38Ir4d1F31SBlf7RJc8tM7uXZj3B3MSDnI45yM1z1v8ADrU1gt9KuvGF/ceHoGIGniIR
u8WCBE8ytuZcHBGMEcALxgsNTRR17TW1bxN8OLPxHbpcTtBcteRPgq0ywxschflI3r0HB6dKveJ7
GKbxT4O8M6ZDbW1rBdtqk0dvCP3Kw8qdqkBVdmdckfePsQehvfDMVz4g8PanBKltDoyzolskI2ss
kYQAEEbQoHTB9OKfbeH/ACvGF94hnuvPlmto7S2j8vb9niB3MuQfn3P82SMjp0osTzGL4e/cfFPx
nHL+7e4jsZoVfgyosZVmUd1DcEjgHiuuvLuDT7G4vbp/Lt7eNpZXwTtVRknA5PA7Vi+IvCNrr11a
6jFczafrFlk2t/b43rwflcHh0yclT7jIDHOPL4E1fWEFr4n8XXOqabuV2tILOO1EjKQQHZckr144
5wcggU9ULR6tjNZu4NQ+IPw9vbV/Mt7iO9lifBG5WgUg4PI4Peua8S6leaTe/FC8sLh7e5VdMVZU
4ZQyhTg9jhjyOR1HNejan4f/ALR8T6FrP2ry/wCyvtH7ny8+b5qBeuflxjPQ59qqjwbZzav4kutQ
ZLy11xYFktXjwIxEhX72eSTyCMEEDHrSaY1JL+vM89v/AAvqk2iLY6d8ME0y5hbzbW/t9Zh8+GQE
kNvPzMMnoT06YIBGv4k0ufWtf+Hena68y3E9tdC+EMgRnYQIZEJTjaxBU7eoJAxWjb/DrU1gt9Ku
vGF/ceHoGIGniIRu8WCBE8ytuZcHBGMEcALxjob3wzFc+IPD2pwSpbQ6Ms6JbJCNrLJGEABBG0KB
0wfTiixTmrnNajo+naF8U/CL6TZw2H2yO8iuVtV8pJVSMMoZVwDhjnp2HoMM8MaBoy/Ezxei6TYB
bNrB7VRbJiBjEWJTj5TkA5GOa6vU/D/9o+J9C1n7V5f9lfaP3Pl583zUC9c/LjGehz7Vny+EtQh8
ZXGvaXr72cN60DX1m1okomEQ24Dk5QFeOOcknPQAsTzab9P1OroooqjMKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKteBP+SeeGv+
wVa/+ilqrVrwJ/yTzw1/2CrX/wBFLUTOnD9ToKKKKzOgKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArzrwd/wAiPoH/AGDb
f/0Wtei1514O/wCRH0D/ALBtv/6LWrgYV9kbdFFFaHKFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFWvAn/JPPDX/YKtf/AEUtVateBP8Aknnhr/sFWv8A6KWomdOH6nQU
UUVmdAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFABXnXg7/kR9A/7Btv/wCi1r0WvOvB3/Ij6B/2Dbf/ANFrVwMK+yNuiiit
DlCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
orjvCvhXw7deENEuLjQdLmnlsIHkkks42Z2MakkkjJJPOa1v+EO8L/8AQt6P/wCAMX/xNIppG3RW
J/wh3hf/AKFvR/8AwBi/+Jo/4Q7wv/0Lej/+AMX/AMTTFobdFYn/AAh3hf8A6FvR/wDwBi/+Jo/4
Q7wv/wBC3o//AIAxf/E0BobdFYn/AAh3hf8A6FvR/wDwBi/+Jo/4Q7wv/wBC3o//AIAxf/E0Bobd
FYn/AAh3hf8A6FvR/wDwBi/+Jo/4Q7wv/wBC3o//AIAxf/E0BobdFYn/AAh3hf8A6FvR/wDwBi/+
Jo/4Q7wv/wBC3o//AIAxf/E0BobdFYn/AAh3hf8A6FvR/wDwBi/+Jo/4Q7wv/wBC3o//AIAxf/E0
BobdFYn/AAh3hf8A6FvR/wDwBi/+Jo/4Q7wv/wBC3o//AIAxf/E0BobdFYn/AAh3hf8A6FvR/wDw
Bi/+Jo/4Q7wv/wBC3o//AIAxf/E0BobdFYn/AAh3hf8A6FvR/wDwBi/+JpfB5LeCdAJJJOnW5JP/
AFzWgLI2qKKKBBVrwJ/yTzw1/wBgq1/9FLVWrXgT/knnhr/sFWv/AKKWomdOH6nQUUUVmdAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
UUUAFFFFABXnXg7/AJEfQP8AsG2//ota9Frzrwd/yI+gf9g23/8ARa1cDCvsjbooorQ5QooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAxPB3/Ij6B/
2Dbf/wBFrW3WJ4O/5EfQP+wbb/8Aota26EN7hRRRQIKKKKAMv/hJdB+3fYf7b037X5nk+R9qTzN+
cbduc7s8Y65rUrzxpdUl8Nahpps7NdN1DUr6wN6bpvMh866ljDmLy+fnYKAG5JGSoyV0brWdY/4S
S6W3S5+y2moW9p962W1KSLCWLl2Epk/ett2cEhBg/MCrl8p2VFcvZ6hfjxEq3d3N9nnuZreEIsL2
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
/gDF/wDE1t0UWC7MT/hDvC//AELej/8AgDF/8TWxDDFbwRwwxpFFGoRERQqqoGAAB0AFPooC7YUU
UUCCrXgT/knnhr/sFWv/AKKWqtWvAn/JPPDX/YKtf/RS1Ezpw/U6CiiiszoCiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8
68Hf8iPoH/YNt/8A0Wtei1514O/5EfQP+wbb/wDotauBhX2Rt0UUVocoUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFAEc8EN1A8FxFHLC4w0cihlYehB61i/8I9Lp/wA2hahJZAdLWUGa
2PsEJBT/AIAyj2Nb1FA07GD/AG/cad8uu6dJaoP+Xu3Jntz7kgbk/wCBKAPU1s21zb3lulxazxzw
uMrJE4ZWHsRUtY1z4asnuHurF5tNvHO5p7Ngm8/7aEFH/wCBAmgNGbNFYP23XdL4vrNNTtx/y8WI
2ygerRMefqrEn+7Whp2safqyv9iukkeM4kiOVkjPoyHDKfqBQFi9RRRQIKKKKACiiigAooooAKwP
+QH4i9NP1V/wiusfoHA/76X1et+qupafDqmnT2Vxu8uVcblOGU9QwPYggEH1FA0WqKytC1Ca7tZL
a9wNRs38i6AGAzAZDgf3WBDD6kdjWrQD0CiiigQVV1Kwh1TTbmxnz5VxG0bEdRkdR7jrVqigDL8P
381/pEZusfbYGa3ugP8Anqh2sfocbh7MK1KwT/xKvFw7W2rpj2FxGv8ANox/5CreoQ2FFFFAgooo
oAKKKKACiiigAq14E/5J54a/7BVr/wCilqrVrwJ/yTzw1/2CrX/0UtRM6cP1OgooorM6AooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACvOvB3/Ij6B/2Dbf/ANFrXotedeDv+RH0D/sG2/8A6LWrgYV9kbdFFFaHKFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
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
sxP+EO8L/wDQt6P/AOAMX/xNH/CHeF/+hb0f/wAAYv8A4mtuiiwXZif8Id4X/wChb0f/AMAYv/ia
P+EO8L/9C3o//gDF/wDE1t0UWC7MT/hDvC//AELej/8AgDF/8TWxDDFbwRwwxpFFGoRERQqqoGAA
B0AFPooC7YVa8Cf8k88Nf9gq1/8ARS1Vq14E/wCSeeGv+wVa/wDopaiZ0YfqdBRRRWZ0BRRRQAUU
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
QAUUUUAFedeDv+RH0D/sG2//AKLWvRa868Hf8iPoH/YNt/8A0WtXAwr7I26KKK0OUKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKteBP8Aknnhr/sFWv8A6KWqtWvAn/JP
PDX/AGCrX/0UtRM6cP1OgooorM6AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvOvB3/Ij6B/2Dbf8A9FrXotc//wAIL4QJ
yfCmh/8Agui/+JqouxnUhzlWirX/AAgng/8A6FTQ/wDwXQ//ABNH/CCeD/8AoVND/wDBdD/8TVc5
n9X8yrRVr/hBPB//AEKmh/8Aguh/+Jo/4QTwf/0Kmh/+C6H/AOJo5w+r+ZVoq1/wgng//oVND/8A
BdD/APE0f8IJ4P8A+hU0P/wXQ/8AxNHOH1fzKtFWv+EE8H/9Cpof/guh/wDiaP8AhBPB/wD0Kmh/
+C6H/wCJo5w+r+ZVoq1/wgng/wD6FTQ//BdD/wDE0f8ACCeD/wDoVND/APBdD/8AE0c4fV/Mq0Va
/wCEE8H/APQqaH/4Lof/AImj/hBPB/8A0Kmh/wDguh/+Jo5w+r+ZVoq1/wAIJ4P/AOhU0P8A8F0P
/wATR/wgng//AKFTQ/8AwXQ//E0c4fV/Mq0Va/4QTwf/ANCpof8A4Lof/iaP+EE8H/8AQqaH/wCC
6H/4mjnD6v5lWirX/CCeD/8AoVND/wDBdD/8TR/wgng//oVND/8ABdD/APE0c4fV/Mq0Va/4QTwf
/wBCpof/AILof/iaP+EE8H/9Cpof/guh/wDiaOcPq/mVaKtf8IJ4P/6FTQ//AAXQ/wDxNH/CCeD/
APoVND/8F0P/AMTRzh9X8yrRVr/hBPB//QqaH/4Lof8A4mj/AIQTwf8A9Cpof/guh/8AiaOcPq/m
VaKtf8IJ4P8A+hU0P/wXQ/8AxNH/AAgng/8A6FTQ/wDwXQ//ABNHOH1fzKtFWv8AhBPB/wD0Kmh/
+C6H/wCJo/4QTwf/ANCpof8A4Lof/iaOcPq/mVaKtf8ACCeD/wDoVND/APBdD/8AE0f8IJ4P/wCh
U0P/AMF0P/xNHOH1fzKtFWv+EE8H/wDQqaH/AOC6H/4mj/hBPB//AEKmh/8Aguh/+Jo5w+r+ZVoq
1/wgng//AKFTQ/8AwXQ//E0f8IJ4P/6FTQ//AAXQ/wDxNHOH1fzKtFWv+EE8H/8AQqaH/wCC6H/4
mj/hBPB//QqaH/4Lof8A4mjnD6v5lWirX/CCeD/+hU0P/wAF0P8A8TR/wgng/wD6FTQ//BdD/wDE
0c4fV/Mq0Va/4QTwf/0Kmh/+C6H/AOJo/wCEE8H/APQqaH/4Lof/AImjnD6v5lWirX/CCeD/APoV
ND/8F0P/AMTR/wAIJ4P/AOhU0P8A8F0P/wATRzh9X8yrRVr/AIQTwf8A9Cpof/guh/8AiaP+EE8H
/wDQqaH/AOC6H/4mjnD6v5lWirX/AAgng/8A6FTQ/wDwXQ//ABNH/CCeD/8AoVND/wDBdD/8TRzh
9X8yrRVr/hBPB/8A0Kmh/wDguh/+Jo/4QTwf/wBCpof/AILof/iaOcPq/mVaKtf8IJ4P/wChU0P/
AMF0P/xNH/CCeD/+hU0P/wAF0P8A8TRzh9X8yrRVr/hBPB//AEKmh/8Aguh/+Jo/4QTwf/0Kmh/+
C6H/AOJo5w+r+ZVoq1/wgng//oVND/8ABdD/APE0f8IJ4P8A+hU0P/wXQ/8AxNHOH1fzKtFWv+EE
8H/9Cpof/guh/wDiaP8AhBPB/wD0Kmh/+C6H/wCJo5w+r+ZVoq1/wgng/wD6FTQ//BdD/wDE0f8A
CCeD/wDoVND/APBdD/8AE0c4fV/Mq0Va/wCEE8H/APQqaH/4Lof/AImj/hBPB/8A0Kmh/wDguh/+
Jo5w+r+ZVoq1/wAIJ4P/AOhU0P8A8F0P/wATR/wgng//AKFTQ/8AwXQ//E0c4fV/Mq0Va/4QTwf/
ANCpof8A4Lof/iaP+EE8H/8AQqaH/wCC6H/4mjnD6v5lWirX/CCeD/8AoVND/wDBdD/8TR/wgng/
/oVND/8ABdD/APE0c4fV/Mq0Va/4QTwf/wBCpof/AILof/iaP+EE8H/9Cpof/guh/wDiaOcPq/mV
aKtf8IJ4P/6FTQ//AAXQ/wDxNH/CCeD/APoVND/8F0P/AMTRzh9X8yrRVr/hBPB//QqaH/4Lof8A
4mj/AIQTwf8A9Cpof/guh/8AiaOcPq/mVaKtf8IJ4P8A+hU0P/wXQ/8AxNH/AAgng/8A6FTQ/wDw
XQ//ABNHOH1fzKtFWv8AhBPB/wD0Kmh/+C6H/wCJo/4QTwf/ANCpof8A4Lof/iaOcPq/mVaKtf8A
CCeD/wDoVND/APBdD/8AE0f8IJ4P/wChU0P/AMF0P/xNHOH1fzKtFWv+EE8H/wDQqaH/AOC6H/4m
j/hBPB//AEKmh/8Aguh/+Jo5w+r+ZVq14E/5J54a/wCwVa/+ilo/4QTwf/0Kmh/+C6H/AOJrcggh
tbeO3t4kihiUJHHGoVUUDAAA4AA7VMpXNKdPkvqSUUUVJoFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//ZUgYAAEQAZAAAAAAA
AAAIAAAAAAAAAAAAAAAAAJgVHQbiBdsFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP
AATwXgAAALIECvAIAAAABAQAAAAKAABDAAvwLAAAAARBBAAAAAXBFAAAAAYBAgAAAP8BAAAIAHMA
ZQB0AHUAcABBAHUAdABoAAAAEwAi8QYAAAC/AQAAYAAAABDwBAAAAAIAAIAiAAfwoAUAAAIE4eL2
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
eaVIl9cc6nKtZC+J/mtCqhyB07ALFXmySJEL10tdi1yXpsMrrukw3CjXYfeWDEJj4UbC8unw+Ua5
Dp+GEwiVPd9IKB8dVjXKdfhPOIVoZVWNhPLR4ZebinWY2uyiDvufFunQrf2KA/y/X8VqvGxY19rp
0MZX93TWLNeZujODQI01E5ZRZ01ynd3ZkUCgxpoIZaSzZrnO7u1IIVBjzYTy0dn55mKdfbDDRZ3d
aex5EfPQHst56DAf7c7y/2Em4fMS5qHGvcNRw+8r4/ax3Tbr0qzRl8U1Pv9zxusWQ98p4v93+m9G
dP0v6gRZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhgIYABIAAQCcAA8ABAAAAAAAAAAA
AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
QAAAQPH/AgBAAAwEAAD1OQ4AAAAGAE4AbwByAG0AYQBsAAAAAgAAABgAQ0oYAF9IAQRhShgAbUgJ
BHNICQR0SAkEAAAAAFYAA0ABAAIAVgAMBAAAHxc5AAAACQBIAGUAYQBkAGkAbgBnACAAMwAAABAA
AwAGJAETpPAAFKQ8AEAmAhoANQiBQ0oaAE9KAgBRSgIAXAiBXkoCAGFKGgAAAAAASAAGQAEAAgBI
AAwEAACVZecAAAAJAEgAZQBhAGQAaQBuAGcAIAA2AAAADQAGABOk8AAUpDwAQCYFAA4ANQiBQ0oW
AFwIgWFKFgAAAAAAAABEAEFA8v+hAEQADAUAAAAAAAAAABYARABlAGYAYQB1AGwAdAAgAFAAYQBy
AGEAZwByAGEAcABoACAARgBvAG4AdAAAAAAAUgBpAPP/swBSAAwFAAAAAAAAAAAMAFQAYQBiAGwA
ZQAgAE4AbwByAG0AYQBsAAAAHAAX9gMAADTWBgABCgNsADTWBgABBQMAAGH2AwAAAgALAAAAKABr
QPT/wQAoAAAFAAAAAAAAAAAHAE4AbwAgAEwAaQBzAHQAAAACAAAAAAAAADoAMEABAPIAOgAMBAAA
lWXnAAAACwBMAGkAcwB0ACAAQgB1AGwAbABlAHQAAAAJAA8ACiYAC0YBAAAAAEYARUABAAIBRgAM
BAAAz1daAAAADwBMAGkAcwB0ACAAQwBvAG4AdABpAG4AdQBlACAAMgAAAA4AEAAPhNACFKR4AF6E
0AIAAEIAREABABIBQgAMBAAAz1daAAAADQBMAGkAcwB0ACAAQwBvAG4AdABpAG4AdQBlAAAADgAR
AA+EaAEUpHgAXoRoAQAANgBVQKIAIQE2AAwEAAAwYWwAAAAJAEgAeQBwAGUAcgBsAGkAbgBrAAAA
DAA+KgFCKgJwaAAA/wA+AGJAogAxAT4ADAQAAEFWBQAAAAkASABUAE0ATAAgAEMAbwBkAGUAAAAU
AENKFABPSgMAUUoDAF5KAwBhShQARABUQAEAQgFEAAwEAADRMtAAAAAKAEIAbABvAGMAawAgAFQA
ZQB4AHQAAAAWABQADoSgBQ+EoAUUpHgAXYSgBV6EoAUAADoAMUABAFIBOgAMBAAAqnPaAAAACwBM
AGkAcwB0ACAATgB1AG0AYgBlAHIAAAAJABUACiYAC0YGAAAAAEYASkABAGIBRgAMBAAA+n6KAAAA
CABTAHUAYgB0AGkAdABsAGUAAAAPABYAAyQBFKQ8AEAmAWEkAQAMAE9KAgBRSgIAXkoCAFYAPkAB
AHIBVgAMBAAA+n6KAAAABQBUAGkAdABsAGUAAAATABcAAyQBE6TwABSkPABAJgBhJAEAHgA1CIFD
SiAAS0gcAE9KAgBRSgIAXAiBXkoCAGFKIAAAAAAAeUEAAAUAAHIAAAQA/////wAAAAABAAAAAgAA
ACcAAAA+AAAAPwAAAEAAAABQAAAAcQAAAKcAAACoAAAAvwAAAMwAAADNAAAA2wAAAOkAAADqAAAA
4QEAAOIBAACfAgAAoAIAAG8DAABwAwAAHgQAAB8EAAAyBAAAcgQAAAcFAABIBQAAcgUAAH8FAACA
BQAA1AUAANUFAAAcBgAAHQYAALwGAAADBwAABAcAAKIHAADqBwAA6wcAAEEIAADKCAAAywgAADMJ
AACtCQAA4AkAABYKAAAXCgAAWQoAAFoKAACbCwAAvAsAAL0LAACtDQAArg0AANkNAADaDQAAEQ8A
ABIPAADGDwAAxw8AANgPAADZDwAAzxEAANARAADsEQAA7REAAMwTAADNEwAA6xMAAOwTAAD2FQAA
9xUAACoWAAArFgAAjRcAAI4XAACQFwAAHBgAAB0YAAAkGAAAUxgAAIgYAACvGAAA0xgAANoYAADb
GAAAIRkAACIZAAAkGQAAlhkAAJcZAABBGgAAQhoAAFAaAABRGgAAthoAALcaAADxGgAA8hoAAPUa
AAAwGwAAMRsAAL8bAAAWHAAAFxwAAMQcAADFHAAAtR0AALYdAADbIAAA3CAAACQiAAAlIgAAPiIA
AD8iAAB1JAAAdiQAALokAAD4JAAAOSUAAJQlAACzJgAAAycAAD8nAAB3JwAAeCcAAKYnAACNKAAA
jigAAI8oAACQKAAAkSgAAJIoAACTKAAAlCgAAJUoAACWKAAAtCgAALUoAAC3KAAAuCgAAFcpAABY
KQAAcikAAHMpAAB1KQAAdikAAB0qAAAeKgAA5yoAAOgqAADuKgAABisAAC8rAAA2KwAANysAAGcr
AABoKwAAVCwAAFUsAABWLAAAWCwAAFksAABfLAAAjiwAABItAAAZLQAAGi0AABstAAA9LQAAPi0A
ALgtAAC5LQAAui0AALwtAAC9LQAA2i0AAOAtAAD4LQAAHC4AADguAABeLgAAcy4AAKkuAAC8LgAA
/i4AAAgvAAAPLwAAEC8AABEvAADuMAAA7zAAAPcwAAD5MAAA+zAAAAExAAAoMQAAVzEAAGsxAACy
MQAAxTEAAMsxAADjMQAABzIAACMyAABJMgAAXjIAAJQyAACnMgAA6TIAAPMyAAD6MgAAATMAAAoz
AAALMwAAHjMAADAzAAAxMwAAtjMAALczAAC/MwAAwjMAAMgzAAD7MwAA/DMAABU0AAAbNAAANDQA
AEw0AABfNAAAaDQAAI00AACXNAAAnjQAAKU0AACuNAAArzQAALA0AADFNAAAxjQAAAg2AAAJNgAA
EzYAABQ2AADuNgAA7zYAAPE2AAB5NwAAejcAAII3AACFNwAAizcAAKY3AAC/NwAAwDcAANk3AADf
NwAA+DcAABA4AAAjOAAAKjgAADE4AAA6OAAAOzgAAFA4AABROAAArDgAALQ4AAC3OAAAvTgAANg4
AADxOAAA8jgAAAs5AAAROQAAKjkAAEI5AABVOQAAWzkAAHM5AACWOQAAsjkAANI5AADnOQAAHToA
ADA6AABcOgAAZjoAAG06AAB0OgAAfToAAH46AACkOgAABTwAAAY8AAAePAAAHzwAANo8AACePQAA
nz0AADY/AAA3PwAAe0EAABgAAAAWMAAAAAAAAACAAAAAgAAAAAAAAAAAAAAYAAAAFjAAAAAAAAAA
gAAAAIAAAAAAAAAAAAAACAAAABcwAAAAAAAAAIAAAACAAAAAAAAAAAAAAAgAAAAXMAAAAAAAAACA
AAAAgAAAAAAAAAAAAAAYAAAAFjAAAAAAAAAAgCcAAAAAAAAAAAAAAAAACAAAABcwAAAAAAAAAIAA
AACAAAAAAAAAAAAAABgAAAAWMAAAAAAAAACAPwAAAAAAAAAAAAAAAAAYAAAAFjAAAAAAAAAAgD8A
AAAAAAAAAAAAAAAAGAAAABYwAAAAAAAAAIA/AAAAAAAAAAAAAAAAABgAAAAWMAAAAAAAAACAPwAA
AAAAAAAAAAAAAAAYAAAAFjAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAGAAAABYwAAAAAAAAAIA/AAAA
AAAAAAAAAAAAABgAAAAWMAAAAAAAAACAPwAAAAAAAAAAAAAAAAAYAAAAFjAAAAAAAAAAgD8AAAAA
AAAAAAAAAAAAKAAAAAMwAAAAAAAAAIDNAAAAAAAAAAAAAACAAJgAAAAAMAAAAAAAAACA2wAAAAAA
AAAAAAAAgACYAAAAADAAAAAAAAAAgNsAAAAAAAAAAAAAAIAAmAAAAAAwAAAAAAAAAIDbAAAAAAAA
AAAAAAAAAJgAAAAAMAAAAAAAAACA2wAAAAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgNsAAAAAAAAA
AAAAAAAAmAAAAAAwAAAAAAAAAIDbAAAAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA2wAAAAAAAAAA
AAAAAACYAAAAADAAAAAAAAAAgNsAAAAAAAAAAAAAAIAAmAAAAAAwAAAAAAAAAIDbAAAAAAAAAAAA
AACAAJgAAAAAMAAAAAAAAACA2wAAAAAAAAAAAAAAAACYAAsgADAAAAAAAAAAgNsAAAAAAAAAAAAA
AIAAmAALIAAwAQAAAAAAAIDbAAAAAAAAAAAAAACAAJgACyAAMAIAAAAAAACA2wAAAAAAAAAAAAAA
gACYAAsgADADAAAAAAAAgNsAAAAAAAAAAAAAAIAAKAAAAAMwAAAAAAAAAIDNAAAAAAAAAAAAAACA
AJgAAAAAMAAAAAAAAACAcgUAAAAAAAAAAAAAgACYAAAAADAAAAAAAAAAgHIFAAAAAAAAAAAAAAAA
mAAAAAAwAAAAAAAAAIByBQAAAAAAAAAAAACAAJgADCAAMAAAAAAAAACAcgUAAAAAAAAAAAAAgACY
AAAAADAAAAAAAAAAgHIFAAAAAAAAAAAAAIAAmAAAABAwAAAAAAAAAIByBQAAAAAAAAAAAACAAJgA
DCAAMAEAAAAAAACAcgUAAAAAAAAAAAAAgACYAAAAEDAAAAAAAAAAgHIFAAAAAAAAAAAAAIAAmAAA
ABAwAAAAAAAAAIByBQAAAAAAAAAAAACAAJgADCAAMAIAAAAAAACAcgUAAAAAAAAAAAAAgACYAAAA
EDAAAAAAAAAAgHIFAAAAAAAAAAAAAIAAmAAAABAwAAAAAAAAAIByBQAAAAAAAAAAAACAAJgADCAA
MAMAAAAAAACAcgUAAAAAAAAAAAAAgACYAAAAADAAAAAAAAAAgHIFAAAAAAAAAAAAAIAAmAEMIAAw
AAAAAEEIAAByBQAAAAAAAAAAAAAAAJgBDCAAMAEAAABBCAAAcgUAAAAAAAAAAAAAAACYAQwgADAC
AAAAQQgAAHIFAAAAAAAAAAAAAAAAmAAMIAAwBAAAAAAAAIByBQAAAAAAAAAAAACAAJgAAAAAMAAA
AAAAAACAcgUAAAAAAAAAAAAAgABYAAAABjAAAAAAAAAAgHIFAAAAAAAAAAAAAIAAmAAAAAAwAAAA
AAAAAIAXCgAAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAFwoAAAAAAAAAAAAAAABYAAAABjAAAAAA
AAAAgHIFAAAAAAAAAAAAAIAAmAAAAAAwAAAAAAAAAICbCwAAAAAAAAAAAAAAAJgAAAAAMAAAAAAA
AACAmwsAAAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgJsLAAAAAAAAAAAAAAAAWAAAAAYwAAAAAAAA
AIByBQAAAAAAAAAAAACAAJgAAAAAMAAAAAAAAACArg0AAAAAAAAAAAAAgACYAAAAADAAAAAAAAAA
gK4NAAAAAAAAAAAAAIAAmAAAAAAwAAAAAAAAAICuDQAAAAAAAAAAAACAAJgAAAAAMAAAAAAAAACA
rg0AAAAAAAAAAAAAgACYAAAAADAAAAAAAAAAgK4NAAAAAAAAAAAAAIAAKAAAAAMwAAAAAAAAAIDN
AAAAAAAAAAAAAACAAJgAAAAAMAAAAAAAAACAxw8AAAAAAAAAAAAAgACYAAAAADAAAAAAAAAAgMcP
AAAAAAAAAAAAAIAAmAAAAAAwAAAAAAAAAIDHDwAAAAAAAAAAAACAAFgAAAAGMAAAAAAAAACAxw8A
AAAAAAAAAAAAgACYAAAAADAAAAAAAAAAgNARAAAAAAAAAAAAAIAAmAAAAAAwAAAAAAAAAIDQEQAA
AAAAAAAAAACAAJgAAAAAMAAAAAAAAACA0BEAAAAAAAAAAAAAgAAoAAAAAzAAAAAAAAAAgM0AAAAA
AAAAAAAAAIAAmAAAAAAwAAAAAAAAAIDNEwAAAAAAAAAAAACAAJgAAAAAMAAAAAAAAACAzRMAAAAA
AAAAAAAAgACYAAAAADAAAAAAAAAAgM0TAAAAAAAAAAAAAIAAWAAAAAYwAAAAAAAAAIDNEwAAAAAA
AAAAAACAAJgAAAAAMAAAAAAAAACA9xUAAAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgPcVAAAAAAAA
AAAAAAAAmAAAAAAwAAAAAAAAAID3FQAAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA9xUAAAAAAAAA
AAAAAACYAAAAADAAAAAAAAAAgPcVAAAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAID3FQAAAAAAAAAA
AAAAAJgAAAAAMAAAAAAAAACA9xUAAAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgPcVAAAAAAAAAAAA
AAAAmAAAAAAwAAAAAAAAAID3FQAAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA9xUAAAAAAAAAAAAA
AACYAAAAADAAAAAAAAAAgPcVAAAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAID3FQAAAAAAAAAAAAAA
AJgAAAAAMAAAAAAAAACA9xUAAAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgPcVAAAAAAAAAAAAAAAA
mAAAAAAwAAAAAAAAAID3FQAAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA9xUAAAAAAAAAAAAAAACY
AAAAADAAAAAAAAAAgPcVAAAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAID3FQAAAAAAAAAAAAAAAJgA
AAAAMAAAAAAAAACA9xUAAAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgPcVAAAAAAAAAAAAAAAAWAAA
AAYwAAAAAAAAAIDNEwAAAAAAAAAAAACAAJgAAAAAMAAAAAAAAACAQhoAAAAAAAAAAAAAAACYAAAA
ADAAAAAAAAAAgEIaAAAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIBCGgAAAAAAAAAAAAAAAJgAAAAU
MAAAAAAAAACAQhoAAAAAAAAAAAAAAACYAAAAFDAAAAAAAAAAgEIaAAAAAAAAAAAAAAAAmAAAABQw
AAAAAAAAAIBCGgAAAAAAAAAAAACAAJgAAAAUMAAAAAAAAACAQhoAAAAAAAAAAAAAAACYAAAAFDAA
AAAAAAAAgEIaAAAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIBCGgAAAAAAAAAAAAAAAJgAAAAAMAAA
AAAAAACAQhoAAAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgEIaAAAAAAAAAAAAAAAAmAAAAAAwAAAA
AAAAAIBCGgAAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAQhoAAAAAAAAAAAAAAACYAAAAADAAAAAA
AAAAgEIaAAAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIBCGgAAAAAAAAAAAAAAAJgAAAAAMAAAAAAA
AACAQhoAAAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgEIaAAAAAAAAAAAAAAAAmAAAAAAwAAAAAAAA
AIBCGgAAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAQhoAAAAAAAAAAAAAAABYAAAABjAAAAAAAAAA
gM0TAAAAAAAAAAAAAIAAmAAAAAAwAAAAAAAAAIAlIgAAAAAAAAAAAACAAJgAAAAAMAAAAAAAAACA
JSIAAAAAAAAAAAAAgACYAAAAADAAAAAAAAAAgCUiAAAAAAAAAAAAAIAAmAAGIBUwAAAAAAAAAIAl
IgAAAAAAAAAAAACAAJgABiAVMAEAAAAAAACAJSIAAAAAAAAAAAAAgACYAAYgFTACAAAAAAAAgCUi
AAAAAAAAAAAAAIAAmAAGIBUwAwAAAAAAAIAlIgAAAAAAAAAAAACAAJgABiAVMAQAAAAAAACAJSIA
AAAAAAAAAAAAgACYAAYgFTAFAAAAAAAAgCUiAAAAAAAAAAAAAIAAmAAGIBUwBgAAAAAAAIAlIgAA
AAAAAAAAAACAAJgABiAVMAcAAAAAAACAJSIAAAAAAAAAAAAAgACYAAAAFTAAAAAAAAAAgAAAAIAA
AAAAAAAAAAAAKAAAAAMwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAA
AAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAA
AAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAA
AAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAA
AAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAA
AAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAABYAAAABjAAAAAAAAAAgAAAAIAAAAAAAAAA
AAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAACAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAA
gACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAIAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAACA
AJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAgABYAAAABjAAAAAAAAAAgAAAAIAAAAAAAAAAAAAA
mAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACY
AAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgA
AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAA
AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAA
ADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAA
MAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAWAAAAAYw
AAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAA
AAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAA
AAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAA
AAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAA
AAAAgAAAAIAAAAAAAAAAAAAAKAAAAAMwAAAAAAAAAIAAAACAAAAAAAAAAACAAJgAAAAAMAAAAAAA
AACAAAAAgAAAAAAAAAAAAAAoAAAAAzAAAAAAAAAAgAAAAIAAAAAAAAAAAIAAmAAAAAAwAAAAAAAA
AIAAAACAAAAAAAAAAAAAAFgAAAAGMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAA
gAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA
AAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAA
AACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAA
AIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAA
gAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACA
AAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAA
AAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAA
AAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAA
AAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAA
AAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAA
AAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAA
AAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAA
AAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAA
AACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAA
AJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAA
mAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACY
AAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgA
AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAA
AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAA
ADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAA
MAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAw
AAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAAAoAAAAAzAA
AAAAAAAAgAAAAIAAAAAAAAAAAAAAWAAAAAYwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAA
AAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAA
AAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAA
AAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAA
AACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAA
AIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAA
gAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA
AAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAA
AACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAA
AIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAA
gAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACA
AAAAAAAAAAAAAFgAAAAGMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAA
AAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAA
AAAAAAAAAABYAAAABjAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAA
AAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAA
AAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAA
AAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAA
AAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAA
AAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAA
AACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAA
AJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAA
mAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACY
AAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgA
AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAWAAA
AAYwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAA
ADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAA
MAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAw
AAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAA
AAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAA
AAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAA
AAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAA
AAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAA
AACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAA
AIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAA
gAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACA
AAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAA
AACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAA
AIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAACgAAAADMAAAAAAAAACAAAAA
gAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACA
AAAAAAAAAAAAACgAAAADMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAA
AAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAA
AAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAmAAAAAAwAAAAAAAAAIAAAACAAAAA
AAAAAAAAAJgAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAACYAAAAADAAAAAAAAAAgAAAAIAAAAAA
AAAAAAAAAAAAAFEaAAC2GgAAtxoAADEbAAC/GwAAWSwAAF8sAACOLAAAGS0AABotAAA4LgAAXi4A
AAExAAAoMQAAVzEAAGsxAACyMQAAyzEAAOMxAAAHMgAAIzIAAEkyAABeMgAAlDIAAKcyAADpMgAA
8zIAAPoyAAAKMwAA+zMAAL83AADxOAAAczkAAJY5AACyOQAA0jkAAOc5AAAdOgAAMDoAAFw6AABm
OgAAe0EAAFqRADAAMAAAAAAAAAEAAAAEAAAAAQAAAIxoCAdakQAwADAAAAAAAAABAAAAAwAAAAAA
AAAAAAAHWtEAMAAwAAAAAAAAAgAAAAEAAAAAAAAAAAAAB1qRADAAMAAAAAAAAAEAAAAAAAAAAAAA
AAAAAAdakQAwADAAAAAAAAABAAAAAAAAAAAAAAAAAAAHWpEAMAYwAAAAAAAAAQAAAAUAAAAHAAAA
0CjhB1qRADAGMAAAAAAAAAEAAAAEAAAAAAAAAAAAAAdakQAwBjAAAAAAAAABAAAAAwAAAAAAAAAA
AAAHmkAAAAAwAAAAAAAAAIAAAAAAAAAAAAAAAAAAB5pAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAA
AAdakQAwCzAAAAAAAAABAAAABQAAAAwAAADcB3gHWpEAMAswAAAAAAAAAQAAAAQAAAAAAAAAAACA
B1qRADANMAAAAAAAAAEAAAAGAAAADgAAABQIeAdakQAwDTAAAAAAAAABAAAABQAAAAAAAAAAAAAH
WpEAMA0wAAAAAAAAAgAAAAMAAAAAAAAAAAAAB1rRADAAMAAAAAAAAAEAAAAAAAAAAAAAAAAAAAea
QAAAADAAAAAAAAAAgAAAAAAAAAAAAAAAAAAHmkAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAB5pA
AAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAAeaQAAAADAAAAAAAAAAgAAAAIAAAAAAAAAAAAAHmkAA
AAAwAAAAAAAAAIAAAACAAAAAAAAAAAAAB5pAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAgAeaQAAA
ADAAAAAAAAAAgAAAAIAAAAD4AAAAAAAHmkAAAAAwAAAAAAAAAIAAAACAAAAA+AAAAAAAB5pAAAAA
MAAAAAAAAACAAAAAgAAAAPgAAAAAAAeaQAAAADAAAAAAAAAAgAAAAIAAAAD4AAAAAAAHmkAAAAAw
AAAAAAAAAIAAAACAAAAA+AAAAAAAB5pAAAAAMAAAAAAAAACAAAAAgAAAAPgAAAAAAAeaQAAAADAA
AAAAAAAAgAAAAAAAAAAAAAAAAAAHWtEAMA0wAAAAAAAAAgAAAAMAAAAAAAAAAAAAB1rRADANMAAA
AAAAAAIAAAADAAAAAAAAAAAAAAda0QAwDTAAAAAAAAACAAAAAwAAAAAAAAAAAAAHmkAAAAAwAAAA
AAAAAIAAAACAAAAAAAAAAAAAB5pAAAAAMAAAAAAAAACAAAAAgAAAAAAAAAAAAAeaQAAAADAAAAAA
AAAAgAAAAIAAAAAAAAAAAAAHmkAAAAAwAAAAAAAAAIAAAACAAAAAAAAAAACAB5pAAAAAMAAAAAAA
AACAAAAAgAAAAPgAAAAAAAeaQAAAADAAAAAAAAAAgAAAAIAAAAD4AAAAAAAHmkAAAAAwAAAAAAAA
AIAAAACAAAAA+AAAAAAAB5pAAAAAMAAAAAAAAACAAAAAgAAAAPgAAAAAAAeaQAAAADAAAAAAAAAA
gAAAAIAAAAD4AAAAAAAHWtEAMAAwAAAAAAAAAQAAAAAAAAAAAAAAAAAABwAGAADhEgAAuCIAAHMx
AABHOAAAgT8AAHlJAAAlAAAAKgAAAC0AAAAwAAAAMgAAADYAAAAABgAAMgwAAOARAADtGQAAQSIA
AHYsAABXMQAAGTUAAO84AAAxOwAAFD4AANhAAAAfRAAAeUkAACYAAAAoAAAAKQAAACsAAAAsAAAA
LgAAAC8AAAAxAAAAMwAAADQAAAA1AAAANwAAADgAAAAABgAAeUkAACcAAABxAAAAlgAAAKUAAABM
GwAAghsAAKobAAC/GwAA8BsAABMcAAB5QQAAE1gU/xWAE1gU/xWME1gU/xWMDwAA8DgAAAAAAAbw
GAAAAAIIAAACAAAAAQAAAAEAAAABAAAAAgAAAEAAHvEQAAAA//8AAAAA/wCAgIAA9wAAEAAPAALw
kgAAABAACPAIAAAAAQAAAAEEAAAPAAPwMAAAAA8ABPAoAAAAAQAJ8BAAAAAAAAAAAAAAAAAAAAAA
AAAAAgAK8AgAAAAABAAABQAAAA8ABPBCAAAAEgAK8AgAAAABBAAAAA4AAFMAC/AeAAAAvwEAABAA
ywEAAAAA/wEAAAgABAMJAAAAPwMBAAEAAAAR8AQAAAABAAAA//8HAAAABgBeKi0AEAABADwOGQkG
AF8qLQARAAEAvN/FAwYAYCotABEAAQC8lzcDBgBhKi0AEQABABTyxwMGAGIqLQARAAEA1K/GAwYA
YyotABEAAQCUMMcDBgBkKi0AEQABADy6xwNQAAAAUAAAAFQAAABXAAAAWgAAAGEAAABqAAAAe0EA
AAUAAAACAAAAAAACAAEAAAACAAIAAAACAAMAAAACAAQAAAACAAYAAAACAFMAAABWAAAAWQAAAGAA
AABpAAAAcAAAAHAAAAB7QQAAAQABAAIAAQADAAEABAABAAUAAQAAAAAABgAAAAMAAAA5AAAABwAA
ACqAdXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6c21hcnR0YWdzBYBwbGFjZQCAPQAA
AAYAAAAqgHVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOnNtYXJ0dGFncwmAUGxhY2VO
YW1lAIA9AAAAAQAAACqAdXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6c21hcnR0YWdz
CYBQbGFjZVR5cGUAgAwAAAEMTagFAAAAAAcAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYA
AAAAAAEAAAAAAAAAAAA5AAAAPQAAAKgEAACtBAAAsgQAALYEAABBBwAASwcAAIUHAACJBwAAVQgA
AF4IAABuCQAAdAkAAFwLAABlCwAAyhAAANUQAAAvEQAANhEAAD0RAABCEQAAThEAAFIRAAA4GAAA
OxgAAE0YAABQGAAARRoAAEsaAACEGgAAhxoAAKcaAACtGgAAtxoAAN0aAAD1GgAAHBsAADMcAAA5
HAAApRwAALYcAAC3HAAAwhwAAO8cAAD4HAAAOR0AAEwdAAB4HQAAfh0AALodAADDHQAAkR4AAJce
AACXHwAAnR8AAOAgAADnIAAABCEAAAohAAA3IQAAQSEAAAciAAANIgAAsSQAALkkAADtJAAA9SQA
AG8lAAB4JQAA5CUAAO8lAACPJgAAkyYAACEpAAAoKQAA4CoAAOQqAADzKgAA/yoAAGQsAACHLAAA
5S0AAPEtAABLLgAAVC4AAGguAABsLgAAxC8AAMwvAADQMQAA3DEAADYyAAA/MgAAUzIAAFcyAAAB
NAAADjQAAMU3AADSNwAA9zgAAAQ5AABgOQAAbDkAANw5AADgOQAAnDoAAKA6AADxOgAA9zoAAPk6
AAD+OgAA/zoAAAM7AAC0OwAAwjsAAG88AAB1PAAAe0EAAAcAHAAHABwABwAcAAcAHAAHABwABwAc
AAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwA
BwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAH
ABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcA
HAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAcAAcAHAAHABwABwAAAAAA/wQAAAUFAABp
CwAAegsAAKQOAACrDgAAixEAAI4RAAAXFAAAGBQAAB4YAAAhGAAAJRgAACkYAABUGAAAWBgAAIkY
AACNGAAAsBgAALQYAADyGgAA9BoAAIMcAACJHAAAwR0AAMQdAAAaIAAAHiAAAOggAADvIAAATCMA
AFAjAAD6IwAAACQAAHYpAACOKQAA6SoAAOwqAADvKgAA8yoAAKkrAACxKwAAWiwAAF0sAAAbLQAA
Ii0AANstAADeLQAA4S0AAOUtAAD5LQAAAC4AAB0uAAAhLgAAOS4AAD8uAABfLgAAYy4AAHQuAAB7
LgAAqi4AAK4uAAC9LgAAxC4AACQvAAAyLwAAvC8AAMEvAABvMAAAcTAAAPAwAAD1MAAA/DAAAP8w
AAACMQAABjEAACkxAAAtMQAAWDEAAFwxAABsMQAAcjEAALMxAAC3MQAAxjEAAMkxAADMMQAA0DEA
AOQxAADrMQAACDIAAAwyAAAkMgAAKjIAAEoyAABOMgAAXzIAAGYyAACVMgAAmTIAAKgyAACvMgAA
uDMAAL0zAADDMwAAxjMAAMkzAADNMwAA/TMAAAE0AAAWNAAAGTQAABw0AAAgNAAANTQAAD00AABN
NAAAUTQAAGA0AABmNAAAKDcAACw3AAB7NwAAgDcAAIY3AACJNwAAjDcAAJA3AACnNwAArzcAAME3
AADFNwAA2jcAAN03AADgNwAA5DcAAPk3AAABOAAAETgAABU4AABbOAAAYDgAAJo4AACjOAAArTgA
ALI4AAC4OAAAuzgAAL44AADCOAAA2TgAAOE4AADzOAAA9zgAAAw5AAAPOQAAEjkAABY5AAArOQAA
MzkAAEM5AABHOQAAVjkAAFk5AABcOQAAYDkAAHQ5AAB7OQAAlzkAAJs5AACzOQAAujkAANM5AADX
OQAA6DkAAO85AAAeOgAAIjoAADE6AAA4OgAAoDoAAKI6AAB7QQAABwAzAAcAMwAHADMABwAzAAcA
MwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAz
AAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMA
BwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAH
ADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcA
MwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAz
AAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMABwAzAAcAMwAHADMA
BwAzAAcAAAAAAMEDAAAdBAAARwUAAHEFAACXPwAAeEEAAHtBAAADAAQAAwAEAAMABAAHAAAAAAB7
QQAABwAMAHz////olv7n/w//D/8P/w//D/8P/w//D/8PAQB9////xhOwMv8P/w//D/8P/w//D/8P
/w//DwEAfv///6qQWtj/D/8P/w//D/8P/w//D/8P/w8BAH////8qzpIg/w//D/8P/w//D/8P/w//
D/8PAQCA////kDdGQ/8P/w//D/8P/w//D/8P/w//DwEAgf///yZAuIf/D/8P/w//D/8P/w//D/8P
/w8BAIL///8gGvT9/w//D/8P/w//D/8P/w//D/8PAQCD////SC5W9P8P/w//D/8P/w//D/8P/w//
DwEAiP///8y02isVAP8P/w//D/8P/w//D/8P/w8BAIn///+sfnDEDwD/D/8P/w//D/8P/w//D/8P
AQCGf68Zvi5O9/8P/w//D/8P/w//D/8P/w//DxAAAUtIPD44RGf/D/8P/w//D/8P/w//D/8P/w8Q
AAEAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAYAAAPhAgHEYSY/hXGBQABCAcGXoQIB2CEmP4CAAAA
LgABAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAGAAAD4SgBRGEmP4VxgUAAaAFBl6EoAVghJj+AgAA
AC4AAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAABgAAA+EOAQRhJj+FcYFAAE4BAZehDgEYISY/gIA
AAAuAAEAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAYAAAPhNACEYSY/hXGBQAB0AIGXoTQAmCEmP4C
AAAALgABAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAALGAAAD4QIBxGEmP4VxgUAAQgHBl6ECAdghJj+
T0oBAFFKAQBvKAABALfwAQAAABcAAAAAAAAAAAAAAAAAAAAAAAAACxgAAA+EoAURhJj+FcYFAAGg
BQZehKAFYISY/k9KAQBRSgEAbygAAQC38AEAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAsYAAAPhDgE
EYSY/hXGBQABOAQGXoQ4BGCEmP5PSgEAUUoBAG8oAAEAt/ABAAAAFwAAAAAAAAAAAAAAAAAAAAAA
AAALGAAAD4TQAhGEmP4VxgUAAdACBl6E0AJghJj+T0oBAFFKAQBvKAABALfwAQAAAAAAAQAAAAAA
AAAAAAAAAAAAAAAAABgAAA+EaAERhJj+FcYFAAFoAQZehGgBYISY/gIAAAAuAAEAAAAXAAAAAAAA
AAAAAAAAAAAAAAAAAAsYAAAPhGgBEYSY/hXGBQABaAEGXoRoAWCEmP5PSgEAUUoBAG8oAAEAt/AB
AAAAABABAAAAAAAAAAAAaAEAAAAAAAAKGAAAD4RoARGEmP4VxgUAAWgBBl6EaAFghJj+h2gAAAAA
iEgAAAIAAAAuAAEAAAAEEAEAAAAAAAAAAABoAQAAAAAAAAoYAAAPhKAFEYSY/hXGBQABoAUGXoSg
BWCEmP6HaAAAAACISAAAAgABAC4AAQAAAAKSAQAAAAAAAAAAAGgBAAAAAAAAChgAAA+EcAgRhEz/
FcYFAAFwCAZehHAIYIRM/4doAAAAAIhIAAACAAIALgABAAAAAJABAAAAAAAAAAAAaAEAAAAAAAAK
GAAAD4RACxGEmP4VxgUAAUALBl6EQAtghJj+h2gAAAAAiEgAAAIAAwAuAAEAAAAEkAEAAAAAAAAA
AABoAQAAAAAAAAoYAAAPhBAOEYSY/hXGBQABEA4GXoQQDmCEmP6HaAAAAACISAAAAgAEAC4AAQAA
AAKSAQAAAAAAAAAAAGgBAAAAAAAAChgAAA+E4BARhEz/FcYFAAHgEAZehOAQYIRM/4doAAAAAIhI
AAACAAUALgABAAAAAJABAAAAAAAAAAAAaAEAAAAAAAAKGAAAD4SwExGEmP4VxgUAAbATBl6EsBNg
hJj+h2gAAAAAiEgAAAIABgAuAAEAAAAEkAEAAAAAAAAAAABoAQAAAAAAAAoYAAAPhIAWEYSY/hXG
BQABgBYGXoSAFmCEmP6HaAAAAACISAAAAgAHAC4AAQAAAAKSAQAAAAAAAAAAAGgBAAAAAAAAChgA
AA+EUBkRhEz/FcYFAAFQGQZehFAZYIRM/4doAAAAAIhIAAACAAgALgABAAAAABABAAAAAAAAAAAA
aAEAAAAAAAAKGAAAD4TQAhGEmP4VxgUAAdACBl6E0AJghJj+h2gAAAAAiEgAAAIAAAAuAAEAAAAE
kAEAAAAAAAAAAABoAQAAAAAAAAoYAAAPhKAFEYSY/hXGBQABoAUGXoSgBWCEmP6HaAAAAACISAAA
AgABAC4AAQAAAAKSAQAAAAAAAAAAAGgBAAAAAAAAChgAAA+EcAgRhEz/FcYFAAFwCAZehHAIYIRM
/4doAAAAAIhIAAACAAIALgABAAAAAJABAAAAAAAAAAAAaAEAAAAAAAAKGAAAD4RACxGEmP4VxgUA
AUALBl6EQAtghJj+h2gAAAAAiEgAAAIAAwAuAAEAAAAEkAEAAAAAAAAAAABoAQAAAAAAAAoYAAAP
hBAOEYSY/hXGBQABEA4GXoQQDmCEmP6HaAAAAACISAAAAgAEAC4AAQAAAAKSAQAAAAAAAAAAAGgB
AAAAAAAAChgAAA+E4BARhEz/FcYFAAHgEAZehOAQYIRM/4doAAAAAIhIAAACAAUALgABAAAAAJAB
AAAAAAAAAAAAaAEAAAAAAAAKGAAAD4SwExGEmP4VxgUAAbATBl6EsBNghJj+h2gAAAAAiEgAAAIA
BgAuAAEAAAAEkAEAAAAAAAAAAABoAQAAAAAAAAoYAAAPhIAWEYSY/hXGBQABgBYGXoSAFmCEmP6H
aAAAAACISAAAAgAHAC4AAQAAAAKSAQAAAAAAAAAAAGgBAAAAAAAAChgAAA+EUBkRhEz/FcYFAAFQ
GQZehFAZYIRM/4doAAAAAIhIAAACAAgALgAMAAAAif///wAAAAAAAAAAAAAAAIP///8AAAAAAAAA
AAAAAACC////AAAAAAAAAAAAAAAAgf///wAAAAAAAAAAAAAAAID///8AAAAAAAAAAAAAAACI////
AAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAH7///8AAAAAAAAAAAAAAAB9////AAAAAAAAAAAA
AAAAfP///wAAAAAAAAAAAAAAAAFLSDwAAAAAAAAAAAAAAACGf68ZAAAAAAAAAAAAAAAA////////
//////////////////////////////////////////////////////////8MAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAA//8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAA8ACQQZAAkEGwAJBA8A
CQQZAAkEGwAJBA8ACQQZAAkEGwAJBBIADwAJBBkACQQbAAkEDwAJBBkACQQbAAkEDwAJBBkACQQb
AAkEAwDUC24mAAAAAAAAAAAAAQIAAgAeQH0tAAAAAAAAAAAAAQIAAgCPV4FWAAAAAAAAAAAAAQIA
AgBbAAAABAAAAAgAAADlAAAAAAAAAFoAAADhRgQAQVYFAP5BCwDMTwsA9TkOAFRSEADpbRcAk3Aa
AAtkIgAMVSUA9X4mANRzJwDiRysAL0EtAHYiLgBMZTIAJHUzAJF0NQD7JDcAHxc5ANlkOgDCLz0A
Ows/AHsjPwDULlMAUXlUAOI6VwBKDFgA5DhYAAZBWgDPV1oALXdbAGciYADbXWIAiCNlANlnaAAw
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
IExldmluZQAeAAAABAAAAAAAAAAeAAAABAAAAAAAAAAeAAAADAAAAE5vcm1hbC5kb3QAAB4AAAAQ
AAAARGF2aWQgVy4gTGV2aW5lAB4AAAAEAAAAMTMAAB4AAAAYAAAATWljcm9zb2Z0IE9mZmljZSBX
b3JkAAAAQAAAAAAms6cFAQAAQAAAAAAGW1jI7skBQAAAAABgZKqK78kBQAAAAADOuKTm9MkBAwAA
AAEAAAADAAAAxQkAAAMAAAC0NwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7/AAAFAQIAAAAA
AAAAAAAAAAAAAAAAAAIAAAAC1c3VnC4bEJOXCAArLPmuRAAAAAXVzdWcLhsQk5cIACss+a5UAQAA
EAEAAAwAAAABAAAAaAAAAA8AAABwAAAABQAAAHwAAAAGAAAAhAAAABEAAACMAAAAFwAAAJQAAAAL
AAAAnAAAABAAAACkAAAAEwAAAKwAAAAWAAAAtAAAAA0AAAC8AAAADAAAAPIAAAACAAAA5AQAAB4A
AAAEAAAASUJNAAMAAAB2AAAAAwAAACEAAAADAAAAWEEAAAMAAAAPJwsACwAAAAAAAAALAAAAAAAA
AAsAAAAAAAAACwAAAAAAAAAeEAAAAQAAACoAAABPR1AgdW5kZXJwaW5uaW5ncywgYSBwZXJzb25h
bCBwZXJzcGVjdGl2ZQAMEAAAAgAAAB4AAAAGAAAAVGl0bGUAAwAAAAEAAACsAQAAAwAAAAAAAAAg
AAAAAQAAADgAAAACAAAAQAAAAAEAAAACAAAADAAAAF9QSURfSExJTktTAAIAAADkBAAAQQAAAGQB
AAASAAAAAwAAAGgAKwADAAAABgAAAAMAAAAAAAAAAwAAAAUAAAAfAAAAIwAAAGgAdAB0AHAAOgAv
AC8AdABvAG8AbABzAC4AaQBlAHQAZgAuAG8AcgBnAC8AaAB0AG0AbAAvAHIAZgBjADMAOQA4ADYA
AAAAAB8AAAABAAAAAADHCAMAAAAeAHUAAwAAAAMAAAADAAAAAAAAAAMAAAAFAAAAHwAAACgAAABo
AHQAdABwADoALwAvAGUAbgAuAHcAaQBrAGkAcABlAGQAaQBhAC4AbwByAGcALwB3AGkAawBpAC8A
VQBSAEkAXwBzAGMAaABlAG0AZQAAAB8AAAABAAAAAADHCAMAAABpABIAAwAAAAAAAAADAAAAAAAA
AAMAAAAFAAAAHwAAABYAAABtAGEAaQBsAHQAbwA6AGQAdwBsAEAAdQBzAC4AaQBiAG0ALgBjAG8A
bQAAAB8AAAABAAAAAADHCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAA
AAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAA
FAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAi
AAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAA
AAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAD+////OwAAADwAAAA9AAAAPgAA
AD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAA
TQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABb
AAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkA
AABqAAAAawAAAGwAAABtAAAAbgAAAG8AAABwAAAAcQAAAHIAAABzAAAAdAAAAHUAAAB2AAAAdwAA
AHgAAAB5AAAAegAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAgAAAAIEAAACCAAAAgwAAAIQAAACFAAAA
hgAAAIcAAACIAAAAiQAAAIoAAACLAAAAjAAAAI0AAACOAAAAjwAAAJAAAACRAAAAkgAAAJMAAACU
AAAAlQAAAJYAAACXAAAAmAAAAJkAAACaAAAAmwAAAJwAAACdAAAAngAAAJ8AAACgAAAAoQAAAKIA
AACjAAAApAAAAKUAAACmAAAApwAAAKgAAACpAAAAqgAAAKsAAACsAAAArQAAAK4AAACvAAAAsAAA
ALEAAACyAAAAswAAALQAAAC1AAAAtgAAALcAAAC4AAAAuQAAALoAAAC7AAAAvAAAAL0AAAC+AAAA
/v///8AAAADBAAAAwgAAAMMAAADEAAAAxQAAAMYAAADHAAAAyAAAAMkAAADKAAAAywAAAMwAAADN
AAAAzgAAAM8AAADQAAAA0QAAANIAAADTAAAA1AAAANUAAADWAAAA1wAAANgAAADZAAAA2gAAANsA
AADcAAAA3QAAAN4AAADfAAAA4AAAAOEAAADiAAAA4wAAAOQAAADlAAAA/v///+cAAADoAAAA6QAA
AOoAAADrAAAA7AAAAO0AAAD+////7wAAAPAAAADxAAAA8gAAAPMAAAD0AAAA9QAAAP7////9////
/f////kAAAD+/////v////7/////////////////////////UgBvAG8AdAAgAEUAbgB0AHIAeQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYABQH//////////wMA
AAAGCQIAAAAAAMAAAAAAAABGAAAAAAAAAAAAAAAAYM8drOb0yQH7AAAAgAAAAAAAAABEAGEAdABh
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
CgACAf///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoAAAAb
CAEAAAAAADEAVABhAGIAbABlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAOAAIBAQAAAAYAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAvwAAAK5NAAAAAAAAVwBvAHIAZABEAG8AYwB1AG0AZQBuAHQAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAgECAAAABQAAAP////8AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALnIAAAAAAAAFAFMAdQBtAG0AYQByAHkASQBuAGYA
bwByAG0AYQB0AGkAbwBuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAACAf//////////////
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOYAAAAAEAAAAAAAAAUARABvAGMA
dQBtAGUAbgB0AFMAdQBtAG0AYQByAHkASQBuAGYAbwByAG0AYQB0AGkAbwBuAAAAAAAAAAAAAAA4
AAIBBAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7gAAAAAQ
AAAAAAAAAQBDAG8AbQBwAE8AYgBqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAABIAAgD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD+////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////AQD+/wMKAAD/////BgkCAAAAAADAAAAA
AAAARh8AAABNaWNyb3NvZnQgT2ZmaWNlIFdvcmQgRG9jdW1lbnQACgAAAE1TV29yZERvYwAQAAAA
V29yZC5Eb2N1bWVudC44APQ5snEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=

--=_mixed 005DFB7A852575DF_=--

From josh@lindenlab.com  Thu Jun 25 09:56:46 2009
Return-Path: <josh@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 654253A6804 for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 09:56:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hsb8Bep0hIaQ for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 09:56:45 -0700 (PDT)
Received: from tammy.lindenlab.com (tammy.lindenlab.com [216.82.11.128]) by core3.amsl.com (Postfix) with ESMTP id 7F29F3A6821 for <ogpx@ietf.org>; Thu, 25 Jun 2009 09:56:45 -0700 (PDT)
Received: from [10.1.8.223] (thickslab.lindenlab.com [10.1.8.223]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tammy.lindenlab.com (Postfix) with ESMTP id 878BF3DBC45E for <ogpx@ietf.org>; Thu, 25 Jun 2009 09:54:53 -0700 (PDT)
Message-ID: <4A43ABDF.1010800@lindenlab.com>
Date: Thu, 25 Jun 2009 09:54:55 -0700
From: Joshua Bell <josh@lindenlab.com>
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
MIME-Version: 1.0
To: ogpx@ietf.org
References: <4A3BE302.5070405@isode.com> <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com>
In-Reply-To: <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [ogpx] Informal draft for discussion -- client side capabilitiesand setup flows
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jun 2009 16:56:46 -0000

Still digesting, but some quick feedback:

* Re: the eventq(s) schemes - am I correct in my interpretation that 
these URIs would not be exposed outside of a single (agent, region) 
domain? If so, would these be considered a "best 
practice"/"implementation detail" rather than something normative? (The 
document is clearly discussing patterns so it's within scope for the 
document.) If not, then I'm misinterpreting something.

* For *examples* in documents, could we informally standardize on using 
JSON serialization of LLSD rather than the XML serialization? I realize 
that XML is more expressive (e.g. you can distinguish strings vs. UUIDs) 
but JSON is more compact and it avoids having non-LLSD-savvy XML-centric 
users readers from gagging at the seemingly crazy implied schema. 
(Formal interface specifications should use LLIDL.)


David W Levine wrote:
>
> This is an informal draft intended to drive some feedback and 
> discussion. The content follows the discussion a week ago, in SL at 
> the weekly AWGroupies meeting. Feedback is welcome, and encouraged, 
> here, and at next week's AWGroupy meeting. For those who do not follow 
> the weekly discussions, they are held in world, on Second Life Contact 
> Zha Ewry (me) or Saijanai Kuhn in world for an invite. The AWGroupies 
> meet Tuesday mornings at 9:30 AM Pacific time, in second life. For 
> those who do not routinely use second life, a free account is 
> available, details at the Linden Lab web site: 
> _http://secondlife.com/_   I expect the next iteration of the document 
> to be posted as an IETF input for discussion at IETF75 in Stockholm.
>
>
>
>
>
> - David Levine
> ~ Zha Ewry  (In Second Life)
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx


From infinity@lindenlab.com  Thu Jun 25 11:15:04 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9424E3A6F91 for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 11:15:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.683
X-Spam-Level: 
X-Spam-Status: No, score=-1.683 tagged_above=-999 required=5 tests=[AWL=0.294,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id I7LfSAP16cRg for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 11:15:03 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.245]) by core3.amsl.com (Postfix) with ESMTP id ACA123A659B for <ogpx@ietf.org>; Thu, 25 Jun 2009 11:15:03 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c37so494872anc.4 for <ogpx@ietf.org>; Thu, 25 Jun 2009 11:13:29 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.11.14 with SMTP id 14mr3709890ank.81.1245953609726; Thu,  25 Jun 2009 11:13:29 -0700 (PDT)
In-Reply-To: <4A43ABDF.1010800@lindenlab.com>
References: <4A3BE302.5070405@isode.com> <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com> <4A43ABDF.1010800@lindenlab.com>
Date: Thu, 25 Jun 2009 11:13:29 -0700
Message-ID: <3a880e2c0906251113t380353caw17dba4d5537abd90@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Joshua Bell <josh@lindenlab.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: ogpx@ietf.org
Subject: Re: [ogpx] Informal draft for discussion -- client sidecapabilitiesand setup flows
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jun 2009 18:15:04 -0000

i think the idea is that there might be a trust relationship between
two domains (where a domain is a collection of machines administered
by a distinct entity) where the first domain provides an event queue
to a client and the second domain has need to send a message to the
client. the event queue uri scheme provides an addressing mechanism
for the first domain to identify the client-server connection to the
second domain.

trust is an important part of this equation, but is addressed in the
URI scheme only to the degree you can select an eq: or eqs: scheme
(the latter indicating the mandatory use of TLS.) david and i are
working on the PKIX profile for inter-domain trust, so we expect
service consumers and providers who are in different domains to
implement a security policy in line with their own security
requirements. for instance, a large public grid operator might require
all incoming event queue requests to be made via TLS with a trusted
client certificate while small experimental grids might be promiscuous
when honoring connection requests.

the utility of this scheme is more apparent when we consider client
side capabilities. in some cases, it is useful for a client
application to generate a capability and pass it to the domain host
managing an event queue. the domain host may then pass this capability
off to a third party for processing. the advantage is we can avoid the
confused deputy problem while supporting flexible deployment. (i.e. -
we can use this to build an ecosystem of service providers that rely
on client capabilities.)

so yeah. we think it's good for it to be normative. that being said,
if your service doesn't use it and won't honor requests, then you may
choose not to deploy code that supports it.

with respect to JSON vs. XML, i have no personal preference per se.
however, if XML examples lead people to believe we're using a fixed
XML schema, then JSON examples may lead other people to believe our
system is stock 4627 JSON, which it isn't. maybe both?

On Thu, Jun 25, 2009 at 9:54 AM, Joshua Bell<josh@lindenlab.com> wrote:
> Still digesting, but some quick feedback:
>
> * Re: the eventq(s) schemes - am I correct in my interpretation that these
> URIs would not be exposed outside of a single (agent, region) domain? If so,
> would these be considered a "best practice"/"implementation detail" rather
> than something normative? (The document is clearly discussing patterns so
> it's within scope for the document.) If not, then I'm misinterpreting
> something.
>
> * For *examples* in documents, could we informally standardize on using JSON
> serialization of LLSD rather than the XML serialization? I realize that XML
> is more expressive (e.g. you can distinguish strings vs. UUIDs) but JSON is
> more compact and it avoids having non-LLSD-savvy XML-centric users readers
> from gagging at the seemingly crazy implied schema. (Formal interface
> specifications should use LLIDL.)
>
>

[stuff removed]

From john.hurliman@intel.com  Thu Jun 25 12:11:13 2009
Return-Path: <john.hurliman@intel.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EC0AE3A68B9 for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 12:11:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bJNo3CQZsi+w for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 12:11:13 -0700 (PDT)
Received: from mga14.intel.com (mga14.intel.com [143.182.124.37]) by core3.amsl.com (Postfix) with ESMTP id 423C93A67B5 for <ogpx@ietf.org>; Thu, 25 Jun 2009 12:11:13 -0700 (PDT)
Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga102.ch.intel.com with ESMTP; 25 Jun 2009 12:07:24 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.42,292,1243839600"; d="scan'208";a="158551756"
Received: from rrsmsx603.amr.corp.intel.com ([10.31.0.57]) by azsmga001.ch.intel.com with ESMTP; 25 Jun 2009 12:07:24 -0700
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx603.amr.corp.intel.com ([10.31.0.57]) with mapi; Thu, 25 Jun 2009 13:07:21 -0600
From: "Hurliman, John" <john.hurliman@intel.com>
To: "ogpx@ietf.org" <ogpx@ietf.org>
Date: Thu, 25 Jun 2009 13:07:18 -0600
Thread-Topic: LLSD JSON compatibility
Thread-Index: Acn1wOna2+/2loUoQdSwB1QwQukcvAABwZPg
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D91239F09@rrsmsx506.amr.corp.intel.com>
References: <4A3BE302.5070405@isode.com> <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com> <4A43ABDF.1010800@lindenlab.com> <3a880e2c0906251113t380353caw17dba4d5537abd90@mail.gmail.com>
In-Reply-To: <3a880e2c0906251113t380353caw17dba4d5537abd90@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: [ogpx] LLSD JSON compatibility
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jun 2009 19:11:14 -0000

In what ways is the JSON that is created when serializing LLSD messages not=
 compatible with RFC 4627?

John

From infinity@lindenlab.com  Thu Jun 25 12:12:59 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id DDDE73A684D; Thu, 25 Jun 2009 12:12:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.403
X-Spam-Level: 
X-Spam-Status: No, score=-1.403 tagged_above=-999 required=5 tests=[AWL=-0.026, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_34=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ck9OGt+pAAZk; Thu, 25 Jun 2009 12:12:58 -0700 (PDT)
Received: from mail-yx0-f171.google.com (mail-yx0-f171.google.com [209.85.210.171]) by core3.amsl.com (Postfix) with ESMTP id AFF883A6837; Thu, 25 Jun 2009 12:12:58 -0700 (PDT)
Received: by yxe1 with SMTP id 1so2719265yxe.29 for <multiple recipients>; Thu, 25 Jun 2009 12:12:13 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.46.10 with SMTP id t10mr3751633ant.116.1245956765375; Thu,  25 Jun 2009 12:06:05 -0700 (PDT)
In-Reply-To: <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com>
References: <4A3BE302.5070405@isode.com> <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com>
Date: Thu, 25 Jun 2009 12:06:05 -0700
Message-ID: <3a880e2c0906251206q219b2e8fx471b359cdeb35747@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: David W Levine <dwl@us.ibm.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx-bounces@ietf.org, ogpx@ietf.org
Subject: Re: [ogpx] Informal draft for discussion -- client side capabilitiesand setup flows
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jun 2009 19:13:00 -0000

and some nits...

in requirements, item 2, were we going to add the use case of the
client application having a routable IP address and responding to HTTP
requests directly? i think we talked about it and we (Linden) figured
we would probably rarely see such a use case, but you (IBM) thought it
was likely enough to be supported. personally, i think it would be
okay if we identified it as an option (not a requirement) of the
client application and that client capabilities were simply formulated
as http(s): URIs, we could just not deploy it in our client ('cause it
DOES have security ramifications.)

the example ... hmm ... we've got to be able to come up with a better
example. one of the things i've been thinking about is how the
underlying OGP mechanisms may be used with HyperGrid and CableBeach.
maybe there's a use case here for when users direct their avatars to
move across HG grid boundaries? if i understand it correctly,
different HG grids may specify distinct agent domains and asset
servers. perhaps the use case of a client mediated grid transfer in HG
would bear fruit.

i think.. in general... the existing event queue defined in OGP:Base
is perfectly acceptable for a wide number of uses, and will be less of
a lightening rod for security screeds. but yeah... when you need a
client side cap, sending a message down an event queue just won't
work.

so... i guess i'm thinking... we should do a little more word defining
WHEN client side caps are appropriate and when an existing event queue
structure is acceptable.

and about the URI scheme... i thought we were going to call it eq://
and eqs://. and lets be more explicit:

EQ://client_id@host:port/path?query#fragment

or

EQS://client_id@host:port/path?query#fragment

and... the example at the end seems to imply that it's the agent host
that creates the capability. shouldn't the client be the one that
creates the path portion of the capability and passes it off to the
agent host?

On Wed, Jun 24, 2009 at 10:06 AM, David W Levine<dwl@us.ibm.com> wrote:
>
> This is an informal draft intended to drive some feedback and discussion.
> The content follows the discussion a week ago, in SL at the weekly
> AWGroupies meeting. Feedback is welcome, and encouraged, here, and at nex=
t
> week's AWGroupy meeting. For those who do not follow the weekly discussio=
ns,
> they are held in world, on Second Life Contact Zha Ewry (me) or
> Saijanai=A0Kuhn=A0in world for an invite. The AWGroupies meet Tuesday mor=
nings
> at 9:30 AM Pacific time, in second life. For those who do not routinely u=
se
> second life, a free account is available, details at the Linden Lab web
> site: http://secondlife.com/ =A0 I expect the next iteration of the docum=
ent
> to be posted as an IETF input for discussion at IETF75 in Stockholm.
>
>
>
>
>
> - David Levine
> ~ Zha Ewry =A0(In Second Life)
>
>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>
>

From alexey.melnikov@isode.com  Thu Jun 25 12:27:15 2009
Return-Path: <alexey.melnikov@isode.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B48673A6A91 for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 12:27:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.576
X-Spam-Level: 
X-Spam-Status: No, score=-2.576 tagged_above=-999 required=5 tests=[AWL=0.023,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OYnuxFuYRb8F for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 12:27:15 -0700 (PDT)
Received: from rufus.isode.com (rufus.isode.com [62.3.217.251]) by core3.amsl.com (Postfix) with ESMTP id 989103A67B5 for <ogpx@ietf.org>; Thu, 25 Jun 2009 12:27:13 -0700 (PDT)
Received: from [94.197.225.41] (94.197.225.41.threembb.co.uk [94.197.225.41])  by rufus.isode.com (submission channel) via TCP with ESMTPA  id <SkPPVABV9JM5@rufus.isode.com>; Thu, 25 Jun 2009 20:26:14 +0100
Message-ID: <4A43CF28.8050803@isode.com>
Date: Thu, 25 Jun 2009 20:25:28 +0100
From: Alexey Melnikov <alexey.melnikov@isode.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915
X-Accept-Language: en-us, en
To: Infinity Linden <infinity@lindenlab.com>
References: <4A3BE302.5070405@isode.com> <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com> <4A43ABDF.1010800@lindenlab.com> <3a880e2c0906251113t380353caw17dba4d5537abd90@mail.gmail.com>
In-Reply-To: <3a880e2c0906251113t380353caw17dba4d5537abd90@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: ogpx@ietf.org
Subject: Re: [ogpx] Informal draft for discussion -- client sidecapabilitiesand setup flows
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jun 2009 19:27:15 -0000

Infinity Linden wrote:
 [...]

>with respect to JSON vs. XML, i have no personal preference per se.
>however, if XML examples lead people to believe we're using a fixed
>XML schema, then JSON examples may lead other people to believe our
>system is stock 4627 JSON, which it isn't. maybe both?
>
It would be better to avoid having both. If you can't avoid, make one of 
them normative and the other one informative.


From infinity@lindenlab.com  Thu Jun 25 14:35:10 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 1A4863A6941 for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 14:35:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.701
X-Spam-Level: 
X-Spam-Status: No, score=-1.701 tagged_above=-999 required=5 tests=[AWL=0.276,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dXuXx5mVeFIR for <ogpx@core3.amsl.com>; Thu, 25 Jun 2009 14:35:08 -0700 (PDT)
Received: from mail-yx0-f171.google.com (mail-yx0-f171.google.com [209.85.210.171]) by core3.amsl.com (Postfix) with ESMTP id 851F13A6811 for <ogpx@ietf.org>; Thu, 25 Jun 2009 14:35:08 -0700 (PDT)
Received: by yxe1 with SMTP id 1so2867338yxe.29 for <ogpx@ietf.org>; Thu, 25 Jun 2009 14:33:07 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.255.7 with SMTP id c7mr3889731ani.137.1245965153984; Thu,  25 Jun 2009 14:25:53 -0700 (PDT)
In-Reply-To: <62BFE5680C037E4DA0B0A08946C0933D91239F09@rrsmsx506.amr.corp.intel.com>
References: <4A3BE302.5070405@isode.com> <OF68EA1CF7.7097A5B8-ON852575DF.005D4F02-852575DF.005DFB80@us.ibm.com> <4A43ABDF.1010800@lindenlab.com> <3a880e2c0906251113t380353caw17dba4d5537abd90@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D91239F09@rrsmsx506.amr.corp.intel.com>
Date: Thu, 25 Jun 2009 14:25:53 -0700
Message-ID: <3a880e2c0906251425y2c0b90f9w304539b735b55735@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: "Hurliman, John" <john.hurliman@intel.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] LLSD JSON compatibility
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jun 2009 21:35:10 -0000

it is compatible with the 'value' non-terminal instead of the
'JSON-text' non-terminal defined in RFC4627. this is because we wanted
to allow a JSON serialized LLSD message to encode non-collections.
(RFC4627 REQUIRES valid JSON-text messages to begin with a '[' or
'{'.)

as described in the draft, valid JSON serialized LLSD messages are a
subset of valid JSON messages since LLSD REQUIRES UTF8. ergo, it is
possible to have a message that is valid under RFC4627 but an invalid
JSON serialized LLSD message.

however, given JavaScript parsing rules, a client which respects the
UTF-8 requirement of LLSD will be able to parse messages described by
the 'value' non-terminal in RFC4627 with the code given in the RFC.

in other words, we allow servers to give us JSON messages that are not
strictly compliant with RFC4627, and like virtually every web browser
in common use, we do not require JSON messages to be collections.



On Thu, Jun 25, 2009 at 12:07 PM, Hurliman, John<john.hurliman@intel.com> wrote:
> In what ways is the JSON that is created when serializing LLSD messages not compatible with RFC 4627?
>
> John
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>

From infinity@lindenlab.com  Fri Jun 26 11:24:32 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 5FBCD3A6A97 for <ogpx@core3.amsl.com>; Fri, 26 Jun 2009 11:24:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.517
X-Spam-Level: 
X-Spam-Status: No, score=-0.517 tagged_above=-999 required=5 tests=[AWL=-0.940, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_34=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_64=0.6, J_CHICKENPOX_66=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id o6slXRDnB0HG for <ogpx@core3.amsl.com>; Fri, 26 Jun 2009 11:24:30 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.247]) by core3.amsl.com (Postfix) with ESMTP id 337893A68F1 for <ogpx@ietf.org>; Fri, 26 Jun 2009 11:24:29 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c37so839696anc.4 for <ogpx@ietf.org>; Fri, 26 Jun 2009 11:23:48 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.251.10 with SMTP id y10mr5379274anh.38.1246040627950; Fri,  26 Jun 2009 11:23:47 -0700 (PDT)
Date: Fri, 26 Jun 2009 11:23:47 -0700
Message-ID: <3a880e2c0906261123g4c6c3dbq77029dee0c4b5128@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: ogpx@ietf.org
Content-Type: multipart/mixed; boundary=00163691fe650136d4046d44712c
Subject: [ogpx] OpenID and OGP : beginning the discussion ...
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jun 2009 18:24:32 -0000

--00163691fe650136d4046d44712c
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

hey peeps.

so a couple years ago there were some preliminary discussions about
integrating OpenID and Second Life(tm). by all accounts, they sorta
went no where. now that a OGP is being defined in terms of LLSD/LLIDL
messages being transported over HTTP (though again... OGP _can_ go
over other transports, we're just starting with HTTP since the
toolchain surrounding HTTP is well developed.) but now that well
defined HTTP messages are a part of OGP, maybe it's time to start
talking about OpenID and virtual worlds again.

so.. there are a couple "issues" with OpenID and desktop applications.
most notably that OpenID concludes it's authentication dance with a
re-direct. as there are limited ways to redirect to a desktop
application (and yes, you could have your application expose a HTTP
service on the local interface to redirect to, but the security
ramifications make it sub-optimal and it's at least as much of a hack
as what we're proposing here.) but as there are limited ways to
redirect to a desktop application, we're proposing that agent domains
that accept OpenID authentication accept a redirect to a service that
responds with a LLIDL/LLSD resource which includes context for
launching the client application. you could apply a unique MIME type
to the message and register the client application as a helper app for
that mime type to ensure the client receives the message from the web
browser.

included in the "launch request message" would be the login URI of the
grid you wish to attach to and info about the agent or account you
want to use to login. since it's an LLIDL/LLSD message, you can add
data fields to the message that might be understandable by one agent
domain, but not another (specifically... if you wanted to tell the
client application to use a different asset server than the default
one for a particular agent domain...)

all the good parts in this draft come from John Hurliman, so thank him
if you like it. if you don't like it, feel free to blame me.

also.. just a note... there's some serious soul searching about
whether the processing expectations section needs to be in a different
draft from the message format definition, or even if all of this needs
to go into the ogp:auth draft and the processing expectations stuff
listed as an option. remember... this is a draft.. it's not set in
stone yet, so if you have ideas about the format or content, please
feel free to bring them up!

-cheers
-meadhbh

--00163691fe650136d4046d44712c
Content-Type: text/plain; charset=US-ASCII; name="draft-hamrick-ogp-launch.txt"
Content-Disposition: attachment; filename="draft-hamrick-ogp-launch.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fwf8b4660

CgoKTmV0d29yayBXb3JraW5nIEdyb3VwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNLiBIYW1yaWNrCkludGVybmV0LURyYWZ0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExpbmRlbiBSZXNlYXJjaCwgSW5jLgpJbnRlbmRlZCBzdGF0dXM6IFN0YW5k
YXJkcyBUcmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIEp1bmUgMjYsIDIwMDkKRXhwaXJl
czogRGVjZW1iZXIgMjgsIDIwMDkKCgogICAgICAgICBPcGVuIEdyaWQgUHJvdG9jb2wgOiBDbGll
bnQgQXBwbGljYXRpb24gTGF1bmNoIE1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICAgIGRyYWZ0
LWhhbXJpY2stb2dwLWxhdW5jaC0wMAoKU3RhdHVzIG9mIHRoaXMgTWVtbwoKICAgVGhpcyBJbnRl
cm5ldC1EcmFmdCBpcyBzdWJtaXR0ZWQgdG8gSUVURiBpbiBmdWxsIGNvbmZvcm1hbmNlIHdpdGgg
dGhlCiAgIHByb3Zpc2lvbnMgb2YgQkNQIDc4IGFuZCBCQ1AgNzkuCgogICBJbnRlcm5ldC1EcmFm
dHMgYXJlIHdvcmtpbmcgZG9jdW1lbnRzIG9mIHRoZSBJbnRlcm5ldCBFbmdpbmVlcmluZwogICBU
YXNrIEZvcmNlIChJRVRGKSwgaXRzIGFyZWFzLCBhbmQgaXRzIHdvcmtpbmcgZ3JvdXBzLiAgTm90
ZSB0aGF0CiAgIG90aGVyIGdyb3VwcyBtYXkgYWxzbyBkaXN0cmlidXRlIHdvcmtpbmcgZG9jdW1l
bnRzIGFzIEludGVybmV0LQogICBEcmFmdHMuCgogICBJbnRlcm5ldC1EcmFmdHMgYXJlIGRyYWZ0
IGRvY3VtZW50cyB2YWxpZCBmb3IgYSBtYXhpbXVtIG9mIHNpeCBtb250aHMKICAgYW5kIG1heSBi
ZSB1cGRhdGVkLCByZXBsYWNlZCwgb3Igb2Jzb2xldGVkIGJ5IG90aGVyIGRvY3VtZW50cyBhdCBh
bnkKICAgdGltZS4gIEl0IGlzIGluYXBwcm9wcmlhdGUgdG8gdXNlIEludGVybmV0LURyYWZ0cyBh
cyByZWZlcmVuY2UKICAgbWF0ZXJpYWwgb3IgdG8gY2l0ZSB0aGVtIG90aGVyIHRoYW4gYXMgIndv
cmsgaW4gcHJvZ3Jlc3MuIgoKICAgVGhlIGxpc3Qgb2YgY3VycmVudCBJbnRlcm5ldC1EcmFmdHMg
Y2FuIGJlIGFjY2Vzc2VkIGF0CiAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcvaWV0Zi8xaWQtYWJzdHJh
Y3RzLnR4dC4KCiAgIFRoZSBsaXN0IG9mIEludGVybmV0LURyYWZ0IFNoYWRvdyBEaXJlY3Rvcmll
cyBjYW4gYmUgYWNjZXNzZWQgYXQKICAgaHR0cDovL3d3dy5pZXRmLm9yZy9zaGFkb3cuaHRtbC4K
CiAgIFRoaXMgSW50ZXJuZXQtRHJhZnQgd2lsbCBleHBpcmUgb24gRGVjZW1iZXIgMjgsIDIwMDku
CgpDb3B5cmlnaHQgTm90aWNlCgogICBDb3B5cmlnaHQgKGMpIDIwMDkgSUVURiBUcnVzdCBhbmQg
dGhlIHBlcnNvbnMgaWRlbnRpZmllZCBhcyB0aGUKICAgZG9jdW1lbnQgYXV0aG9ycy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCgogICBUaGlzIGRvY3VtZW50IGlzIHN1YmplY3QgdG8gQkNQIDc4IGFu
ZCB0aGUgSUVURiBUcnVzdCdzIExlZ2FsCiAgIFByb3Zpc2lvbnMgUmVsYXRpbmcgdG8gSUVURiBE
b2N1bWVudHMgaW4gZWZmZWN0IG9uIHRoZSBkYXRlIG9mCiAgIHB1YmxpY2F0aW9uIG9mIHRoaXMg
ZG9jdW1lbnQgKGh0dHA6Ly90cnVzdGVlLmlldGYub3JnL2xpY2Vuc2UtaW5mbykuCiAgIFBsZWFz
ZSByZXZpZXcgdGhlc2UgZG9jdW1lbnRzIGNhcmVmdWxseSwgYXMgdGhleSBkZXNjcmliZSB5b3Vy
IHJpZ2h0cwogICBhbmQgcmVzdHJpY3Rpb25zIHdpdGggcmVzcGVjdCB0byB0aGlzIGRvY3VtZW50
LgoKQWJzdHJhY3QKCiAgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBMTElETCBpbnRlcmZh
Y2UgZGVzY3JpcHRpb24gZm9yIHRoZSBPcGVuCiAgIEdyaWQgUHJvdG9jb2wgKE9HUCkgQ2xpZW50
IEFwcGxpY2F0aW9uIExhdW5jaCBtZXNzYWdlIGZvcm1hdC4KICAgTWVzc2FnZXMgaW4gdGhpcyBm
b3JtYXQgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aAoKCgpIYW1y
aWNrICAgICAgICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI4LCAyMDA5ICAgICAgICAgICAg
ICAgW1BhZ2UgMV0KDApJbnRlcm5ldC1EcmFmdCAgIE9HUCA6IENsaWVudCBBcHBsaWNhdGlvbiBM
YXVuY2ggTWVzc2FnZSAgICAgICBKdW5lIDIwMDkKCgogICBzdGFuZGFyZCB3ZWIgYXV0aGVudGlj
YXRpb24gb3IgYXV0aG9yaXphdGlvbiB0ZWNobm9sb2dpZXMgc3VjaCBhcwogICBPcGVuSUQgb3Ig
T0F1dGguICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgbWVzc2FnZSBmb3JtYXQsIHRoZQog
ICBwcm9jZXNzaW5nIGV4cGVjdGF0aW9ucyBhbmQgdGhyZWUgTUlNRSB0eXBlcyB0aGF0IG1heSBi
ZSB1c2VkIHRvCiAgIGlkZW50aWZ5IHJlcXVlc3RzIHRvIGluaXRpYXRlIGEgdmlydHVhbCB3b3Js
ZHMgc2Vzc2lvbi4KCgpUYWJsZSBvZiBDb250ZW50cwoKICAgMS4gIEludHJvZHVjdGlvbiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICAzCiAgICAgMS4x
LiAgUmVxdWlyZW1lbnRzIExhbmd1YWdlICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAgMwogICAyLiAgVGhlIE9HUCBDbGllbnQgQXBwbGljYXRpb24gTGF1bmNoIE1lc3NhZ2Ug
Rm9ybWF0IC4gLiAuIC4gLiAuIC4gIDMKICAgMy4gIFByb2Nlc3NpbmcgRXhwZWN0YXRpb25zICAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuICA0CiAgIDQuICBJQU5BIENvbnNp
ZGVyYXRpb25zICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgNgog
ICA1LiAgTUlNRSBUeXBlIFJlZ2lzdHJhdGlvbnMgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gIDYKICAgICA1LjEuICBNSU1FIFR5cGUgUmVnaXN0cmF0aW9uIGZvciBhcHBs
aWNhdGlvbi9vZ3BjYWwreG1sICAuIC4gLiAuICA3CiAgICAgNS4yLiAgTUlNRSBUeXBlIFJlZ2lz
dHJhdGlvbiBmb3IgYXBwbGljYXRpb24vb2dwY2FsK2pzb24gLiAuIC4gLiAgOAogICAgIDUuMy4g
IE1JTUUgVHlwZSBSZWdpc3RyYXRpb24gZm9yIGFwcGxpY2F0aW9uL29ncGNhbCtiaW5hcnkgLiAu
IC4gIDkKICAgNi4gIFNlY3VyaXR5IENvbnNpZGVyYXRpb25zICAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIDEwCiAgIDcuICBSZWZlcmVuY2VzIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxMAogICAgIDcuMS4gIE5vcm1hdGl2
ZSBSZWZlcmVuY2VzIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMTAKICAg
ICA3LjIuICBJbmZvcm1hdGl2ZSBSZWZlcmVuY2VzIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIDExCiAgIEFwcGVuZGl4IEEuICBBY2tub3dsZWRnZW1lbnRzICAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxMQogICBBdXRob3IncyBBZGRyZXNzIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMTIKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCkhhbXJpY2sgICAgICAgICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIg
MjgsIDIwMDkgICAgICAgICAgICAgICBbUGFnZSAyXQoMCkludGVybmV0LURyYWZ0ICAgT0dQIDog
Q2xpZW50IEFwcGxpY2F0aW9uIExhdW5jaCBNZXNzYWdlICAgICAgIEp1bmUgMjAwOQoKCjEuICBJ
bnRyb2R1Y3Rpb24KCiAgIFdlYiBhdXRoZW50aWNhdGlvbiBwcm90b2NvbHMgc3VjaCBhcyBPcGVu
SUQgW09QRU5JRF0gYW5kIHdlYgogICBhdXRob3JpemF0aW9uIHByb3RvY29scyBzdWNoIGFzIE9B
dXRoIFtJLUQuaGFtbWVyLW9hdXRoXSBhcmUgb2YKICAgaW5jcmVhc2luZyBpbnRlcmVzdCB0byB0
aGUgaW50ZXJuZXQgY29tbXVuaXR5LiAgVGhleSBoYXZlIGdyZWF0CiAgIHV0aWxpdHkgaW4gd2Vi
LWJhc2VkIGFwcGxpY2F0aW9uIGVudmlyb25tZW50cy4gIEJlc3QgcHJhY3RpY2UgZm9yCiAgIHRo
ZWlyIHVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIGFwcGxpY2F0aW9ucyB0aGF0IGRvIG5vdCBleHBv
c2UgYSBIVE1MCiAgIHJlbmRlcmluZyBpbnRlcmZhY2UgaXMgbGVzcyBjbGVhci4gIFZpcnR1YWwg
V29ybGQgKFZXKSBjbGllbnQKICAgYXBwbGljYXRpb25zLCBmb3IgaW5zdGFuY2UsIGFyZSBvZnRl
biBpbXBsZW1lbnRlZCBhcyAiZGVza3RvcAogICBhcHBsaWNhdGlvbnMiIGluc3RlYWQgb2YgIndl
YiBhcHBzIi4gIFRoaXMgaW50cm9kdWNlcyBkaWZmaWN1bHR5IGluCiAgIHVzaW5nIHdlYiBiYXNl
ZCBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbiBwcm90b2NvbHMgdG8KICAgaW5pdGlh
dGUgYSB2aXJ0dWFsIHdvcmxkIHNlc3Npb24uCgogICBPcGVuSUQgYW5kIE9BdXRoIHRyYWRpdGlv
bmFsbHkgdXNlIGEgSFRUUCByZWRpcmVjdCBbUkZDMjYxNl0gYWZ0ZXIKICAgdXNlciBvciB0b2tl
biBhdXRoZW50aWNhdGlvbiB0byBiZWdpbiBhbiBhdXRob3JpemVkIHNlc3Npb24gd2l0aCBhCiAg
IHdlYiBhcHBsaWNhdGlvbi4gIERlc2t0b3AgYXBwbGljYXRpb25zIGRvIG5vdCBnZW5lcmFsbHkg
aGF2ZSBhIFVSSSB0bwogICBhY3QgYXMgdGhlIHRhcmdldCBvZiBIVFRQIHJlZGlyZWN0aW9uLgoK
ICAgT25lIHBvc3NpYmxlIHNvbHV0aW9uIHRvIHRoaXMgcHJvYmxlbSBpcyB0byByZWdpc3RlciBh
IHVuaXF1ZSBNSU1FCiAgIHR5cGUgW1JGQzIwNDZdIHdpdGggdGhlIHVzZXIncyB3ZWIgYnJvd3Nl
ciBhbmQgZm9sbG93aW5nIHN1Y2Nlc2Z1bAogICB1c2VyIG9yIHRva2VuIGF1dGhlbnRpY2F0aW9u
LCByZWRpcmVjdCB0aGUgdXNlcidzIHdlYiBicm93c2VyIHRvIGEKICAgcmVzb3VyY2Ugd2l0aCB0
aGF0IE1JTUUgdHlwZS4gIFVwb24gcmVjZWlwdCBvZiBzdWNoIGEgcmVzb3VyY2UsIGEKICAgcHJv
cGVybHkgY29uZmlndXJlZCB3ZWIgYnJvd3NlciBzaG91bGQgbGF1bmNoIHRoZSBjbGllbnQgYXBw
bGljYXRpb24uCgogICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZm9ybWF0IG9mIGEgd2Vi
IHJlc291cmNlIHN1aXRhYmxlIGZvcgogICBzaWduYWxpbmcgdGhlIHVzZXIncyB3ZWIgYnJvd3Nl
ciB0byBsYXVuY2ggYSB2aXJ0dWFsIHdvcmxkIGNsaWVudAogICBhcHBsaWNhdGlvbiB0aGF0IHVz
ZXMgT3BlbiBHcmlkIFByb3RvY29sIChPR1ApIEF1dGhlbnRpY2F0aW9uCiAgIFtJLUQuaGFtcmlj
ay1vZ3AtYXV0aF0gdG8gZXN0YWJsaXNoIGEgc2Vzc2lvbiBiZXR3ZWVuIHRoZSBjbGllbnQKICAg
YXBwbGljYXRpb24gYW5kIG5ldHdvcmsgcmVzb3VyY2VzIGltcGxlbWVudGluZyB0aGUgdmlydHVh
bCB3b3JsZC4KCjEuMS4gIFJlcXVpcmVtZW50cyBMYW5ndWFnZQoKICAgVGhlIGtleSB3b3JkcyAi
TVVTVCIsICJNVVNUIE5PVCIsICJSRVFVSVJFRCIsICJTSEFMTCIsICJTSEFMTCBOT1QiLAogICAi
U0hPVUxEIiwgIlNIT1VMRCBOT1QiLCAiUkVDT01NRU5ERUQiLCAiTUFZIiwgYW5kICJPUFRJT05B
TCIgaW4gdGhpcwogICBkb2N1bWVudCBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZGVzY3JpYmVk
IGluIFJGQyAyMTE5IFtSRkMyMTE5XS4KCgoyLiAgVGhlIE9HUCBDbGllbnQgQXBwbGljYXRpb24g
TGF1bmNoIE1lc3NhZ2UgRm9ybWF0CgogICBUaGUgQ2xpZW50IEFwcGxpY2F0aW9uIExhdW5jaCBt
ZXNzYWdlIGlzIGFuIExMU0QgW0ktRC5oYW1yaWNrLWxsc2RdCiAgIG1lc3NhZ2UsIGRlZmluZWQg
YnkgdGhlIExMSURMIGJlbG93LiAgSXQgbWF5IGJlIHRyYW5zbWl0dGVkIGluIFhNTCwKICAgSlNP
TiBvciBCaW5hcnkgZm9ybWF0LCBhdCB0aGUgd2ViIHNlcnZlcidzIGNvbnZlbmllbmNlLiAgQ29t
cGxpYW50CiAgIGNsaWVudCBhcHBsaWNhdGlvbnMgU0hPVUxEIHN1cHBvcnQgWE1MLCBKU09OIGFu
ZCBCaW5hcnkgc2VyaWFsaXphdGlvbgogICBmb3JtYXRzLgoKCgoKCgoKSGFtcmljayAgICAgICAg
ICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOCwgMjAwOSAgICAgICAgICAgICAgIFtQYWdlIDNd
CgwKSW50ZXJuZXQtRHJhZnQgICBPR1AgOiBDbGllbnQgQXBwbGljYXRpb24gTGF1bmNoIE1lc3Nh
Z2UgICAgICAgSnVuZSAyMDA5CgoKICAgJiBhdXRoZW50aWNhdG9yID0gewogICAgIHR5cGUgOiAn
aGFzaCcsCiAgICAgYWxnb3JpdGhtIDogJ3NoYTI1NicsCiAgICAgc2VjcmV0IDogYmluYXJ5CiAg
IH0KCiAgICYgaWRlbnRpZmllciA9IHsKICAgICB0eXBlOiAnYWNjb3VudCcsCiAgICAgYWNjb3Vu
dF9uYW1lOiBzdHJpbmcsCiAgICAgZmlyc3RfbmFtZTogc3RyaW5nLAogICAgIGxhc3RfbmFtZTog
c3RyaW5nLAogICB9CgogICAmIGlkZW50aWZpZXIgPSB7CiAgICAgICB0eXBlOiAnYWdlbnQnLAog
ICAgICAgZmlyc3RfbmFtZTogc3RyaW5nLAogICAgICAgbGFzdF9uYW1lOiBzdHJpbmcsCiAgIH0K
CiAgICYgcmVxdWVzdCA9IHsKICAgICBhdXRoZW50aWNhdG9yIDogJiBhdXRoZW50aWNhdG9yLAog
ICAgIGlkZW50aWZpZXIgOiAmIGlkZW50aWZpZXIsCiAgICAgbG9naW51cmkgOiB1cmksCiAgICAg
cmVnaW9uIDogdXJpCiAgIH0KCiAgICUlIGxhdW5jaF9yZXF1ZXN0IC0+ICYgcmVxdWVzdCA8LSB1
bmRlZgoKICAgRmlndXJlIDEgOiBPR1AgQ2xpZW50IEFwcGxpY2F0aW9uIExhdW5jaCBNZXNzYWdl
CgoKMy4gIFByb2Nlc3NpbmcgRXhwZWN0YXRpb25zCgogICBUaGUgT0dQIENsaWVudCBBcHBsaWNh
dGlvbiBMYXVuY2ggTWVzc2FnZSBpcyBpbnRlbmRlZCB0byBiZSBzZW50IGJ5IGEKICAgd2ViIHNl
cnZlciB0byBhIHdlYiBicm93c2VyIGZvbGxvd2luZyBzdWNjZXNzZnVsIHdlYiBhdXRoZW50aWNh
dGlvbi4KICAgUmVxdWlyZW1lbnRzIGZvciB3ZWIgYXV0aGVudGljYXRpb24gYXJlIGV4cGxpY2l0
bHkgbm90IGRlZmluZWQgaW4KICAgdGhpcyBkb2N1bWVudCwgYW5kIGxlZnQgYXMgYSByZXNwb25z
aWJpbGl0eSBvZiB0aGUgYXV0aGVudGljYXRpbmcgd2ViCiAgIHNlcnZpY2UuCgogICBUaGUgbWVz
c2FnZSBmbG93IGZvciByZWNlaXZpbmcgYSBjbGllbnQgYXBwbGljYXRpb24gbGF1bmNoIG1lc3Nh
Z2UgaXMKICAgYXMgZm9sbG93czoKCgoKCgoKCgoKCkhhbXJpY2sgICAgICAgICAgICAgICAgIEV4
cGlyZXMgRGVjZW1iZXIgMjgsIDIwMDkgICAgICAgICAgICAgICBbUGFnZSA0XQoMCkludGVybmV0
LURyYWZ0ICAgT0dQIDogQ2xpZW50IEFwcGxpY2F0aW9uIExhdW5jaCBNZXNzYWdlICAgICAgIEp1
bmUgMjAwOQoKCiAgICstLS0tLS0tLS0tLS0tLS0tLS0rICAgICAgICAyLiAgICAgICArLS0tLS0t
LS0tLS0tLS0tLS0tKwogICB8ICAgICAgICAgICAgICAgICAgfC0tLS0tLS0tLS0tLS0tLS0+fCAg
ICAgICAgICAgICAgICAgIHwKICAgfCBXZWIgQXV0aCBTZXJ2aWNlIHwgICAgICAgIDMuICAgICAg
IHwgT0dQIEFnZW50IERvbWFpbiB8CiAgIHwgICAgICAgICAgICAgICAgICB8PC0tLS0tLS0tLS0t
LS0tLS18ICAgICAgICAgICAgICAgICAgfAogICArLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAg
ICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAgICAgIF4gICAgIHwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBeCiAgICAgICAxLiB8ICAgICB8IDQuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCA2LgogICAgICAgICAgfCAgICAgdiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKICAgKy0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgIDUuICAgICAgICstLS0tLS0t
LS0tLS0tLS0tLS0rCiAgIHwgICAgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0tLS0tLT58ICAg
ICAgICAgICAgICAgICAgfAogICB8ICAgIFdlYiBCcm93c2VyICAgfCAgICAgICAgICAgICAgICAg
fCAgT0dQIENsaWVudCBBcHAgIHwKICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg
ICAgIHwgICAgICAgICAgICAgICAgICB8CiAgICstLS0tLS0tLS0tLS0tLS0tLS0rICAgICAgICAg
ICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tKwoKICAgRmlndXJlIDIgOiBNZXNzYWdlIEZsb3cg
Rm9yIENsaWVudCBBcHBsaWNhdGlvbiBMYXVuY2ggUmVxdWVzdHMKCiAgIDAuIFJlZ2lzdGVyaW5n
IE1JTUUgdHlwZXMgYXMgV2ViIEJyb3dzZXIgSGVscGVyIEFwcGxpY2F0aW9ucyAgVGhlCiAgICAg
ICB0ZWNobmlxdWUgZGVmaW5lZCBpbiB0aGlzIGRvY3VtZW50IGRlcGVuZHMgb24gdGhlIHRyYWRp
dGlvbmFsIHdlYgogICAgICAgYnJvd3NlciBjYXBhYmlsaXR5IHRvIGRlZmluZSBhICJoZWxwZXIg
YXBwbGljYXRpb24iIHdoZW4gdGhlCiAgICAgICBicm93c2VyIHJlY2VpdmVzIGEgTUlNRSB0eXBl
IGl0IGNhbm5vdCBoYW5kbGUgaXRzZWxmLiAgQ29tcGxpYW50CiAgICAgICBPR1AgQ2xpZW50IEFw
cGxpY2F0aW9ucyBTSE9VTEQgcmVnaXN0ZXIgdGhlbXNlbHZlcyBhcyB0aGUgaGVscGVyCiAgICAg
ICBhcHBsaWNhdGlvbiBmb3IgdGhlIHRocmVlIE1JTUUgdHlwZXMgbGlzdGVkIGluIElBTkEKICAg
ICAgIENvbnNpZGVyYXRpb25zIChTZWN0aW9uIDQpIGJlbG93LgoKICAgICAgIFRoZSBleGFjdCB0
ZWNobmlxdWUgdXNlZCB0byByZWdpc3RlciB0aGUgY2xpZW50IGFwcGxpY2F0aW9uIHdpdGgKICAg
ICAgIHRoZSBPR1AgQ2xpZW50IEFwcGxpY2F0aW9uIExhdW5jaCBNZXNzYWdlIGlzIGJleW9uZCB0
aGUgc2NvcGUgb2YKICAgICAgIHRoaXMgZG9jdW1lbnQuCgogICAxLiBXZWIgQ2xpZW50IHRvIFdl
YiBTZXJ2ZXIgQXV0aGVudGljYXRpb24gLyBBdXRob3JpemF0aW9uICBUaGUKICAgICAgIHByb2Nl
c3Mgb2YgbGF1bmNoaW5nIGFuIE9HUCBjbGllbnQgYXBwbGljYXRpb24gdXNpbmcgYSB3ZWIgYmFz
ZWQKICAgICAgIGF1dGhlbnRpY2F0aW9uIG9yIGF1dGhvcml6YXRpb24gc3lzdGVtIGJlZ2lucyB3
aXRoIHN1Y2Nlc3NmdWwKICAgICAgIHVzZXIgYXV0aGVudGljYXRpb24gb3IgdG9rZW4gYXV0aGVu
dGljYXRpb24uICBJdCBpcyB0cmFkaXRpb25hbAogICAgICAgaW4gdGhlc2Ugc3lzdGVtcyBmb3Ig
dGhlIHVzZXIncyB3ZWIgYnJvd3NlciB0byBiZSByZWRpcmVjdGVkIHRvIGEKICAgICAgIHdlYiBi
YXNlZCBhcHBsaWNhdGlvbiBmb2xsb3dpbmcgYXV0aGVudGljYXRpb24uICBUaGlzIGRvY3VtZW50
CiAgICAgICBhc3N1bWVzIHRoZSB1c2VyJ3Mgd2ViIGJyb3dzZXIgd2lsbCBpbnN0ZWFkIGJlIHJl
ZGlyZWN0ZWQgdG8gYW4KICAgICAgIEhUVFAgb3IgSFRUUFMgVVJJIHRoYXQgd2lsbCBldmVudHVh
bGx5IHJlc3BvbmQgd2l0aCBhIENsaWVudAogICAgICAgQXBwbGljYXRpb24gTGF1bmNoIE1lc3Nh
Z2UuCgogICAgICAgVGhlIGV4YWN0IG5hdHVyZSBvZiB0aGUgd2ViLWJhc2VkIGF1dGhlbnRpY2F0
aW9uIG9yIGF1dGhvcml6YXRpb24KICAgICAgIHNjaGVtZSB1c2VkIGlzIGJleW9uZCB0aGUgc2Nv
cGUgb2YgdGhpcyBkb2N1bWVudC4KCiAgIDIuIE9uZSBUaW1lIFBhc3N3b3JkIFJlcXVlc3QgIEJl
Zm9yZSB0aGUgd2ViIHNlcnZpY2UgcmVzcG9uc2libGUgZm9yCiAgICAgICBjb21tdW5pY2F0aW5n
IHRoZSBsYXVuY2ggbWVzc2FnZSB0byB0aGUgdXNlcidzIHdlYiBicm93ZXIgbWF5CiAgICAgICBk
b3dubG9hZCB0aGUgbWVzc2FnZSwgaXQgbXVzdCBmaXJzdCByZXF1ZXN0IGEgInNpbmdsZSB1c2Ug
b25seSIKICAgICAgIHNoYXJlZCBzZWNyZXQuCgogICAgICAgVGhlIGV4YWN0IHRlY2huaXF1ZSBm
b3IgcmVxdWVzdGluZyB0aGUgT25lIFRpbWUgUGFzc3dvcmQgaXMKICAgICAgIGJleW9uZCB0aGUg
c2NvcGUgb2YgdGhpcyBkb2N1bWVudC4gIEhvd2V2ZXIsIHRoZSByZXF1ZXN0IGZyb20gdGhlCgoK
CkhhbXJpY2sgICAgICAgICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjgsIDIwMDkgICAgICAg
ICAgICAgICBbUGFnZSA1XQoMCkludGVybmV0LURyYWZ0ICAgT0dQIDogQ2xpZW50IEFwcGxpY2F0
aW9uIExhdW5jaCBNZXNzYWdlICAgICAgIEp1bmUgMjAwOQoKCiAgICAgICBhdXRoZW50aWNhdGlv
biBzZXJ2aWNlIHRvIHRoZSBhZ2VudCBkb21haW4gU0hPVUxEIGNvbnRhaW4gYW4KICAgICAgIGFj
Y291bnQgb3IgYXZhdGFyIG5hbWUga25vd24gdG8gdGhlIGFnZW50IGRvbWFpbiBhbmQgU0hPVUxE
IGJlCiAgICAgICBjb21tdW5pY2F0ZWQgb3ZlciBhIHNlY3VyZSBjaGFubmVsLgoKICAgMy4gT25l
IFRpbWUgUGFzc3dvcmQgUmVzcG9uc2UgIFRoZSBhZ2VudCBkb21haW4gcmVzcG9uZHMgd2l0aCBh
IE9uZQogICAgICAgVGltZSBQYXNzd29yZC4gIFRoZSBwYXNzd29yZCBTSE9VTEQgYmUgYSBzZXF1
ZW5jZSBvZiB1bmd1ZXNzYWJsZQogICAgICAgb2N0ZXRzLCB0aG91Z2h0IHRoZSBleGFjdCBlbmNv
ZGluZyBhbmQgdHJhbnNwb3J0IG9mIHRoZSByZXF1ZXN0CiAgICAgICBpcyBiZXlvbmQgdGhlIHNj
b3BlIG9mIHRoaXMgZG9jdW1lbnQuCgogICA0LiBDbGllbnQgQXBwbGljYXRpb24gTGF1bmNoIERv
d25sb2FkICBBZnRlciB0aGUgT25lIFRpbWUgUGFzc3dvcmQgaXMKICAgICAgIHBhc3NlZCBmcm9t
IHRoZSBhZ2VudCBkb21haW4gdG8gdGhlIGF1dGhvcml6YXRpb24gc2VydmljZSwgaXQgaXMKICAg
ICAgIGluY2x1ZGVkIGluIHRoZSBDbGllbnQgQXBwbGljYXRpb24gTGF1bmNoIE1lc3NhZ2UgYWxv
bmcgd2l0aCBhbgogICAgICAgYWNjb3VudCBvciBhdmF0YXIgaWRlbnRpZmllciwgYSBsb2dpbiBV
UkkgZm9yIHRoZSBhZ2VudCBkb21haW4KICAgICAgIGFuZCBhbiBpbml0aWFsIHJlZ2lvbiBVUkkg
aW5kaWNhdGluZyB0aGUgYXZhdGFyJ3MgaW5pdGlhbAogICAgICAgbG9jYXRpb24gaW4gdGhlIHZp
cnR1YWwgd29ybGQuCgogICA1LiBXZWIgQnJvd3NlciBMYXVuY2hlcyBDbGllbnQgQXBwbGljYXRp
b24gIFdoZW4gdGhlIHVzZXIncyB3ZWIKICAgICAgIGJyb3dzZXIgcmVjZWl2ZXMgdGhlIENsaWVu
dCBBcHBsaWNhdGlvbiBMYXVuY2ggTWVzc2FnZSwgaXQKICAgICAgIGZvcndhcmRzIHRoZSBjb250
ZW50cyBvZiB0aGUgbWVzc2FnZSBBTkQgdGhlIG1lc3NhZ2UncyBNSU1FIHR5cGUKICAgICAgIHRv
IHRoZSByZWdpc3RlcmVkIENsaWVudCBBcHBsaWNhdGlvbi4KCiAgIDYuIE9HUCBBdXRoZW50aWNh
dGlvbiAgSW4gcmVzcG9uc2UgdG8gcmVjZWlwdCBvZiB0aGUgQ2xpZW50CiAgICAgICBBcHBsaWNh
dGlvbiBMYXVuY2ggTWVzc2FnZSwgdGhlIGNsaWVudCBhcHBsaWNhdGlvbiB1c2VzIHRoZQogICAg
ICAgaW5mb3JtYXRpb24gaW4gdGhlIG1lc3NhZ2UgdG8gYmVnaW4gdGhlIE9HUCBBdXRoZW50aWNh
dGlvbgogICAgICAgcHJvY2VzcyBhbmQgaW5pdGlhbCBwbGFjZW1lbnQgb2YgdGhlIHVzZXIncyBh
dmF0YXIgaW4gdGhlIHZpcnR1YWwKICAgICAgIHdvcmxkLgoKCjQuICBJQU5BIENvbnNpZGVyYXRp
b25zCgogICBJbiBhY2NvcmRhbmNlIHdpdGggW1JGQzUyMjZdLCB0aGlzIGRvY3VtZW50IHJlZ2lz
dGVycyB0aGUgZm9sbG93aW5nCiAgIG1pbWUgdHlwZXM6CgogICAgICAgYXBwbGljYXRpb24vb2dw
Y2FsK3htbAoKICAgICAgIGFwcGxpY2F0aW9uL29ncGNhbCtqc29uCgogICAgICAgYXBwbGljYXRp
b24vb2dwY2FsK2JpbmFyeQoKICAgU2VlIHRoZSBNSU1FIFR5cGUgUmVnaXN0cmF0aW9ucyBzZWN0
aW9uIChTZWN0aW9uIDUpIGJlbG93IGZvcgogICBkZXRhaWxlZCBpbmZvcm1hdGlvbiBvbiBNSU1F
IFR5cGUgcmVnaXN0cmF0aW9ucy4KCgo1LiAgTUlNRSBUeXBlIFJlZ2lzdHJhdGlvbnMKCiAgIFRo
aXMgc2VjdGlvbiBwcm92aWRlcyBtZWRpYS10eXBlIHJlZ2lzdHJhdGlvbiBhcHBsaWNhdGlvbnMg
KGFzIHBlcgogICBSRkMgNDI4OCBbUkZDNDI4OF0uKQoKCgoKSGFtcmljayAgICAgICAgICAgICAg
ICAgRXhwaXJlcyBEZWNlbWJlciAyOCwgMjAwOSAgICAgICAgICAgICAgIFtQYWdlIDZdCgwKSW50
ZXJuZXQtRHJhZnQgICBPR1AgOiBDbGllbnQgQXBwbGljYXRpb24gTGF1bmNoIE1lc3NhZ2UgICAg
ICAgSnVuZSAyMDA5CgoKNS4xLiAgTUlNRSBUeXBlIFJlZ2lzdHJhdGlvbiBmb3IgYXBwbGljYXRp
b24vb2dwY2FsK3htbAoKICAgVG86IGlldGYtdHlwZXNAaWFuYS5vcmcKCiAgIFN1YmplY3Q6IFJl
Z2lzdHJhdGlvbiBvZiBtZWRpYSB0eXBlIGFwcGxpY2F0aW9uL29ncGNhbCt4bWwKCiAgIFR5cGUg
bmFtZTogYXBwbGljYXRpb24KCiAgIFN1YnR5cGUgbmFtZTogb2dwY2FsK3htbAoKICAgUmVxdWly
ZWQgUGFyYW1ldGVyczogbm9uZQoKICAgT3B0aW9uYWwgUGFyYW1ldGVyczogbm9uZQoKICAgRW5j
b2RpbmcgQ29uc2lkZXJhdGlvbnM6ICBUaGUgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UgKFhN
TCkKICAgICAgIHNwZWNpZmljYXRpb24gYWxsb3dzIGZvciB0aGUgdXNlIG9mIG11bHRpcGxlIGNo
YXJhY3RlciBzZXRzLiAgVGhlCiAgICAgICBjaGFyYWN0ZXIgc2V0IHVzZWQgdG8gZW5jb2RlIHRo
ZSBib2R5IG9mIHRoZSBtZXNzYWdlIGlzIGRlZmluZWQKICAgICAgIGFzIHBhcnQgb2YgdGhlIFhN
TCBoZWFkZXIuICBJZiBubyBjaGFyYWN0ZXIgc2V0IGlzIGluZGljYXRlZCBpbgogICAgICAgdGhl
IFhNTCBoZWFkZXIsIGNvbXBsaWFudCBzeXN0ZW1zIE1VU1QgYXNzdW1lIFVURi04LgoKICAgU2Vj
dXJpdHkgQ29uc2lkZXJhdGlvbnM6ICBUaGUgT0dQIENsaWVudCBBcHBsaWNhdGlvbiBMYXVuY2gg
UmVxdWVzdAogICAgICAgTWVzc2FnZSBjb250YWlucyBzZW5zaXRpdmUgaW5mb3JtYXRpb24uICBD
b21wbGlhbnQgc3lzdGVtcyBTSE9VTEQKICAgICAgIGVuc3VyZSB0aGUgY29uZmlkZW50aWFsdHkg
b2YgdGhlIGNvbW11bmljYXRpb25zIG1lZGlhIGJldHdlZW4gdGhlCiAgICAgICB3ZWIgYXV0aGVu
dGljYXRpb24gc2VydmljZSBhbmQgdGhlIE9HUCBhZ2VudCBkb21haW4gYXMgd2VsbCBhcwogICAg
ICAgdGhhdCBiZXR3ZWVuIHRoZSB3ZWIgYXV0aGVudGljYXRpb24gc2VydmljZSBhbmQgdGhlIHVz
ZXIncyB3ZWIKICAgICAgIGJyb3dzZXIuCgogICBJbnRlcm9wZXJhYmlsaXR5IENvbnNpZGVyYXRp
b25zOiAgV2hpbGUgaXQgaXMgcG9zc2libGUgZm9yIGNvbXBsaWFudAogICAgICAgaW1wbGVtZW50
YXRpb25zIHRvIHNwZWNpZnkgdGhlIHVzZSBvZiBjaGFyYWN0ZXIgc2V0cyBvdGhlciB0aGFuCiAg
ICAgICBVVEYtOCwgc3VjaCBzeXN0ZW1zIE1VU1QgYWNjZXB0IFVURi04IGlucHV0IGFuZCBTSE9V
TEQgZ2VuZXJhdGUKICAgICAgIFVURi04IG91dHB1dC4KCiAgIFB1Ymxpc2hlZCBzcGVjaWZpY2F0
aW9uOiB0aGlzIHNwZWNpZmljYXRpb24uCgogICBBcHBsaWNhdGlvbnMgdGhhdCB1c2UgdGhpcyBt
ZWRpYSB0eXBlOiAgVmlydHVhbCB3b3JsZCwgdGVsZS1wcmVzZW5jZQogICAgICAgYW5kIGNvbnRl
bnQgbWFuYWdlbWVudCBzeXN0ZW1zIHJlbGF0ZWQgdG8gInZpcnR1YWwgcmVhbGl0eSIKICAgICAg
IHN5c3RlbXMuCgogICBBZGRpdGlvbmFsIEluZm9ybWF0aW9uOgoKICAgICAgIE1hZ2ljIE51bWJl
cihzKTogbm9uZQoKICAgICAgIEZpbGUgRXh0ZW5zaW9uOiBjYWx4CgogICAgICAgTWFjaW50b3No
IEZpbGUgVHlwZSBDb2RlKHMpOiBDQUxYCgoKCgoKCkhhbXJpY2sgICAgICAgICAgICAgICAgIEV4
cGlyZXMgRGVjZW1iZXIgMjgsIDIwMDkgICAgICAgICAgICAgICBbUGFnZSA3XQoMCkludGVybmV0
LURyYWZ0ICAgT0dQIDogQ2xpZW50IEFwcGxpY2F0aW9uIExhdW5jaCBNZXNzYWdlICAgICAgIEp1
bmUgMjAwOQoKCiAgIFBlcnNvbiAmIGVtYWlsIGFkZHJlc3MgdG8gY29udGFjdCBmb3IgZnVydGhl
ciBpbmZvcm1hdGlvbjogIE1lYWRoYmgKICAgICAgIEhhbXJpY2sgPGluZmluaXR5QGxpbmRlbmxh
Yi5jb20+CgogICBJbnRlbmRlZCBVc2FnZTogQ09NTU9OCgogICBBdXRob3I6IElFU0cKCiAgIENo
YW5nZSBDb250cm9sbGVyOiBJRVNHCgo1LjIuICBNSU1FIFR5cGUgUmVnaXN0cmF0aW9uIGZvciBh
cHBsaWNhdGlvbi9vZ3BjYWwranNvbgoKICAgVG86IGlldGYtdHlwZXNAaWFuYS5vcmcKCiAgIFN1
YmplY3Q6IFJlZ2lzdHJhdGlvbiBvZiBtZWRpYSB0eXBlIGFwcGxpY2F0aW9uL29ncGNhbCtqc29u
CgogICBUeXBlIG5hbWU6IGFwcGxpY2F0aW9uCgogICBTdWJ0eXBlIG5hbWU6IG9ncGNhbCtqc29u
CgogICBSZXF1aXJlZCBQYXJhbWV0ZXJzOiBub25lCgogICBPcHRpb25hbCBQYXJhbWV0ZXJzOiBu
b25lCgogICBFbmNvZGluZyBDb25zaWRlcmF0aW9uczogVXNlIG9mIFVURi04IGlzIE1hbmRhdG9y
eSAgUkZDIDQ2MjcgOiBUaGUKICAgICAgIGFwcGxpY2F0aW9uL2pzb24gTWVkaWEgVHlwZSBmb3Ig
SmF2YVNjcmlwdCBPYmplY3QgTm90YXRpb24gKEpTT04pCiAgICAgICBbUkZDNDYyN10gYWxsb3dz
IHRoZSB1c2Ugb2YgVVRGLTgsIFVURi0xNiBhbmQgVVRGLTMyLiAgVGhpcwogICAgICAgc3BlY2lm
aWNhdGlvbiBSRVFVSVJFUyB0aGUgdXNlIG9mIFVURi04LgoKICAgU2VjdXJpdHkgQ29uc2lkZXJh
dGlvbnM6ICBUaGUgT0dQIENsaWVudCBBcHBsaWNhdGlvbiBMYXVuY2ggUmVxdWVzdAogICAgICAg
TWVzc2FnZSBjb250YWlucyBzZW5zaXRpdmUgaW5mb3JtYXRpb24uICBDb21wbGlhbnQgc3lzdGVt
cyBTSE9VTEQKICAgICAgIGVuc3VyZSB0aGUgY29uZmlkZW50aWFsdHkgb2YgdGhlIGNvbW11bmlj
YXRpb25zIG1lZGlhIGJldHdlZW4gdGhlCiAgICAgICB3ZWIgYXV0aGVudGljYXRpb24gc2Vydmlj
ZSBhbmQgdGhlIE9HUCBhZ2VudCBkb21haW4gYXMgd2VsbCBhcwogICAgICAgdGhhdCBiZXR3ZWVu
IHRoZSB3ZWIgYXV0aGVudGljYXRpb24gc2VydmljZSBhbmQgdGhlIHVzZXIncyB3ZWIKICAgICAg
IGJyb3dzZXIuCgogICBJbnRlcm9wZXJhYmlsaXR5IENvbnNpZGVyYXRpb25zOiAgTm90ZSB0aGF0
IHVubGlrZSBSRkMgNDYyNywgdGhpcwogICAgICAgc3BlY2lmaWNhdGlvbiBSRVFVSVJFUyB0aGUg
dXNlIG9mIFVURi04LgoKICAgUHVibGlzaGVkIHNwZWNpZmljYXRpb246IFRoaXMgc3BlY2lmaWNh
dGlvbi4KCiAgIEFwcGxpY2F0aW9ucyB0aGF0IHVzZSB0aGlzIG1lZGlhIHR5cGU6ICBWaXJ0dWFs
IHdvcmxkLCB0ZWxlLXByZXNlbmNlCiAgICAgICBhbmQgY29udGVudCBtYW5hZ2VtZW50IHN5c3Rl
bXMgcmVsYXRlZCB0byAidmlydHVhbCByZWFsaXR5IgogICAgICAgc3lzdGVtcy4KCiAgIEFkZGl0
aW9uYWwgSW5mb3JtYXRpb246CgoKCgoKCkhhbXJpY2sgICAgICAgICAgICAgICAgIEV4cGlyZXMg
RGVjZW1iZXIgMjgsIDIwMDkgICAgICAgICAgICAgICBbUGFnZSA4XQoMCkludGVybmV0LURyYWZ0
ICAgT0dQIDogQ2xpZW50IEFwcGxpY2F0aW9uIExhdW5jaCBNZXNzYWdlICAgICAgIEp1bmUgMjAw
OQoKCiAgICAgICBNYWdpYyBOdW1iZXIocyk6IG5vbmUKCiAgICAgICBGaWxlIEV4dGVuc2lvbjog
Y2FsagoKICAgICAgIE1hY2ludG9zaCBGaWxlIFR5cGUgQ29kZShzKTogQ0FMSgoKICAgUGVyc29u
ICYgZW1haWwgYWRkcmVzcyB0byBjb250YWN0IGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uOiAgTWVh
ZGhiaAogICAgICAgSGFtcmljayA8aW5maW5pdHlAbGluZGVubGFiLmNvbT4KCiAgIEludGVuZGVk
IFVzYWdlOiBDT01NT04KCiAgIEF1dGhvcjogSUVTRwoKICAgQ2hhbmdlIENvbnRyb2xsZXI6IElF
U0cKCjUuMy4gIE1JTUUgVHlwZSBSZWdpc3RyYXRpb24gZm9yIGFwcGxpY2F0aW9uL29ncGNhbCti
aW5hcnkKCiAgIFRvOiBpZXRmLXR5cGVzQGlhbmEub3JnCgogICBTdWJqZWN0OiBSZWdpc3RyYXRp
b24gb2YgbWVkaWEgdHlwZSBhcHBsaWNhdGlvbi9vZ3BjYWwrYmluYXJ5CgogICBUeXBlIG5hbWU6
IGFwcGxpY2F0aW9uCgogICBTdWJ0eXBlIG5hbWU6IG9ncGNhbCtiaW5hcnkKCiAgIFJlcXVpcmVk
IFBhcmFtZXRlcnM6IG5vbmUKCiAgIE9wdGlvbmFsIFBhcmFtZXRlcnM6IG5vbmUKCiAgIEVuY29k
aW5nIENvbnNpZGVyYXRpb25zOiBMTFNEIEJpbmFyeSBTZXJpYWxpemF0aW9uIFJFUVVJUkVTIHRo
ZSB1c2UKICAgb2YgYmluYXJ5IGNvbnRlbnQtdHJhbnNmZXItZW5jb2RpbmcgIFNlY3Rpb24gNSBv
ZiBSRkMgMjA0NSBbUkZDMjA0NV0KICAgICAgIGRlc2NyaWJlcyB0aGUgYmluYXJ5IENvbnRlbnQt
VHJhbnNmZXItRW5jb2RpbmcgaGVhZGVyIGZpZWxkLgogICAgICAgVGhpcyBzcGVjaWZpY2F0aW9u
IFJFUVVJUkVTIHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIgdG8gYWxlcnQKICAgICAgIGludGVybWVk
aWFyeSBzeXN0ZW1zIHRoYXQgaW5mb3JtYXRpb24gYmVpbmcgaW5jbHVkZWQgaW4gdGhlCiAgICAg
ICBtZXNzYWdlIHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBiaW5hcnkgZGF0YSB3aXRoIG5vIGVu
ZC1vZi1saW5lCiAgICAgICBzZW1hbnRpY3Mgd2hpY2ggY291bGQgYmUgY29uc2lkZXJhYmx5IGxv
bmdlciB0aGFuIGFsbG93ZWQgaW4gYW4KICAgICAgIFJGQyA4MjEgdHJhbnNwb3J0LgoKICAgU2Vj
dXJpdHkgQ29uc2lkZXJhdGlvbnM6ICBUaGUgT0dQIENsaWVudCBBcHBsaWNhdGlvbiBMYXVuY2gg
UmVxdWVzdAogICAgICAgTWVzc2FnZSBjb250YWlucyBzZW5zaXRpdmUgaW5mb3JtYXRpb24uICBD
b21wbGlhbnQgc3lzdGVtcyBTSE9VTEQKICAgICAgIGVuc3VyZSB0aGUgY29uZmlkZW50aWFsdHkg
b2YgdGhlIGNvbW11bmljYXRpb25zIG1lZGlhIGJldHdlZW4gdGhlCiAgICAgICB3ZWIgYXV0aGVu
dGljYXRpb24gc2VydmljZSBhbmQgdGhlIE9HUCBhZ2VudCBkb21haW4gYXMgd2VsbCBhcwogICAg
ICAgdGhhdCBiZXR3ZWVuIHRoZSB3ZWIgYXV0aGVudGljYXRpb24gc2VydmljZSBhbmQgdGhlIHVz
ZXIncyB3ZWIKICAgICAgIGJyb3dzZXIuCgoKCgoKCgpIYW1yaWNrICAgICAgICAgICAgICAgICBF
eHBpcmVzIERlY2VtYmVyIDI4LCAyMDA5ICAgICAgICAgICAgICAgW1BhZ2UgOV0KDApJbnRlcm5l
dC1EcmFmdCAgIE9HUCA6IENsaWVudCBBcHBsaWNhdGlvbiBMYXVuY2ggTWVzc2FnZSAgICAgICBK
dW5lIDIwMDkKCgogICBJbnRlcm9wZXJhYmlsaXR5IENvbnNpZGVyYXRpb25zOiBub25lCgogICBQ
dWJsaXNoZWQgc3BlY2lmaWNhdGlvbjogVGhpcyBzcGVjaWZpY2F0aW9uLgoKICAgQXBwbGljYXRp
b25zIHRoYXQgdXNlIHRoaXMgbWVkaWEgdHlwZTogIFZpcnR1YWwgd29ybGQsIHRlbGUtcHJlc2Vu
Y2UKICAgICAgIGFuZCBjb250ZW50IG1hbmFnZW1lbnQgc3lzdGVtcyByZWxhdGVkIHRvICJ2aXJ0
dWFsIHJlYWxpdHkiCiAgICAgICBzeXN0ZW1zLgoKICAgQWRkaXRpb25hbCBJbmZvcm1hdGlvbjoK
CiAgICAgICBNYWdpYyBOdW1iZXIocyk6IG5vbmUKCiAgICAgICBGaWxlIEV4dGVuc2lvbjogY2Fs
YgoKICAgICAgIE1hY2ludG9zaCBGaWxlIFR5cGUgQ29kZShzKTogQ0FMQgoKICAgUGVyc29uICYg
ZW1haWwgYWRkcmVzcyB0byBjb250YWN0IGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uOiAgTWVhZGhi
aAogICAgICAgSGFtcmljayA8aW5maW5pdHlAbGluZGVubGFiLmNvbT4KCiAgIEludGVuZGVkIFVz
YWdlOiBDT01NT04KCiAgIEF1dGhvcjogSUVTRwoKICAgQ2hhbmdlIENvbnRyb2xsZXI6IElFU0cK
Cgo2LiAgU2VjdXJpdHkgQ29uc2lkZXJhdGlvbnMKCiAgIFNlY3VyaXR5IGNvbnNpZGVyYXRpb25z
IGZvciB0aGlzIHNwZWNpZmljYXRpb24gYXJlLCBmb3J0dW5hdGVseSwKICAgZWl0aGVyIHNpbXBs
ZSBvciBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoaXMgZG9jdW1lbnQuICBSRkMgMzU1MgogICBbUkZD
MzU1Ml0gZGVzY3JpYmVzIHNldmVyYWwgYXNwZWN0cyB0byB1c2Ugd2hlbiBldmFsdWF0aW5nIHRo
ZQogICBzZWN1cml0eSBvZiBhIHNwZWNpZmljYXRpb24gb3IgaW1wbGVtZW50YXRpb24uICBUaGUg
YXV0aG9ycyBiZWxpZXZlCiAgIG1vc3QgY29tbW9uIHNlY3VyaXR5IGNvbmNlcm5zIHVzZXJzIG9m
IHRoaXMgc3BlY2lmaWNhdGlvbiB3aWxsCiAgIGVuY291bnRlciBhcmUgbW9yZSBhcHByb3ByaWF0
ZWx5IGNvbnNpZGVyZWQgYXMgdHJhbnNwb3J0LCBuZXR3b3JrIG9yCiAgIGxpbmsgbGF5ZXIgaXNz
dWVzLiAgT3IsIGFzIGhpZ2hlciBsZXZlbCAiYXBwbGljYXRpb24gc2VjdXJpdHkiCiAgIGlzc3Vl
cy4KCgo3LiAgUmVmZXJlbmNlcwoKNy4xLiAgTm9ybWF0aXZlIFJlZmVyZW5jZXMKCiAgIFtJLUQu
aGFtbWVyLW9hdXRoXQogICAgICAgICAgICAgIEhhbW1lci1MYWhhdiwgRS4gYW5kIEIuIENvb2ss
ICJUaGUgT0F1dGggQ29yZSBQcm90b2NvbCIsCiAgICAgICAgICAgICAgZHJhZnQtaGFtbWVyLW9h
dXRoLTAyICh3b3JrIGluIHByb2dyZXNzKSwgTWFyY2ggMjAwOS4KCiAgIFtJLUQuaGFtcmljay1v
Z3AtYXV0aF0KICAgICAgICAgICAgICBDaHUsIFQuLCBIYW1yaWNrLCBNLiwgYW5kIE0uIExlbnRj
em5lciwgIk9wZW4gR3JpZAoKCgpIYW1yaWNrICAgICAgICAgICAgICAgICBFeHBpcmVzIERlY2Vt
YmVyIDI4LCAyMDA5ICAgICAgICAgICAgICBbUGFnZSAxMF0KDApJbnRlcm5ldC1EcmFmdCAgIE9H
UCA6IENsaWVudCBBcHBsaWNhdGlvbiBMYXVuY2ggTWVzc2FnZSAgICAgICBKdW5lIDIwMDkKCgog
ICAgICAgICAgICAgIFByb3RvY29sOiBBdXRoZW50aWNhdGlvbiIsIGRyYWZ0LWhhbXJpY2stb2dw
LWF1dGgtMDAgKHdvcmsKICAgICAgICAgICAgICBpbiBwcm9ncmVzcyksIE1hcmNoIDIwMDkuCgog
ICBbT1BFTklEXSAgIE9wZW5JRCBGb3VuZGF0aW9uLCAiT3BlbklEIEF1dGhlbnRpY2F0aW9uIDIu
MCAtIEZpbmFsIiwKICAgICAgICAgICAgICAyMDA3LgoKICAgW1JGQzIwNDVdICBGcmVlZCwgTi4g
YW5kIE4uIEJvcmVuc3RlaW4sICJNdWx0aXB1cnBvc2UgSW50ZXJuZXQgTWFpbAogICAgICAgICAg
ICAgIEV4dGVuc2lvbnMgKE1JTUUpIFBhcnQgT25lOiBGb3JtYXQgb2YgSW50ZXJuZXQgTWVzc2Fn
ZQogICAgICAgICAgICAgIEJvZGllcyIsIFJGQyAyMDQ1LCBOb3ZlbWJlciAxOTk2LgoKICAgW1JG
QzIwNDZdICBGcmVlZCwgTi4gYW5kIE4uIEJvcmVuc3RlaW4sICJNdWx0aXB1cnBvc2UgSW50ZXJu
ZXQgTWFpbAogICAgICAgICAgICAgIEV4dGVuc2lvbnMgKE1JTUUpIFBhcnQgVHdvOiBNZWRpYSBU
eXBlcyIsIFJGQyAyMDQ2LAogICAgICAgICAgICAgIE5vdmVtYmVyIDE5OTYuCgogICBbUkZDMjEx
OV0gIEJyYWRuZXIsIFMuLCAiS2V5IHdvcmRzIGZvciB1c2UgaW4gUkZDcyB0byBJbmRpY2F0ZQog
ICAgICAgICAgICAgIFJlcXVpcmVtZW50IExldmVscyIsIEJDUCAxNCwgUkZDIDIxMTksIE1hcmNo
IDE5OTcuCgogICBbUkZDNDI4OF0gIEZyZWVkLCBOLiBhbmQgSi4gS2xlbnNpbiwgIk1lZGlhIFR5
cGUgU3BlY2lmaWNhdGlvbnMgYW5kCiAgICAgICAgICAgICAgUmVnaXN0cmF0aW9uIFByb2NlZHVy
ZXMiLCBCQ1AgMTMsIFJGQyA0Mjg4LCBEZWNlbWJlciAyMDA1LgoKICAgW1JGQzQ2MjddICBDcm9j
a2ZvcmQsIEQuLCAiVGhlIGFwcGxpY2F0aW9uL2pzb24gTWVkaWEgVHlwZSBmb3IKICAgICAgICAg
ICAgICBKYXZhU2NyaXB0IE9iamVjdCBOb3RhdGlvbiAoSlNPTikiLCBSRkMgNDYyNywgSnVseSAy
MDA2LgoKNy4yLiAgSW5mb3JtYXRpdmUgUmVmZXJlbmNlcwoKICAgW0ktRC5oYW1yaWNrLWxsc2Rd
CiAgICAgICAgICAgICAgQnJhc2hlYXJzLCBBLiwgSGFtcmljaywgTS4sIGFuZCBNLiBMZW50Y3pu
ZXIsICJMaW5kZW4gTGFiCiAgICAgICAgICAgICAgU3RydWN0dXJlZCBEYXRhIiwgMjAwOC4KCiAg
IFtSRkMyNjE2XSAgRmllbGRpbmcsIFIuLCBHZXR0eXMsIEouLCBNb2d1bCwgSi4sIEZyeXN0eWss
IEguLAogICAgICAgICAgICAgIE1hc2ludGVyLCBMLiwgTGVhY2gsIFAuLCBhbmQgVC4gQmVybmVy
cy1MZWUsICJIeXBlcnRleHQKICAgICAgICAgICAgICBUcmFuc2ZlciBQcm90b2NvbCAtLSBIVFRQ
LzEuMSIsIFJGQyAyNjE2LCBKdW5lIDE5OTkuCgogICBbUkZDMzU1Ml0gIFJlc2NvcmxhLCBFLiBh
bmQgQi4gS29ydmVyLCAiR3VpZGVsaW5lcyBmb3IgV3JpdGluZyBSRkMKICAgICAgICAgICAgICBU
ZXh0IG9uIFNlY3VyaXR5IENvbnNpZGVyYXRpb25zIiwgQkNQIDcyLCBSRkMgMzU1MiwKICAgICAg
ICAgICAgICBKdWx5IDIwMDMuCgogICBbUkZDNTIyNl0gIE5hcnRlbiwgVC4gYW5kIEguIEFsdmVz
dHJhbmQsICJHdWlkZWxpbmVzIGZvciBXcml0aW5nIGFuCiAgICAgICAgICAgICAgSUFOQSBDb25z
aWRlcmF0aW9ucyBTZWN0aW9uIGluIFJGQ3MiLCBCQ1AgMjYsIFJGQyA1MjI2LAogICAgICAgICAg
ICAgIE1heSAyMDA4LgoKCkFwcGVuZGl4IEEuICBBY2tub3dsZWRnZW1lbnRzCgogICBUaGUgYXV0
aG9yIGdyYXRlZnVsbHkgYWNrbm93bGVkZ2VzIHRoZSBjb250cmlidXRpb25zIG9mIEpvaG4gSHVy
bGltYW4KICAgd2hvc2UgYWR2b2NhY3kgZm9yIHdlYiBiYXNlZCBhdXRoZW50aWNhdGlvbiBhbmQg
YXV0aG9yaXphdGlvbiBzY2hlbWVzCiAgIGVuY291cmFnZWQgbWUgdG8gd3JpdGUgdGhpcyBkcmFm
dCBhbmQgd2hvc2Ugd29yayBhbmQgcmVxdWlyZW1lbnRzCiAgIGdyZWF0bHkgaW5mbHVlbmNlZCB0
aGUgZm9ybWF0IG9mIHRoZSBtZXNzYWdlIGRlZmluZWQgaGVyZS4KCgoKSGFtcmljayAgICAgICAg
ICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOCwgMjAwOSAgICAgICAgICAgICAgW1BhZ2UgMTFd
CgwKSW50ZXJuZXQtRHJhZnQgICBPR1AgOiBDbGllbnQgQXBwbGljYXRpb24gTGF1bmNoIE1lc3Nh
Z2UgICAgICAgSnVuZSAyMDA5CgoKQXV0aG9yJ3MgQWRkcmVzcwoKICAgTWVhZGhiaCBTaW9iaGFu
IEhhbXJpY2sKICAgTGluZGVuIFJlc2VhcmNoLCBJbmMuCiAgIDk0NSBCYXR0ZXJ5IFN0LgogICBT
YW4gRnJhbmNpc2NvLCBDQSAgOTQxMTEKICAgVVMKCiAgIFBob25lOiArMSA2NTAgMjgzIDAzNDQK
ICAgRW1haWw6IGluZmluaXR5QGxpbmRlbmxhYi5jb20KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgpIYW1yaWNrICAgICAgICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVy
IDI4LCAyMDA5ICAgICAgICAgICAgICBbUGFnZSAxMl0KDAoK
--00163691fe650136d4046d44712c--

From infinity@lindenlab.com  Fri Jun 26 16:47:49 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id F2B123A6B07 for <ogpx@core3.amsl.com>; Fri, 26 Jun 2009 16:47:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.665
X-Spam-Level: 
X-Spam-Status: No, score=-1.665 tagged_above=-999 required=5 tests=[AWL=0.312,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SMjwRS9vjwJu for <ogpx@core3.amsl.com>; Fri, 26 Jun 2009 16:47:49 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.251]) by core3.amsl.com (Postfix) with ESMTP id 0824D3A6A09 for <ogpx@ietf.org>; Fri, 26 Jun 2009 16:47:48 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c37so928318anc.4 for <ogpx@ietf.org>; Fri, 26 Jun 2009 16:48:01 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.107.8 with SMTP id f8mr5436100anc.197.1246060081117; Fri,  26 Jun 2009 16:48:01 -0700 (PDT)
Date: Fri, 26 Jun 2009 16:48:00 -0700
Message-ID: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: ogpx@ietf.org
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: [ogpx] content negotiation for LLSD over HTTP connections
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jun 2009 23:47:50 -0000

so... we have three serialization formats for LLSD messages over HTTP:
XML, JSON and Binary. each has it's own uses and constituency.

but it _does_ leave implementers and deployers with questions like:

* must i support each and every LLSD defined serialization?
* under what circumstances should i choose one over the other?
* what if i am a server and i only want to use one serialization?
* what if i am a client and i only want to use one serialization?

i have some opinions (of course). but i wanted to ask implementer's
opinions on these questions... so here's a starting point for
discussion...

THE BACKSTORY

way back in the day, some people noticed SL's proto-LLSD "annotation
format" looked an aweful lot like JSON. users with a copy of ethereal
/ wireshark could see lotsa XML flying around too. so when public
discussions of OGP came along, people naturally thought that LLSD
SHOULD be serialized using JSON ("cause... you know.. like the whole
web is movign to JSON, dude.") well... except those people who thought
it should be serialized using XML, since XML was the king of all
structured information interchange formats. and then there were the
people who said, "oh noes! you have to use a binary format to get
efficiency!"

all these different stakeholders have valid points. and that's part of
why we have LLSD as an abstract type system with three defined
serializations today.

THE MORE RECENT BACKSTORY

then last year when we started the interop work, software engineers
had to code message parsers and the like. for the most part, we
ignored JSON and binary serializations and focused on XML. but.. we
know we can't do that moving forward.

THE PROBLEM

what we only started handling last year was addressing the questions
above: should my service support ALL serializations? what do i do if i
get a serialization i don't like? or can't understand?

THE SOLUTION (we wanted to implement last year but didn't have time for)

inspired by the words "an implementation should be conservative in its
sending behavior, and liberal in its receiving behavior," [RFC760] we
figured a generally available service SHOULD accept messages
serialized with all three defined serializations (XML, JSON & Binary,)
but SHOULD probably try to send things using one serialization.

we're using the word "SHOULD" here in case you're building a service
where you control both the producer and consumer of a service and only
want to support one serialization (maybe you have a super-fancy
hardware XML parser and you choke when you get JSON or something.) i
think there's general agreement that we don't want to force deployers
/ implementers in these situations to use a serialization that will be
difficult for them.

and maybe you're a developer building a new client, and you were able
to get the JSON library to build on your system, but expat remains
unavailable. we don't want to force you to support XML in this case.

but... in all these cases there are probably very good ideas to
support the other serializations, but we're going to let you analyze
the trade-offs.

so... back to the questions above... should a well defined service
accept requests using all three LLSD serializations? i vote "yes." it
is in keeping with internet tradition and a generally good idea. when
a client uses HTTP to transport an OGP message from client to server
via PUT or POST, it may include a Content-Type: header to tell the
server about the serialization it is using. if the client wants a
response using a particular serialization, it can use the Accept:
header.

so.. question... what should happen if the server doesn't want to use
the serialization(s) specified in the Accept: header? or the client
identifies a serialization the server just doesn't understand? Maybe a
406 or 415 response?

anyway. this is just an initial post to get the discussion started.

if you have any opinions one way or another, please voice them here.

-cheers
-meadhbh

From john.hurliman@intel.com  Fri Jun 26 18:30:01 2009
Return-Path: <john.hurliman@intel.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A15193A6BE4 for <ogpx@core3.amsl.com>; Fri, 26 Jun 2009 18:30:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17qXE6BGSChD for <ogpx@core3.amsl.com>; Fri, 26 Jun 2009 18:30:00 -0700 (PDT)
Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by core3.amsl.com (Postfix) with ESMTP id 868BA3A6BC8 for <ogpx@ietf.org>; Fri, 26 Jun 2009 18:30:00 -0700 (PDT)
Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 26 Jun 2009 18:30:19 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="4.42,299,1243839600"; d="scan'208";a="159047754"
Received: from rrsmsx602.amr.corp.intel.com ([10.31.0.33]) by azsmga001.ch.intel.com with ESMTP; 26 Jun 2009 18:30:18 -0700
Received: from rrsmsx506.amr.corp.intel.com ([10.31.0.39]) by rrsmsx602.amr.corp.intel.com ([10.31.0.33]) with mapi; Fri, 26 Jun 2009 19:30:18 -0600
From: "Hurliman, John" <john.hurliman@intel.com>
To: Infinity Linden <infinity@lindenlab.com>, "ogpx@ietf.org" <ogpx@ietf.org>
Date: Fri, 26 Jun 2009 19:30:15 -0600
Thread-Topic: [ogpx] content negotiation for LLSD over HTTP connections
Thread-Index: Acn2uJIeNWMVOACMQ/yqb2lAWcx0qwADYN5Q
Message-ID: <62BFE5680C037E4DA0B0A08946C0933D9123A6A4@rrsmsx506.amr.corp.intel.com>
References: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com>
In-Reply-To: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [ogpx] content negotiation for LLSD over HTTP connections
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 01:30:01 -0000

This is how we're using LLSD. It will accept any of the three serialization=
s: XML, JSON, and binary. Notation support was (thankfully) removed when th=
e LLSD/LLIDL draft was posted. It uses a basic algorithm to try and figure =
out what content type the data is (since no one sets their content type hea=
ders correctly or can even agree what the content type string should be). H=
owever, only JSON data is sent. The standard "application/json" mime type i=
s used since we're using a subset of LLIDL that is always compliant with th=
e JSON RFC.

John

>-----Original Message-----
>From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On Behalf Of
>Infinity Linden
>Sent: Friday, June 26, 2009 4:48 PM
>To: ogpx@ietf.org
>Subject: [ogpx] content negotiation for LLSD over HTTP connections
>
>so... we have three serialization formats for LLSD messages over HTTP:
>XML, JSON and Binary. each has it's own uses and constituency.
>
>but it _does_ leave implementers and deployers with questions like:
>
>* must i support each and every LLSD defined serialization?
>* under what circumstances should i choose one over the other?
>* what if i am a server and i only want to use one serialization?
>* what if i am a client and i only want to use one serialization?
>
>i have some opinions (of course). but i wanted to ask implementer's
>opinions on these questions... so here's a starting point for
>discussion...
>
>THE BACKSTORY
>
>way back in the day, some people noticed SL's proto-LLSD "annotation
>format" looked an aweful lot like JSON. users with a copy of ethereal
>/ wireshark could see lotsa XML flying around too. so when public
>discussions of OGP came along, people naturally thought that LLSD
>SHOULD be serialized using JSON ("cause... you know.. like the whole
>web is movign to JSON, dude.") well... except those people who thought
>it should be serialized using XML, since XML was the king of all
>structured information interchange formats. and then there were the
>people who said, "oh noes! you have to use a binary format to get
>efficiency!"
>
>all these different stakeholders have valid points. and that's part of
>why we have LLSD as an abstract type system with three defined
>serializations today.
>
>THE MORE RECENT BACKSTORY
>
>then last year when we started the interop work, software engineers
>had to code message parsers and the like. for the most part, we
>ignored JSON and binary serializations and focused on XML. but.. we
>know we can't do that moving forward.
>
>THE PROBLEM
>
>what we only started handling last year was addressing the questions
>above: should my service support ALL serializations? what do i do if i
>get a serialization i don't like? or can't understand?
>
>THE SOLUTION (we wanted to implement last year but didn't have time for)
>
>inspired by the words "an implementation should be conservative in its
>sending behavior, and liberal in its receiving behavior," [RFC760] we
>figured a generally available service SHOULD accept messages
>serialized with all three defined serializations (XML, JSON & Binary,)
>but SHOULD probably try to send things using one serialization.
>
>we're using the word "SHOULD" here in case you're building a service
>where you control both the producer and consumer of a service and only
>want to support one serialization (maybe you have a super-fancy
>hardware XML parser and you choke when you get JSON or something.) i
>think there's general agreement that we don't want to force deployers
>/ implementers in these situations to use a serialization that will be
>difficult for them.
>
>and maybe you're a developer building a new client, and you were able
>to get the JSON library to build on your system, but expat remains
>unavailable. we don't want to force you to support XML in this case.
>
>but... in all these cases there are probably very good ideas to
>support the other serializations, but we're going to let you analyze
>the trade-offs.
>
>so... back to the questions above... should a well defined service
>accept requests using all three LLSD serializations? i vote "yes." it
>is in keeping with internet tradition and a generally good idea. when
>a client uses HTTP to transport an OGP message from client to server
>via PUT or POST, it may include a Content-Type: header to tell the
>server about the serialization it is using. if the client wants a
>response using a particular serialization, it can use the Accept:
>header.
>
>so.. question... what should happen if the server doesn't want to use
>the serialization(s) specified in the Accept: header? or the client
>identifies a serialization the server just doesn't understand? Maybe a
>406 or 415 response?
>
>anyway. this is just an initial post to get the discussion started.
>
>if you have any opinions one way or another, please voice them here.
>
>-cheers
>-meadhbh
>_______________________________________________
>ogpx mailing list
>ogpx@ietf.org
>https://www.ietf.org/mailman/listinfo/ogpx
>=20

From infinity@lindenlab.com  Fri Jun 26 23:00:05 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 008143A6B4F for <ogpx@core3.amsl.com>; Fri, 26 Jun 2009 23:00:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.682
X-Spam-Level: 
X-Spam-Status: No, score=-1.682 tagged_above=-999 required=5 tests=[AWL=0.296,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fywQL2RLTh66 for <ogpx@core3.amsl.com>; Fri, 26 Jun 2009 23:00:04 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.243]) by core3.amsl.com (Postfix) with ESMTP id BD27F3A69B7 for <ogpx@ietf.org>; Fri, 26 Jun 2009 23:00:03 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c37so989343anc.4 for <ogpx@ietf.org>; Fri, 26 Jun 2009 23:00:20 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.47.6 with SMTP id u6mr5997142anu.97.1246082420463; Fri, 26  Jun 2009 23:00:20 -0700 (PDT)
In-Reply-To: <62BFE5680C037E4DA0B0A08946C0933D9123A6A4@rrsmsx506.amr.corp.intel.com>
References: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com> <62BFE5680C037E4DA0B0A08946C0933D9123A6A4@rrsmsx506.amr.corp.intel.com>
Date: Fri, 26 Jun 2009 23:00:20 -0700
Message-ID: <3a880e2c0906262300g3b1d4052y9ed072a784d4289a@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: "Hurliman, John" <john.hurliman@intel.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] content negotiation for LLSD over HTTP connections
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 06:00:05 -0000

there are actually some OGP constructions that are single
(non-collection) types (and thus, not RFC4627 compliant JSON.)

for what it's worth... none of the browsers we tested (two versions of
firefox, one version of safari, two versions of IE) seemed to reject
non-collections when receiving and evaluating application/json media
types. in other words, there seems to be a fine history in the browser
world of ignoring RFCs.

still... i just noticed that RFC4627 is informational, which _may_
cause a problem in the future as we listed it as a normative reference
in the LLSD draft. maybe i'll write another, normative draft for a
version of JSON that "does the right thing" and lists the encoding in
the "standard" way by adding it to the media type.

at the end of the day, if we can develop an algorithm for identifying
the serialization without peeking at the media type, we'll probably
all be fine. thought i'll ask that developers at Linden "do the right
thing" and properly identify the media type in headers and would ask
you to do the same with developers you work with.

On Fri, Jun 26, 2009 at 6:30 PM, Hurliman, John<john.hurliman@intel.com> wr=
ote:
> This is how we're using LLSD. It will accept any of the three serializati=
ons: XML, JSON, and binary. Notation support was (thankfully) removed when =
the LLSD/LLIDL draft was posted. It uses a basic algorithm to try and figur=
e out what content type the data is (since no one sets their content type h=
eaders correctly or can even agree what the content type string should be).=
 However, only JSON data is sent. The standard "application/json" mime type=
 is used since we're using a subset of LLIDL that is always compliant with =
the JSON RFC.
>
> John
>
>>-----Original Message-----
>>From: ogpx-bounces@ietf.org [mailto:ogpx-bounces@ietf.org] On Behalf Of
>>Infinity Linden
>>Sent: Friday, June 26, 2009 4:48 PM
>>To: ogpx@ietf.org
>>Subject: [ogpx] content negotiation for LLSD over HTTP connections
>>
>>so... we have three serialization formats for LLSD messages over HTTP:
>>XML, JSON and Binary. each has it's own uses and constituency.
>>
>>but it _does_ leave implementers and deployers with questions like:
>>
>>* must i support each and every LLSD defined serialization?
>>* under what circumstances should i choose one over the other?
>>* what if i am a server and i only want to use one serialization?
>>* what if i am a client and i only want to use one serialization?
>>
>>i have some opinions (of course). but i wanted to ask implementer's
>>opinions on these questions... so here's a starting point for
>>discussion...
>>
>>THE BACKSTORY
>>
>>way back in the day, some people noticed SL's proto-LLSD "annotation
>>format" looked an aweful lot like JSON. users with a copy of ethereal
>>/ wireshark could see lotsa XML flying around too. so when public
>>discussions of OGP came along, people naturally thought that LLSD
>>SHOULD be serialized using JSON ("cause... you know.. like the whole
>>web is movign to JSON, dude.") well... except those people who thought
>>it should be serialized using XML, since XML was the king of all
>>structured information interchange formats. and then there were the
>>people who said, "oh noes! you have to use a binary format to get
>>efficiency!"
>>
>>all these different stakeholders have valid points. and that's part of
>>why we have LLSD as an abstract type system with three defined
>>serializations today.
>>
>>THE MORE RECENT BACKSTORY
>>
>>then last year when we started the interop work, software engineers
>>had to code message parsers and the like. for the most part, we
>>ignored JSON and binary serializations and focused on XML. but.. we
>>know we can't do that moving forward.
>>
>>THE PROBLEM
>>
>>what we only started handling last year was addressing the questions
>>above: should my service support ALL serializations? what do i do if i
>>get a serialization i don't like? or can't understand?
>>
>>THE SOLUTION (we wanted to implement last year but didn't have time for)
>>
>>inspired by the words "an implementation should be conservative in its
>>sending behavior, and liberal in its receiving behavior," [RFC760] we
>>figured a generally available service SHOULD accept messages
>>serialized with all three defined serializations (XML, JSON & Binary,)
>>but SHOULD probably try to send things using one serialization.
>>
>>we're using the word "SHOULD" here in case you're building a service
>>where you control both the producer and consumer of a service and only
>>want to support one serialization (maybe you have a super-fancy
>>hardware XML parser and you choke when you get JSON or something.) i
>>think there's general agreement that we don't want to force deployers
>>/ implementers in these situations to use a serialization that will be
>>difficult for them.
>>
>>and maybe you're a developer building a new client, and you were able
>>to get the JSON library to build on your system, but expat remains
>>unavailable. we don't want to force you to support XML in this case.
>>
>>but... in all these cases there are probably very good ideas to
>>support the other serializations, but we're going to let you analyze
>>the trade-offs.
>>
>>so... back to the questions above... should a well defined service
>>accept requests using all three LLSD serializations? i vote "yes." it
>>is in keeping with internet tradition and a generally good idea. when
>>a client uses HTTP to transport an OGP message from client to server
>>via PUT or POST, it may include a Content-Type: header to tell the
>>server about the serialization it is using. if the client wants a
>>response using a particular serialization, it can use the Accept:
>>header.
>>
>>so.. question... what should happen if the server doesn't want to use
>>the serialization(s) specified in the Accept: header? or the client
>>identifies a serialization the server just doesn't understand? Maybe a
>>406 or 415 response?
>>
>>anyway. this is just an initial post to get the discussion started.
>>
>>if you have any opinions one way or another, please voice them here.
>>
>>-cheers
>>-meadhbh
>>_______________________________________________
>>ogpx mailing list
>>ogpx@ietf.org
>>https://www.ietf.org/mailman/listinfo/ogpx
>>
>

From carlo@alinoe.com  Sat Jun 27 03:32:44 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id ACECB3A6B79 for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 03:32:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.43
X-Spam-Level: 
X-Spam-Status: No, score=-1.43 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kGwyJsgcP3rV for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 03:32:44 -0700 (PDT)
Received: from viefep13-int.chello.at (viefep13-int.chello.at [62.179.121.33]) by core3.amsl.com (Postfix) with ESMTP id 7E7393A6B2D for <ogpx@ietf.org>; Sat, 27 Jun 2009 03:32:43 -0700 (PDT)
Received: from edge05.upc.biz ([192.168.13.212]) by viefep13-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090627103300.UTII23539.viefep13-int.chello.at@edge05.upc.biz>; Sat, 27 Jun 2009 12:33:00 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge05.upc.biz with edge id 8yYx1c04c0FlQed05yYzTx; Sat, 27 Jun 2009 12:33:00 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MKVDS-0007aA-C0; Sat, 27 Jun 2009 12:33:02 +0200
Date: Sat, 27 Jun 2009 12:33:02 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090627103302.GA28675@alinoe.com>
References: <3a880e2c0906261123g4c6c3dbq77029dee0c4b5128@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3a880e2c0906261123g4c6c3dbq77029dee0c4b5128@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] OpenID and OGP : beginning the discussion ...
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 10:32:44 -0000

>    & identifier = {
>      type: 'account',
>      account_name: string,
>      first_name: string,
>      last_name: string,
>    }
> 
>    & identifier = {
>        type: 'agent',
>        first_name: string,
>        last_name: string,
>    }

This seems to implicate that first_name + last_name
have to be unique not only per grid, but globally
for every virtual world.

Is that true? Or would it be possible to use a different
name on different grids? Would it be possible that different
unrelated people use the same name on different grids?

-- 
Carlo Wood <carlo@alinoe.com>

From carlo@alinoe.com  Sat Jun 27 03:47:33 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id DB0873A6B2D for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 03:47:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.43
X-Spam-Level: 
X-Spam-Status: No, score=-1.43 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JFfCB8LlAuwm for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 03:47:33 -0700 (PDT)
Received: from viefep15-int.chello.at (viefep15-int.chello.at [62.179.121.35]) by core3.amsl.com (Postfix) with ESMTP id 8E1B83A6B15 for <ogpx@ietf.org>; Sat, 27 Jun 2009 03:47:32 -0700 (PDT)
Received: from edge04.upc.biz ([192.168.13.239]) by viefep15-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090627104729.RQBQ26501.viefep15-int.chello.at@edge04.upc.biz>; Sat, 27 Jun 2009 12:47:29 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge04.upc.biz with edge id 8ynS1c02m0FlQed04ynTJ7; Sat, 27 Jun 2009 12:47:29 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MKVRT-0007ls-9q; Sat, 27 Jun 2009 12:47:31 +0200
Date: Sat, 27 Jun 2009 12:47:31 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090627104731.GB28675@alinoe.com>
References: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] content negotiation for LLSD over HTTP connections
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 10:47:33 -0000

On Fri, Jun 26, 2009 at 04:48:00PM -0700, Infinity Linden wrote:
> so... we have three serialization formats for LLSD messages over HTTP:
> XML, JSON and Binary. each has it's own uses and constituency.
> 
> but it _does_ leave implementers and deployers with questions like:
> 
> * must i support each and every LLSD defined serialization?
> * under what circumstances should i choose one over the other?
> * what if i am a server and i only want to use one serialization?
> * what if i am a client and i only want to use one serialization?

In the past I designed a client-server protocol negotiation sheme
that allows for arbitrary protocol enhancements over time, without
an every growing protocol negotiation payload or the need to
keep supporting legay protocol; namely, it is possible to shift
the 'base' protocol and drop support for (very) old protocol.

This sheme was originally written for IRC, and wasn't adopted
because the people who had to decide if they liked it weren't
able to understand it... and lacking an overview, it gave them
the uneasy feeling that it was "too complicated".

However, it is not too complicated at all. It's mathematically
perfect and rather easy way to allow for protocol changes in
the future.

One part of it involves negotiation of optional (non-mandatory)
features / protocol aspects, so you could use it for example to
negotiate the serialization in the case that both, server and
client have their preferences and/or limitations.

Basically, it works as follows:

The client connects and "requests" a protocol (version) and
specific features. The server then has two options: either
it tells the client that it is incompatible (too old), or
it sends back the set of feautures that will be used.

The details can be found here (though be warned, this is my
original design and applies to IRC):

http://www.xs4all.nl/~carlo17/irc/prot.html

-- 
Carlo Wood <carlo@alinoe.com>

PS Don't tell me it's "too complex" ;).
   This is a very flexible, very powerful way to make sure
   that grids being developed by different groups will not
   be get stuck in some legacy protocol.


From carlo@alinoe.com  Sat Jun 27 04:00:52 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 42E363A6A38 for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 04:00:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.43
X-Spam-Level: 
X-Spam-Status: No, score=-1.43 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cnK14k7390+S for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 04:00:51 -0700 (PDT)
Received: from viefep13-int.chello.at (viefep13-int.chello.at [62.179.121.33]) by core3.amsl.com (Postfix) with ESMTP id CFDD33A67FD for <ogpx@ietf.org>; Sat, 27 Jun 2009 04:00:50 -0700 (PDT)
Received: from edge03.upc.biz ([192.168.13.238]) by viefep13-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090627110108.VPHR23539.viefep13-int.chello.at@edge03.upc.biz>; Sat, 27 Jun 2009 13:01:08 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge03.upc.biz with edge id 8z171c02u0FlQed03z18Zj; Sat, 27 Jun 2009 13:01:08 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MKVei-0007wh-7Y; Sat, 27 Jun 2009 13:01:12 +0200
Date: Sat, 27 Jun 2009 13:01:12 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090627110112.GC28675@alinoe.com>
References: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com> <20090627104731.GB28675@alinoe.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20090627104731.GB28675@alinoe.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] content negotiation for LLSD over HTTP connections
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 11:00:52 -0000

On Sat, Jun 27, 2009 at 12:47:31PM +0200, Carlo Wood wrote:
> The details can be found here (though be warned, this is my
> original design and applies to IRC):
> 
> http://www.xs4all.nl/~carlo17/irc/prot.html

Let me add, because this was a source of confusion in the
past too, the mention of webpages in that document has
nothing to do with the actual protocol negotation (there
is no need for either side to connect to and parse
those websits).  I just added what webpages should exist
for and how they'd link to *documentation*. The idea there
is that if some client coder connects to a new network
they will be able to find the documentation of the
protocol, including any negotiable feature, with a few
clicks. It's just documentation thus.

If this sheme was to be implemented for ogpx, then
the negotation messages would be XML (LLSD/LLIDL)
of course :).

-- 
Carlo Wood <carlo@alinoe.com>

From carlo@alinoe.com  Sat Jun 27 04:50:54 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7497F3A68C0 for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 04:50:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.13
X-Spam-Level: 
X-Spam-Status: No, score=-1.13 tagged_above=-999 required=5 tests=[AWL=-0.300,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745, J_CHICKENPOX_46=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4vyuhYmaA-1F for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 04:50:53 -0700 (PDT)
Received: from viefep13-int.chello.at (viefep13-int.chello.at [62.179.121.33]) by core3.amsl.com (Postfix) with ESMTP id 10F363A688D for <ogpx@ietf.org>; Sat, 27 Jun 2009 04:50:52 -0700 (PDT)
Received: from edge05.upc.biz ([192.168.13.212]) by viefep13-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090627115109.XANZ23539.viefep13-int.chello.at@edge05.upc.biz>; Sat, 27 Jun 2009 13:51:09 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge05.upc.biz with edge id 8zr61c00P0FlQed05zr7Nw; Sat, 27 Jun 2009 13:51:09 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MKWR5-00007j-2M; Sat, 27 Jun 2009 13:51:11 +0200
Date: Sat, 27 Jun 2009 13:51:11 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090627115111.GA30752@alinoe.com>
References: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com> <20090627104731.GB28675@alinoe.com> <20090627110112.GC28675@alinoe.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20090627110112.GC28675@alinoe.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] content negotiation for LLSD over HTTP connections
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 11:50:54 -0000

Ok, I made a 'translation' of that IRC page for the purpose of ogpx:

For documentation purposes there would exist a (central) webpage,
for example http://protocols.ogpx.net, that lists all (accepted)
ogpx server implementations (basically meaning more or less
independent groups working on their own ogpx server versions).

For example, this page could list the labels:
SecondLife, OpenSim, BlueMoon, which link to websites
controlled by the aforementioned group. Lets call these
"implementation labels" for now.

Upon connection to a server, the server should send a message
to the client as early as possible (even before authentication,
or order to allow also the authentication method to be altered
in the future) indicating which protocol base it is using.
This would exist of a (list) of triplets exists of a label (string)
a version (integer) and a 'compatibility version' (integer).

For human readable and documentation reasons, the label should
always start with an "implementation label". It's highly suggested
to just add an integer behind that to complete the label and
make it unique. Lets call these labels "version labels".
For example, the version labels could read "SecondLife23",
"OpenSim1", etc.

For documentation purposes, each of the aforementioned websites
owned by the different implementer groups should list each of
these version labels with a link to more information about them.

The version string together with the version defines the (supported)
protocol of the server: every feature, mandatory of optional.

Neither side has to worry about the mandatory parts, since the
versions will take care of that: a 'compatibility version' is
oldest version that supports all mandatory stuff.

The client then reacts with the version label and protocol version
it 'requests', as well as all the optional features it wants.
The server confirms which optional features will be used, after
which the protocol is switched to the negotiated protocol.
The client acknowledges this and also switches to the final
protocol.

As an example, lets assume that one implementation (opensim)
adds a feature that allows clients to better synchronize animations
with sound. They assign the label "anisndsync" to it, which only
really has to be unique within the namespace of OpenSim.
It is made a negotiable feature of 'OpenSim1 version 30'.

A viewer that has no notion of this feature will logically not
request it, and therefore it will not be used.

If some grid makes the feature mandatory, the negotation fails
with such a client and the user is told to upgrade to a viewer
that supports 'anisndsync'. I do not consider it very likely
that anyone would make it mandatory however, until -say- 90%
of all viewers already support it, and the 4 year-old viewers
that still don't become really annoying.

If the client supports it, it will request it (if it's an optional
feature, still) and the server will grant it. Obviously the
server will know about it (it sent 'OpenSim1 30'), or else
the viewer would not have requested it.

However, then this feauture turns out to not to work - and
the opensim developers decide to remove it again from version
31. Removing a negotiable feature doesn't break compatiblity,
so there is nothing to indicate to a viewer (that was written
during version 30) that version 31 doesn't support it anymore.
What would happen is this: The server says: Opensim1 31 10.
(where 10 is the compatibility version in this example).
The viewer, only knowing about version 30 and before (that is,
version 10 to 30) doesn't have a clue what changed in
version 31, but it knows that 10 < 30, the version it does
support - and hence it is allowed to react as if the server
is version 30. So, it requests "anisndsync" as before.
This time however, the server doesn't acknowledge it, and
the feature is not used.

What worried people in the past with this sheme is:
How do the clients keep track of all the features that are
mandatory and/or negotiable for every version?

Well, this is really very very simple. For each implementated
feature the coder had to sit down and read the documenation.
Along with that documentation come the label and version
number. So, all that is needed is a map from "label + version"
to which *implemented* features are mandatory or negotiable.
The maintenance load of that is neglectable. It will be like
adding two lines of code extra per feature:

  protocol.register("OpenSim1", 30, "anisndsync", &handle_anisndsync);

and common code that takes care of the whole negotiation
will do the rest.

Mapping "OpenSim1" to the mandatory and optional features
might involve more code lines, but this code can simply be
copy&pasted from the documentation website of "OpenSim1".
Also this will be something that is easy to maintain (adding
and removing lines per added/delete feature).

-- 
Carlo Wood <carlo@alinoe.com>

From josh@lindenlab.com  Sat Jun 27 08:30:43 2009
Return-Path: <josh@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0B88F3A6A19 for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 08:30:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.058
X-Spam-Level: 
X-Spam-Status: No, score=-2.058 tagged_above=-999 required=5 tests=[AWL=-0.542, BAYES_00=-2.599, URIBL_RHS_DOB=1.083]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YCScpsVbLaXj for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 08:30:42 -0700 (PDT)
Received: from tammy.lindenlab.com (tammy.lindenlab.com [216.82.11.128]) by core3.amsl.com (Postfix) with ESMTP id AD91D3A6CED for <ogpx@ietf.org>; Sat, 27 Jun 2009 08:30:41 -0700 (PDT)
Received: from thinslab.lindenlab.com (thinslab.lindenlab.com [10.1.8.224]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by tammy.lindenlab.com (Postfix) with ESMTP id 85E6B3DBC061 for <ogpx@ietf.org>; Sat, 27 Jun 2009 08:31:00 -0700 (PDT)
Message-Id: <20A512C1-70CC-4EDC-922F-4FA0DF28E63D@lindenlab.com>
From: Joshua Bell <josh@lindenlab.com>
To: ogpx@ietf.org
In-Reply-To: <3a880e2c0906262300g3b1d4052y9ed072a784d4289a@mail.gmail.com>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Apple Message framework v935.3)
Date: Sat, 27 Jun 2009 08:31:00 -0700
References: <3a880e2c0906261648k1a14024cudd4cbccb57d8753f@mail.gmail.com><62BFE5680C037E4DA0B0A08946C0933D9123A6A4@rrsmsx506.amr. corp.intel.com> <3a880e2c0906262300g3b1d4052y9ed072a784d4289a@mail.gmail.com>
X-Mailer: Apple Mail (2.935.3)
Subject: Re: [ogpx] content negotiation for LLSD over HTTP connections
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 15:30:43 -0000

On Jun 26, 2009, at 11:00 PM, Infinity Linden wrote:

> there are actually some OGP constructions that are single
> (non-collection) types (and thus, not RFC4627 compliant JSON.)
>
> for what it's worth... none of the browsers we tested (two versions of
> firefox, one version of safari, two versions of IE) seemed to reject
> non-collections when receiving and evaluating application/json media
> types. in other words, there seems to be a fine history in the browser
> world of ignoring RFCs.

FWIW, the ECMAScript 5 folks are formalizing that relaxation in the  
ES5 JSON parser, at least based on the latest discussions.

https://mail.mozilla.org/pipermail/es-discuss/2009-June/009481.html  
(Allen Wirfs-Brock, ES5 editor)

and:

https://mail.mozilla.org/pipermail/es-discuss/2009-June/009443.html  
(Douglas Crockford, author of the JSON RFC)

and the summary that indicates we're not crazy:

https://mail.mozilla.org/pipermail/es-discuss/2009-June/009445.html

Also in the thread, Crockford indicates no intention to issue a new  
JSON RFC. (That's my interpretation of the thread, mea culpa if I mis- 
implied.)

There is also some tooth gnashing about considering U+2028 and U+2029  
as whitespace.


From infinity@lindenlab.com  Sat Jun 27 15:54:10 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C50143A6877 for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 15:54:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.696
X-Spam-Level: 
X-Spam-Status: No, score=-1.696 tagged_above=-999 required=5 tests=[AWL=0.281,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uXeCNV2X0UPT for <ogpx@core3.amsl.com>; Sat, 27 Jun 2009 15:54:10 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.251]) by core3.amsl.com (Postfix) with ESMTP id DF0A83A67F5 for <ogpx@ietf.org>; Sat, 27 Jun 2009 15:53:51 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c37so1144760anc.4 for <ogpx@ietf.org>; Sat, 27 Jun 2009 15:54:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.110.19 with SMTP id i19mr7016051anc.1.1246143248505; Sat,  27 Jun 2009 15:54:08 -0700 (PDT)
In-Reply-To: <20090627103302.GA28675@alinoe.com>
References: <3a880e2c0906261123g4c6c3dbq77029dee0c4b5128@mail.gmail.com> <20090627103302.GA28675@alinoe.com>
Date: Sat, 27 Jun 2009 15:54:08 -0700
Message-ID: <3a880e2c0906271554u4f9804d2p6704966ee99369c@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Carlo Wood <carlo@alinoe.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: Re: [ogpx] OpenID and OGP : beginning the discussion ...
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Jun 2009 22:54:10 -0000

why would this imply global uniqueness? it describes a message sent
from a client to a particular protocol endpoint.

On Sat, Jun 27, 2009 at 3:33 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> =A0 =A0& identifier =3D {
>> =A0 =A0 =A0type: 'account',
>> =A0 =A0 =A0account_name: string,
>> =A0 =A0 =A0first_name: string,
>> =A0 =A0 =A0last_name: string,
>> =A0 =A0}
>>
>> =A0 =A0& identifier =3D {
>> =A0 =A0 =A0 =A0type: 'agent',
>> =A0 =A0 =A0 =A0first_name: string,
>> =A0 =A0 =A0 =A0last_name: string,
>> =A0 =A0}
>
> This seems to implicate that first_name + last_name
> have to be unique not only per grid, but globally
> for every virtual world.
>
> Is that true? Or would it be possible to use a different
> name on different grids? Would it be possible that different
> unrelated people use the same name on different grids?
>
> --
> Carlo Wood <carlo@alinoe.com>
>

From carlo@alinoe.com  Sun Jun 28 06:36:40 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A763A3A683E for <ogpx@core3.amsl.com>; Sun, 28 Jun 2009 06:36:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.38
X-Spam-Level: 
X-Spam-Status: No, score=-1.38 tagged_above=-999 required=5 tests=[AWL=0.050,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7Obp6szZiZio for <ogpx@core3.amsl.com>; Sun, 28 Jun 2009 06:36:39 -0700 (PDT)
Received: from viefep20-int.chello.at (viefep20-int.chello.at [62.179.121.40]) by core3.amsl.com (Postfix) with ESMTP id 64DDB3A67F6 for <ogpx@ietf.org>; Sun, 28 Jun 2009 06:36:39 -0700 (PDT)
Received: from edge03.upc.biz ([192.168.13.238]) by viefep17-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090628123434.VLUW14607.viefep17-int.chello.at@edge03.upc.biz>; Sun, 28 Jun 2009 14:34:34 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge03.upc.biz with edge id 9QaX1c00R0FlQed03QaY1D; Sun, 28 Jun 2009 14:34:34 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MKtag-0007Oq-SF; Sun, 28 Jun 2009 14:34:38 +0200
Date: Sun, 28 Jun 2009 14:34:38 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090628123438.GA28097@alinoe.com>
References: <3a880e2c0906261123g4c6c3dbq77029dee0c4b5128@mail.gmail.com> <20090627103302.GA28675@alinoe.com> <3a880e2c0906271554u4f9804d2p6704966ee99369c@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3a880e2c0906271554u4f9804d2p6704966ee99369c@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] OpenID and OGP : beginning the discussion ...
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 28 Jun 2009 13:36:40 -0000

I'm glad it doesn't imply that then :p

Nevertheless, it worries me a bit. At some point we want to be able to 
teleport between grids right? Surely the people will want to have the
same name (and shape) after they teleported in most cases.

If the same first_name+last_name is only unique per grid, then
people will (have to) start fights about names: one has to register
the same first_name+last_name on every grid you want to use.

The make a long story short: they same wars and trouble will immerse
as are happening on IRC now: too many people in a too small namespace.

At some point there will come the strong demand for a "nick serv",
some central point where people can reserve their name for every
large grid on the planet and claim for themselves (for example, to
stop forms of impersonations). That would be 'hack'.

I think we have to seriously think about this. Perhaps there is a
better solution than 'first name / last name' to login ;).

On Sat, Jun 27, 2009 at 03:54:08PM -0700, Infinity Linden wrote:
> why would this imply global uniqueness? it describes a message sent
> from a client to a particular protocol endpoint.
> 
> On Sat, Jun 27, 2009 at 3:33 AM, Carlo Wood<carlo@alinoe.com> wrote:
> >>    & identifier = {
> >>      type: 'account',
> >>      account_name: string,
> >>      first_name: string,
> >>      last_name: string,
> >>    }
> >>
> >>    & identifier = {
> >>        type: 'agent',
> >>        first_name: string,
> >>        last_name: string,
> >>    }
> >
> > This seems to implicate that first_name + last_name
> > have to be unique not only per grid, but globally
> > for every virtual world.
> >
> > Is that true? Or would it be possible to use a different
> > name on different grids? Would it be possible that different
> > unrelated people use the same name on different grids?

-- 
Carlo Wood <carlo@alinoe.com>

From infinity@lindenlab.com  Sun Jun 28 09:05:54 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 390803A6A88 for <ogpx@core3.amsl.com>; Sun, 28 Jun 2009 09:05:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.71
X-Spam-Level: 
X-Spam-Status: No, score=-1.71 tagged_above=-999 required=5 tests=[AWL=0.267,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tjoepQSZaD2v for <ogpx@core3.amsl.com>; Sun, 28 Jun 2009 09:05:53 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id 341B03A67B7 for <ogpx@ietf.org>; Sun, 28 Jun 2009 09:05:53 -0700 (PDT)
Received: by yxe12 with SMTP id 12so183023yxe.29 for <ogpx@ietf.org>; Sun, 28 Jun 2009 09:06:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.138.8 with SMTP id l8mr7861292and.32.1246205168647; Sun,  28 Jun 2009 09:06:08 -0700 (PDT)
Date: Sun, 28 Jun 2009 09:06:08 -0700
Message-ID: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Carlo Wood <carlo@alinoe.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 28 Jun 2009 16:05:54 -0000

aha! yes! totally!

OGP is being designed in such a way that "agent concerns" are
separated from "simulation and object presence concerns." One of the
features of OGP is it allows (but does not require) that the
simulation host responsible for maintaining the physical state of
objects (location, orientation, shape, motion, etc.) _can_ be
administered by a different authority from that of the host
responsible for maintaining user information.

or, more succinctly, "the agent domain" may be run by a distinct
organization from the "region domain."

one of the reasons this was introduced was to allow one virtual world
to consist of regions that are administered by different people or
companies, but maintaining central services (like presence, inventory,
group IM, etc.) that lead to a consistent user experience.

in other words, our objective is to allow a user to login to an agent
domain, then establish their avatar's presence in a particular region
and allow that avatar to easily walk across a region boundary to a
region owned and operated by a different trusted operator, and have
that avatar's attachments, appearance and possessions follow them.
(though for expectation setting purposes i should mention that having
adjacent regions from distinct region domains is something that's "way
out there" in terms of schedule, as there's a lot more protocol
between adjacent regions than non-adjacent regions and it's yet to be
standardized in any meaningful manner.)

so... yes... moving from one region domain to another is fully
supported by the protocol.

having an agent defined in multiple agent domains is a little trickier.

On Sun, Jun 28, 2009 at 5:34 AM, Carlo Wood<carlo@alinoe.com> wrote:
> I'm glad it doesn't imply that then :p
>
> Nevertheless, it worries me a bit. At some point we want to be able to
> teleport between grids right? Surely the people will want to have the
> same name (and shape) after they teleported in most cases.
>
> If the same first_name+last_name is only unique per grid, then
> people will (have to) start fights about names: one has to register
> the same first_name+last_name on every grid you want to use.
>
> The make a long story short: they same wars and trouble will immerse
> as are happening on IRC now: too many people in a too small namespace.
>
> At some point there will come the strong demand for a "nick serv",
> some central point where people can reserve their name for every
> large grid on the planet and claim for themselves (for example, to
> stop forms of impersonations). That would be 'hack'.
>
> I think we have to seriously think about this. Perhaps there is a
> better solution than 'first name / last name' to login ;).
>
> On Sat, Jun 27, 2009 at 03:54:08PM -0700, Infinity Linden wrote:
>> why would this imply global uniqueness? it describes a message sent
>> from a client to a particular protocol endpoint.
>>
>> On Sat, Jun 27, 2009 at 3:33 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> >> =A0 =A0& identifier =3D {
>> >> =A0 =A0 =A0type: 'account',
>> >> =A0 =A0 =A0account_name: string,
>> >> =A0 =A0 =A0first_name: string,
>> >> =A0 =A0 =A0last_name: string,
>> >> =A0 =A0}
>> >>
>> >> =A0 =A0& identifier =3D {
>> >> =A0 =A0 =A0 =A0type: 'agent',
>> >> =A0 =A0 =A0 =A0first_name: string,
>> >> =A0 =A0 =A0 =A0last_name: string,
>> >> =A0 =A0}
>> >
>> > This seems to implicate that first_name + last_name
>> > have to be unique not only per grid, but globally
>> > for every virtual world.
>> >
>> > Is that true? Or would it be possible to use a different
>> > name on different grids? Would it be possible that different
>> > unrelated people use the same name on different grids?
>
> --
> Carlo Wood <carlo@alinoe.com>
>

From infinity@lindenlab.com  Sun Jun 28 09:06:06 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7A7D528C0FE for <ogpx@core3.amsl.com>; Sun, 28 Jun 2009 09:06:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.422
X-Spam-Level: 
X-Spam-Status: No, score=-1.422 tagged_above=-999 required=5 tests=[AWL=-0.045, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_23=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kYn8byU-JUcp for <ogpx@core3.amsl.com>; Sun, 28 Jun 2009 09:06:05 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id 4B1C03A6A0D for <ogpx@ietf.org>; Sun, 28 Jun 2009 09:06:05 -0700 (PDT)
Received: by mail-yx0-f182.google.com with SMTP id 12so183023yxe.29 for <ogpx@ietf.org>; Sun, 28 Jun 2009 09:06:25 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.125.15 with SMTP id x15mr7818239anc.73.1246205185182; Sun,  28 Jun 2009 09:06:25 -0700 (PDT)
Date: Sun, 28 Jun 2009 09:06:22 -0700
Message-ID: <3a880e2c0906280906k4603a002m5e14dc9daf679a3f@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Carlo Wood <carlo@alinoe.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: [ogpx] Supporting Multiple Agent Domains [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 28 Jun 2009 16:06:06 -0000

so there's a related question that's been batted around in hushed
tones. it hasn't yet emerged in the full light as i believe there's a
fear it will complicate OGP or at least it's use cases: "what if i
want to define my avatar name and password in one agent domain, but
draw services from another?"

OGP originally envisioned two distinct types of entities: an agent
domain and a region domain. the idea was that _all_ agent services
would go through one agent domain. however, the use of capabilities
allows us to easily deploy critical services in two distinct
administrative domains. this construction was originally introduced to
allow agent domain operators to easily change their service
architecture without having to change it's interface. For example, if
a small operator put user profile services and login services on one
host and later discovered the profile load was bogging down logins,
they could easily move the user profile services to another host and
simply have capabilities for that service point to the new machine.
(Zha Ewry has a good quote related to this, something like "we should
separate deployment from service definition.")

several people noticed that this construction could allow complete
services (like asset management, group chat/IM, etc.) to be managed by
systems in a completely distinct agent domain. that is, the
authentication service host _could_ be managed by one entity while
your inventory was managed by another. this is a great idea... it
allows a business to emerge that focuses on one aspect of the virtual
world: digital asset management, group chat, authentication, whatever.
but.. it GREATLY complicates trust and security issues. and i can
think of at least one grid operator that will not deploy a service if
there's a hint of a security vulnerability.

however... we all know the future of OGP includes multiple, distinct
operators contributing to create a unified virtual world. to this end,
we've been working on enhanced trust models and using PKI and OAuth as
mechanisms to support them. (Kudos to John Hurliman for practical
examples of how OAuth might work in OGP and David Lavine for applying
many cycles thinking about PKIX.)

So... essentially... i think where we're at right now... we anticipate
_the_ "Agent Domain" (note the capitalization) to offer services which
may come from several different "service domains." we anticipate
existing trust relationships to exist between these  "service
domains." further, we anticipate mechanisms such as TLS client
certificates and OAuth tokens to carry trust assertions between
service domains, so these service domains may make meaningful access
control decisions and NOT require end users to separately log into
each distinct service domain.

or.. in other words.. somewhere in the cloud of services termed "The
Agent Domain" is one entity that maintains an authoritative
relationship with the end user. That entity maintains account
information sufficient to authenticate the end user and may (at it's
option) administer a "single sign on-like" service in which trusted
third parties may maintain sensitive information on the user and agent
domain's behalf.

an example of how that might work might look like this: I (Meadhbh
Hamrick) may have an account with "Bob's Avatar Emporium and Internet
Bait Shop (BAE&IBS)," that's identified with an account identifier
"mhamrick@example.com" and a password. Bob's Emporium and Internet
Bait Shop operates an authentication service that i point my client
application at when i want to enter the virtual world. My avatar
"Meadhbh OhNoes" is mapped to my account by this service. BE&IBS may
sub-contract to "Cord Shores Industries (CSI)" to operate their asset
servers. when i log in, i use my account identifier and my password,
and after the service establishment dance my client application given
a capability that points at CSI instead of BE&IBS. CSI will no doubt
require information from BE&IBS, and when it does, it makes a request
to a "private" interface (one intended for trusted partners only,) and
uses a TLS client certificate to verify its identity and it's
authority to use the private interface. When BE&IBS makes requests to
CSI to establish a capability for me, it uses a TLS client certificate
to identify itself. When the client application needs to communicate
directly with CSI, it does so through a pre-authenticated capability.
If I need to establish a service capability without establishing agent
domain presence, I may do so using OAuth.

On Sun, Jun 28, 2009 at 5:34 AM, Carlo Wood<carlo@alinoe.com> wrote:
> I'm glad it doesn't imply that then :p
>
> Nevertheless, it worries me a bit. At some point we want to be able to
> teleport between grids right? Surely the people will want to have the
> same name (and shape) after they teleported in most cases.
>
> If the same first_name+last_name is only unique per grid, then
> people will (have to) start fights about names: one has to register
> the same first_name+last_name on every grid you want to use.
>
> The make a long story short: they same wars and trouble will immerse
> as are happening on IRC now: too many people in a too small namespace.
>
> At some point there will come the strong demand for a "nick serv",
> some central point where people can reserve their name for every
> large grid on the planet and claim for themselves (for example, to
> stop forms of impersonations). That would be 'hack'.
>
> I think we have to seriously think about this. Perhaps there is a
> better solution than 'first name / last name' to login ;).
>
> On Sat, Jun 27, 2009 at 03:54:08PM -0700, Infinity Linden wrote:
>> why would this imply global uniqueness? it describes a message sent
>> from a client to a particular protocol endpoint.
>>
>> On Sat, Jun 27, 2009 at 3:33 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> >> =A0 =A0& identifier =3D {
>> >> =A0 =A0 =A0type: 'account',
>> >> =A0 =A0 =A0account_name: string,
>> >> =A0 =A0 =A0first_name: string,
>> >> =A0 =A0 =A0last_name: string,
>> >> =A0 =A0}
>> >>
>> >> =A0 =A0& identifier =3D {
>> >> =A0 =A0 =A0 =A0type: 'agent',
>> >> =A0 =A0 =A0 =A0first_name: string,
>> >> =A0 =A0 =A0 =A0last_name: string,
>> >> =A0 =A0}
>> >
>> > This seems to implicate that first_name + last_name
>> > have to be unique not only per grid, but globally
>> > for every virtual world.
>> >
>> > Is that true? Or would it be possible to use a different
>> > name on different grids? Would it be possible that different
>> > unrelated people use the same name on different grids?
>
> --
> Carlo Wood <carlo@alinoe.com>
>

From infinity@lindenlab.com  Sun Jun 28 09:06:14 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id CAAB828C108 for <ogpx@core3.amsl.com>; Sun, 28 Jun 2009 09:06:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.655
X-Spam-Level: 
X-Spam-Status: No, score=-1.655 tagged_above=-999 required=5 tests=[AWL=0.192,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, SARE_RMML_Stock10=0.13]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PiEoZkk+IJXt for <ogpx@core3.amsl.com>; Sun, 28 Jun 2009 09:06:14 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.248]) by core3.amsl.com (Postfix) with ESMTP id E0CAC28C0FA for <ogpx@ietf.org>; Sun, 28 Jun 2009 09:06:13 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c37so1270023anc.4 for <ogpx@ietf.org>; Sun, 28 Jun 2009 09:06:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.58.6 with SMTP id g6mr7736033ana.185.1246205191867; Sun,  28 Jun 2009 09:06:31 -0700 (PDT)
Date: Sun, 28 Jun 2009 09:06:31 -0700
Message-ID: <3a880e2c0906280906if8f9791h89a9bc13a7170b53@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Carlo Wood <carlo@alinoe.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: [ogpx] Global Agent Domain Registry [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 28 Jun 2009 16:06:14 -0000

okay... so it seems like you're actually asking... "how do we maintain
global avatar name uniqueness if avatar first and last name are used
as primary keys for logging in?"

there was some discussion about a global avatar name registry last
year in the SL Architecture Working Group, though i don't think there
were any definitive results.

i think we're punting on the problem with respect to protocol
development. that is, i don't think the protocol specifications will
say anything about the expectation that an agent name be globally
unique across grids.

deploying such a service would be quite an effort in terms of community buy=
-in.

that being said, there's no reason it can't be done in the future or
as a project of a non-IETF group.

for the time being, we can use account identifiers to guarantee
uniqueness; or at least that's my sense given the lack of radical
agreement in the topic.

in other words, i think it's a topic that will lead to wailing and
gnashing of teeth and would only serve to delay production of
standards that people _do_ agree on.

On Sun, Jun 28, 2009 at 5:34 AM, Carlo Wood<carlo@alinoe.com> wrote:
> I'm glad it doesn't imply that then :p
>
> Nevertheless, it worries me a bit. At some point we want to be able to
> teleport between grids right? Surely the people will want to have the
> same name (and shape) after they teleported in most cases.
>
> If the same first_name+last_name is only unique per grid, then
> people will (have to) start fights about names: one has to register
> the same first_name+last_name on every grid you want to use.
>
> The make a long story short: they same wars and trouble will immerse
> as are happening on IRC now: too many people in a too small namespace.
>
> At some point there will come the strong demand for a "nick serv",
> some central point where people can reserve their name for every
> large grid on the planet and claim for themselves (for example, to
> stop forms of impersonations). That would be 'hack'.
>
> I think we have to seriously think about this. Perhaps there is a
> better solution than 'first name / last name' to login ;).
>
> On Sat, Jun 27, 2009 at 03:54:08PM -0700, Infinity Linden wrote:
>> why would this imply global uniqueness? it describes a message sent
>> from a client to a particular protocol endpoint.
>>
>> On Sat, Jun 27, 2009 at 3:33 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> >> =A0 =A0& identifier =3D {
>> >> =A0 =A0 =A0type: 'account',
>> >> =A0 =A0 =A0account_name: string,
>> >> =A0 =A0 =A0first_name: string,
>> >> =A0 =A0 =A0last_name: string,
>> >> =A0 =A0}
>> >>
>> >> =A0 =A0& identifier =3D {
>> >> =A0 =A0 =A0 =A0type: 'agent',
>> >> =A0 =A0 =A0 =A0first_name: string,
>> >> =A0 =A0 =A0 =A0last_name: string,
>> >> =A0 =A0}
>> >
>> > This seems to implicate that first_name + last_name
>> > have to be unique not only per grid, but globally
>> > for every virtual world.
>> >
>> > Is that true? Or would it be possible to use a different
>> > name on different grids? Would it be possible that different
>> > unrelated people use the same name on different grids?
>
> --
> Carlo Wood <carlo@alinoe.com>
>

From carlo@alinoe.com  Mon Jun 29 03:51:21 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E81943A6D2A for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 03:51:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.93
X-Spam-Level: 
X-Spam-Status: No, score=-0.93 tagged_above=-999 required=5 tests=[AWL=-0.415,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745, J_CHICKENPOX_54=0.6, SARE_MILLIONSOF=0.315]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id g6DnFJvyjIN5 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 03:51:21 -0700 (PDT)
Received: from viefep14-int.chello.at (viefep14-int.chello.at [62.179.121.34]) by core3.amsl.com (Postfix) with ESMTP id 86A2F3A6985 for <ogpx@ietf.org>; Mon, 29 Jun 2009 03:51:20 -0700 (PDT)
Received: from edge03.upc.biz ([192.168.13.238]) by viefep14-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090629105139.KESZ18330.viefep14-int.chello.at@edge03.upc.biz>; Mon, 29 Jun 2009 12:51:39 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge03.upc.biz with edge id 9mrV1c0860FlQed03mrWwN; Mon, 29 Jun 2009 12:51:39 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MLESa-0000Li-57; Mon, 29 Jun 2009 12:51:40 +0200
Date: Mon, 29 Jun 2009 12:51:40 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090629105140.GA1053@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and	OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 10:51:22 -0000

But the fact remains that,

1) there will be more than one agent domain authorities where
   people can login.
2) The first+last name is the only way to identify people by
   the protocol(?) while in-world (everything else can be
   faked) and therefore, to stop impersonation, first+last
   name has to be unique globally.
3) This is NOT scalable. We'll run into a namespace problem
   (or you'll have to provide millions of last name -- is
   that possible without starting to use numbers?).

On Sun, Jun 28, 2009 at 09:06:08AM -0700, Infinity Linden wrote:
> aha! yes! totally!
> 
> OGP is being designed in such a way that "agent concerns" are
> separated from "simulation and object presence concerns." One of the
> features of OGP is it allows (but does not require) that the
> simulation host responsible for maintaining the physical state of
> objects (location, orientation, shape, motion, etc.) _can_ be
> administered by a different authority from that of the host
> responsible for maintaining user information.
> 
> or, more succinctly, "the agent domain" may be run by a distinct
> organization from the "region domain."
> 
> one of the reasons this was introduced was to allow one virtual world
> to consist of regions that are administered by different people or
> companies, but maintaining central services (like presence, inventory,
> group IM, etc.) that lead to a consistent user experience.
> 
> in other words, our objective is to allow a user to login to an agent
> domain, then establish their avatar's presence in a particular region
> and allow that avatar to easily walk across a region boundary to a
> region owned and operated by a different trusted operator, and have
> that avatar's attachments, appearance and possessions follow them.
> (though for expectation setting purposes i should mention that having
> adjacent regions from distinct region domains is something that's "way
> out there" in terms of schedule, as there's a lot more protocol
> between adjacent regions than non-adjacent regions and it's yet to be
> standardized in any meaningful manner.)
> 
> so... yes... moving from one region domain to another is fully
> supported by the protocol.
> 
> having an agent defined in multiple agent domains is a little trickier.
> 
> On Sun, Jun 28, 2009 at 5:34 AM, Carlo Wood<carlo@alinoe.com> wrote:
> > I'm glad it doesn't imply that then :p
> >
> > Nevertheless, it worries me a bit. At some point we want to be able to
> > teleport between grids right? Surely the people will want to have the
> > same name (and shape) after they teleported in most cases.
> >
> > If the same first_name+last_name is only unique per grid, then
> > people will (have to) start fights about names: one has to register
> > the same first_name+last_name on every grid you want to use.
> >
> > The make a long story short: they same wars and trouble will immerse
> > as are happening on IRC now: too many people in a too small namespace.
> >
> > At some point there will come the strong demand for a "nick serv",
> > some central point where people can reserve their name for every
> > large grid on the planet and claim for themselves (for example, to
> > stop forms of impersonations). That would be 'hack'.
> >
> > I think we have to seriously think about this. Perhaps there is a
> > better solution than 'first name / last name' to login ;).
> >
> > On Sat, Jun 27, 2009 at 03:54:08PM -0700, Infinity Linden wrote:
> >> why would this imply global uniqueness? it describes a message sent
> >> from a client to a particular protocol endpoint.
> >>
> >> On Sat, Jun 27, 2009 at 3:33 AM, Carlo Wood<carlo@alinoe.com> wrote:
> >> >>    & identifier = {
> >> >>      type: 'account',
> >> >>      account_name: string,
> >> >>      first_name: string,
> >> >>      last_name: string,
> >> >>    }
> >> >>
> >> >>    & identifier = {
> >> >>        type: 'agent',
> >> >>        first_name: string,
> >> >>        last_name: string,
> >> >>    }
> >> >
> >> > This seems to implicate that first_name + last_name
> >> > have to be unique not only per grid, but globally
> >> > for every virtual world.
> >> >
> >> > Is that true? Or would it be possible to use a different
> >> > name on different grids? Would it be possible that different
> >> > unrelated people use the same name on different grids?
> >
> > --
> > Carlo Wood <carlo@alinoe.com>
> >

-- 
Carlo Wood <carlo@alinoe.com>

From meadhbh.siobhan@gmail.com  Mon Jun 29 04:12:53 2009
Return-Path: <meadhbh.siobhan@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9D6A93A6D9B for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 04:12:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level: 
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[AWL=-0.212, BAYES_00=-2.599, J_CHICKENPOX_54=0.6, SARE_MILLIONSOF=0.315]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t60TdfXtOOjt for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 04:12:52 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.251]) by core3.amsl.com (Postfix) with ESMTP id 96F383A6D99 for <ogpx@ietf.org>; Mon, 29 Jun 2009 04:12:52 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c37so1455941anc.4 for <ogpx@ietf.org>; Mon, 29 Jun 2009 04:13:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=OiBqb2CEPfuIEkVQkdbSOEiCedSY6Bi0fHIUD0SD7NI=; b=Wj7kTnCGx/XAcyJC4HZApoKTCPdJwXka76q9JFL+Hoyq2ZdYnW+iQ0pyZFpEnNoMSj HhglMV2TEQWnfOF4B0SCQIAdMvfqAFB3ljaKUw/QC7INNb7r7T/M0B0GV7cXw831XrKA noyh7atYKHxc9M8+P/5l/xE3HjJMCroPxFuuA=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=Lba6FSS813ba60JxDIOg4dKvCqZ4zPw0SDDOFbEBbHQ2VYMefbA22ceDJd01DvLHtE l510vJecccAkpH+v23NeMO1nOqz74534K55yolkoeCmDaYl2Z8Ndyov6YGtaMxPVBHnY hplnoeBH8b0mzh2cmON/90kYc4ftPFLT5jGqA=
MIME-Version: 1.0
Received: by 10.100.143.17 with SMTP id q17mr8990744and.114.1246273988092;  Mon, 29 Jun 2009 04:13:08 -0700 (PDT)
In-Reply-To: <20090629105140.GA1053@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com>
Date: Mon, 29 Jun 2009 04:13:08 -0700
Message-ID: <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com>
From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
To: Carlo Wood <carlo@alinoe.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: Infinity Linden <infinity@lindenlab.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 11:12:53 -0000

On Mon, Jun 29, 2009 at 3:51 AM, Carlo Wood<carlo@alinoe.com> wrote:
> But the fact remains that,
>
> 1) there will be more than one agent domain authorities where
> =A0 people can login.
> 2) The first+last name is the only way to identify people by
> =A0 the protocol(?) while in-world (everything else can be
> =A0 faked) and therefore, to stop impersonation, first+last
> =A0 name has to be unique globally.

as mentioned in the draft, deployers MAY choose to identify users via
account ids rather than first+last.

> 3) This is NOT scalable. We'll run into a namespace problem
> =A0 (or you'll have to provide millions of last name -- is
> =A0 that possible without starting to use numbers?).

we've yet to run out of email addresses.

>
> On Sun, Jun 28, 2009 at 09:06:08AM -0700, Infinity Linden wrote:
>> aha! yes! totally!
>>
>> OGP is being designed in such a way that "agent concerns" are
>> separated from "simulation and object presence concerns." One of the
>> features of OGP is it allows (but does not require) that the
>> simulation host responsible for maintaining the physical state of
>> objects (location, orientation, shape, motion, etc.) _can_ be
>> administered by a different authority from that of the host
>> responsible for maintaining user information.
>>
>> or, more succinctly, "the agent domain" may be run by a distinct
>> organization from the "region domain."
>>
>> one of the reasons this was introduced was to allow one virtual world
>> to consist of regions that are administered by different people or
>> companies, but maintaining central services (like presence, inventory,
>> group IM, etc.) that lead to a consistent user experience.
>>
>> in other words, our objective is to allow a user to login to an agent
>> domain, then establish their avatar's presence in a particular region
>> and allow that avatar to easily walk across a region boundary to a
>> region owned and operated by a different trusted operator, and have
>> that avatar's attachments, appearance and possessions follow them.
>> (though for expectation setting purposes i should mention that having
>> adjacent regions from distinct region domains is something that's "way
>> out there" in terms of schedule, as there's a lot more protocol
>> between adjacent regions than non-adjacent regions and it's yet to be
>> standardized in any meaningful manner.)
>>
>> so... yes... moving from one region domain to another is fully
>> supported by the protocol.
>>
>> having an agent defined in multiple agent domains is a little trickier.
>>
>> On Sun, Jun 28, 2009 at 5:34 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> > I'm glad it doesn't imply that then :p
>> >
>> > Nevertheless, it worries me a bit. At some point we want to be able to
>> > teleport between grids right? Surely the people will want to have the
>> > same name (and shape) after they teleported in most cases.
>> >
>> > If the same first_name+last_name is only unique per grid, then
>> > people will (have to) start fights about names: one has to register
>> > the same first_name+last_name on every grid you want to use.
>> >
>> > The make a long story short: they same wars and trouble will immerse
>> > as are happening on IRC now: too many people in a too small namespace.
>> >
>> > At some point there will come the strong demand for a "nick serv",
>> > some central point where people can reserve their name for every
>> > large grid on the planet and claim for themselves (for example, to
>> > stop forms of impersonations). That would be 'hack'.
>> >
>> > I think we have to seriously think about this. Perhaps there is a
>> > better solution than 'first name / last name' to login ;).
>> >
>> > On Sat, Jun 27, 2009 at 03:54:08PM -0700, Infinity Linden wrote:
>> >> why would this imply global uniqueness? it describes a message sent
>> >> from a client to a particular protocol endpoint.
>> >>
>> >> On Sat, Jun 27, 2009 at 3:33 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> >> >> =A0 =A0& identifier =3D {
>> >> >> =A0 =A0 =A0type: 'account',
>> >> >> =A0 =A0 =A0account_name: string,
>> >> >> =A0 =A0 =A0first_name: string,
>> >> >> =A0 =A0 =A0last_name: string,
>> >> >> =A0 =A0}
>> >> >>
>> >> >> =A0 =A0& identifier =3D {
>> >> >> =A0 =A0 =A0 =A0type: 'agent',
>> >> >> =A0 =A0 =A0 =A0first_name: string,
>> >> >> =A0 =A0 =A0 =A0last_name: string,
>> >> >> =A0 =A0}
>> >> >
>> >> > This seems to implicate that first_name + last_name
>> >> > have to be unique not only per grid, but globally
>> >> > for every virtual world.
>> >> >
>> >> > Is that true? Or would it be possible to use a different
>> >> > name on different grids? Would it be possible that different
>> >> > unrelated people use the same name on different grids?
>> >
>> > --
>> > Carlo Wood <carlo@alinoe.com>
>> >
>
> --
> Carlo Wood <carlo@alinoe.com>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>

From carlo@alinoe.com  Mon Jun 29 04:34:42 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9651F3A6D9C for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 04:34:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.97
X-Spam-Level: 
X-Spam-Status: No, score=-0.97 tagged_above=-999 required=5 tests=[AWL=-0.270,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745, J_CHICKENPOX_54=0.6, SARE_RMML_Stock10=0.13]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Oz4xLqDCwZZX for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 04:34:41 -0700 (PDT)
Received: from viefep18-int.chello.at (viefep18-int.chello.at [62.179.121.38]) by core3.amsl.com (Postfix) with ESMTP id 25B733A6D97 for <ogpx@ietf.org>; Mon, 29 Jun 2009 04:34:40 -0700 (PDT)
Received: from edge04.upc.biz ([192.168.13.239]) by viefep18-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090629113459.MPKA3332.viefep18-int.chello.at@edge04.upc.biz>; Mon, 29 Jun 2009 13:34:59 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge04.upc.biz with edge id 9nak1c02D0FlQed04nali6; Mon, 29 Jun 2009 13:34:59 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MLF8Q-0000uE-Lu; Mon, 29 Jun 2009 13:34:54 +0200
Date: Mon, 29 Jun 2009 13:34:54 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090629113454.GB1053@alinoe.com>
References: <3a880e2c0906280906if8f9791h89a9bc13a7170b53@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3a880e2c0906280906if8f9791h89a9bc13a7170b53@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: [ogpx] Globally unique authentication token versus Firstname Lastname	[Was: Re: Global Agent Domain Registry [Was: Re: OpenID and	OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 11:34:42 -0000

On Sun, Jun 28, 2009 at 09:06:31AM -0700, Infinity Linden wrote:
> okay... so it seems like you're actually asking... "how do we maintain
> global avatar name uniqueness if avatar first and last name are used
> as primary keys for logging in?"

Yes. Because, it *WILL* become a problem if two people can use (steal)
the name of someone else. And therefore we need to garantee uniqueness
of the identifier that is visible even (the tag!), and also, we need
one central database to garantee this uniqueness if the keys itself
ARE the first+last name.

This is a very serious problem.

> there was some discussion about a global avatar name registry last
> year in the SL Architecture Working Group, though i don't think there
> were any definitive results.
> 
> i think we're punting on the problem with respect to protocol
> development. that is, i don't think the protocol specifications will
> say anything about the expectation that an agent name be globally
> unique across grids.

Well, it will have to; I am convinced that if we ignore this
problem now, it will turn out to require such a drastic protocol
change in the future that you can never solve it anymore (ake, IRC).

> deploying such a service would be quite an effort in terms of community buy-in.
> 
> that being said, there's no reason it can't be done in the future or
> as a project of a non-IETF group.
> 
> for the time being, we can use account identifiers to guarantee
> uniqueness; or at least that's my sense given the lack of radical
> agreement in the topic.

I wrote another article about this topic (again, for IRC) in the past;
that is - I have already put a lot of thinking into this subject.
I don't think ignoring the problem is going to make it go away.

> in other words, i think it's a topic that will lead to wailing and
> gnashing of teeth and would only serve to delay production of
> standards that people _do_ agree on.

Not at all necessary, I have a solution :)

But, like the protocol negotiation one, it turns out that most
people are not ready to grasp the concepts involved and rather
just ignore it :/

Ok,... here it goes, I'll try to be extremely short, which
won't make it more understandable, but please ask any questions
until things are completely clear.
----------------------------------

* Uniqueness

Some token can ONLY be unique if it is *generated* by an
authority. Unless we use ONE global authority, the generated
token must include a sub-token that was assigned to that
particular authority that is globally unique for that authority.

Example; say there are three authorities. Each get assigned
a unique token: A, B and C. Upon request they generate a
locally unique token (for example an integer that is incremented
every time) and prepend their own token to make it globally
unique (ie, A1, A2, .. B1, B2, .. etc).

* Human readable identifiers

Because the authentication token have to be generated, they
cannot be human readable without creating a major problem.
I am convinced that it is near impossible to generate globally
unique and human readable Firstname Lastname for -say-
100,000,000 people, without getting such long and unreadable
last names that impersonations are still possible (in the least!)

Hence, the human readable identifier will have to be separated
from the really (globally) unique authentication token.

The reason that this can work in most cases is simply because
everyone only meets a limited number of people in their lives.
This number, especially if you don't count people that just
walk one once, but only look at people you interact with,
is almost a constant: you cannot have infinite number of friends.
For example, every user will have to do with at most 1000 others,
independent of the total number of users of all virtual worlds
together.

* Solving namespace collisions

It will happen (by coincidence or deliberate) that two people
with the same name will run into eachother and/or have interactions
with the same people. How to solve this?

My solution for this is as follows:

Each agent has separated their authentication token (something like
a UUID, only used internally) and their human readable "tag".
The "tag" exists of a Firstname, a Lastname and a postfix.

If an agent meets someone for the first time, it will receive
their authentication token. The user (the viewer) will store
this authentication token along with the a chosen postfix.
If the Firstname Lastname of the new avatar is unique within
the scope of the viewer, it will automatically assign an
empty postfix (although the user is allowed to edit it).
If another authentication token already exists with the same
Firstname Lastname, then the viewer will warn the user and
require him to choose a (locally) unique postfix. Because
the user can choose, it will be not only human readable but
also easy to remember.

For example, I know a Paul Mastermind that looks like kid
and is my friend. Must later I run into an other avatar
with the same name Paul Mastermind; my viewer assigns a
postfix '2' to it, so that I see in the tag:
"Paul Mastermind 2". Of course, this Paul looks totally
different: it's a man that can play chess very well, and
he offers me to teach me chess. I edit his postfix and
change it into "Chess master", so now I see:
"Paul Mastermind Chess master". My viewer accepts this
because it is unique within the two Paul Mastermind's
that is known. Later I meet a Paul Mastermind 2 that
looks exactly like the Paul Mastermind that I know.
I talk with him and he convinces me quickly that it's
an ALT of the real Paul Mastermind. I edit his postfix
and change the '2' into "ALT".


The point being: the protocol needs a DRASTICAL change
for this to be possible that we need to take into account
NOW. Namely: everyone should be identified by some separate,
and in practise impossibly human readable indentifier.
The protocol can be designed by just saying that this
identifier exists and is some string, and we'll take
care of it's uniqueness later. But really, it has to be
something different from the human readable Firstname Lastname.

Therefore we cannot postpone this discussion.

-- 
Carlo Wood <carlo@alinoe.com>

From carlo@alinoe.com  Mon Jun 29 04:44:56 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BF27B3A6AC2 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 04:44:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.005
X-Spam-Level: 
X-Spam-Status: No, score=-1.005 tagged_above=-999 required=5 tests=[AWL=-0.175, BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745, J_CHICKENPOX_54=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UvItKmfKoXK5 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 04:44:56 -0700 (PDT)
Received: from viefep20-int.chello.at (viefep20-int.chello.at [62.179.121.40]) by core3.amsl.com (Postfix) with ESMTP id 8C9EF3A6855 for <ogpx@ietf.org>; Mon, 29 Jun 2009 04:44:55 -0700 (PDT)
Received: from edge04.upc.biz ([192.168.13.239]) by viefep20-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090629114514.WZQK21978.viefep20-int.chello.at@edge04.upc.biz>; Mon, 29 Jun 2009 13:45:14 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge04.upc.biz with edge id 9nl11c0CY0FlQed04nl2o6; Mon, 29 Jun 2009 13:45:14 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MLFIO-00014L-CB; Mon, 29 Jun 2009 13:45:12 +0200
Date: Mon, 29 Jun 2009 13:45:12 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
Message-ID: <20090629114512.GC1053@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: Infinity Linden <infinity@lindenlab.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and	OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 11:44:56 -0000

On Mon, Jun 29, 2009 at 04:13:08AM -0700, Meadhbh Siobhan wrote:
> On Mon, Jun 29, 2009 at 3:51 AM, Carlo Wood<carlo@alinoe.com> wrote:
> as mentioned in the draft, deployers MAY choose to identify users via
> account ids rather than first+last.

But that is local to the deployers.

What is used to ID an agent in the server-server protocol
when a user walks from one region into another, or teleports
to a different region?

Firstname Lastname should be merely payload, not interesting
to the servers, not being used for anything except passing
it on the the viewers so they can use it to put in the tags.

There must be some other string, that is globally unique,
that is used to ID the agent. I was missing that string
in the first post that started this.

-- 
Carlo Wood <carlo@alinoe.com>

From mike.dickson@hp.com  Mon Jun 29 06:44:36 2009
Return-Path: <mike.dickson@hp.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 49ADB28C23E for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 06:44:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.299
X-Spam-Level: 
X-Spam-Status: No, score=-106.299 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_54=0.6, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5puwm-mUqtcJ for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 06:44:35 -0700 (PDT)
Received: from g5t0009.atlanta.hp.com (g5t0009.atlanta.hp.com [15.192.0.46]) by core3.amsl.com (Postfix) with ESMTP id 762CA3A6ADF for <ogpx@ietf.org>; Mon, 29 Jun 2009 06:44:35 -0700 (PDT)
Received: from g5t0012.atlanta.hp.com (unknown [15.192.0.16]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by g5t0009.atlanta.hp.com (Postfix) with ESMTPS id 1358730226; Mon, 29 Jun 2009 13:44:54 +0000 (UTC)
Received: from [192.168.1.139] (conr-adsl-209-169-71-194.consolidated.net [209.169.71.194]) by g5t0012.atlanta.hp.com (Postfix) with ESMTPSA id 9AC3310004; Mon, 29 Jun 2009 13:44:53 +0000 (UTC)
From: Mike Dickson <mike.dickson@hp.com>
To: Carlo Wood <carlo@alinoe.com>
In-Reply-To: <20090629114512.GC1053@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com>
Content-Type: text/plain
Organization: Bladesystems Infrastructure R&D
Date: Mon, 29 Jun 2009 08:44:51 -0500
Message-Id: <1246283091.4197.69.camel@mdickson-laptop>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.1 
Content-Transfer-Encoding: 7bit
Cc: Infinity Linden <infinity@lindenlab.com>, Meadhbh Siobhan <meadhbh.siobhan@gmail.com>, "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID	and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: mike.dickson@hp.com
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 13:44:36 -0000

I have to agree with Carlo on this.  This is a case where virtual life
needs to model real life.  Lots of people with the same name in the
world.  The protocol needs to support some other way to uniquely
identify a "user" other than FN/LN. 

When crossing into a new region it seems highly possible that a region
owner may want to require a re-authentication also. 

I'm not suggesting a solution becaus this isn't my personal area of
expertise.  Simply stating I see the problem and agree a good solution
needs to be found. 

Mike

On Mon, 2009-06-29 at 11:45 +0000, Carlo Wood wrote:
> On Mon, Jun 29, 2009 at 04:13:08AM -0700, Meadhbh Siobhan wrote:
> > On Mon, Jun 29, 2009 at 3:51 AM, Carlo Wood<carlo@alinoe.com> wrote:
> > as mentioned in the draft, deployers MAY choose to identify users via
> > account ids rather than first+last.
> 
> But that is local to the deployers.
> 
> What is used to ID an agent in the server-server protocol
> when a user walks from one region into another, or teleports
> to a different region?
> 
> Firstname Lastname should be merely payload, not interesting
> to the servers, not being used for anything except passing
> it on the the viewers so they can use it to put in the tags.
> 
> There must be some other string, that is globally unique,
> that is used to ID the agent. I was missing that string
> in the first post that started this.
> 


From cs@comlounge.net  Mon Jun 29 07:05:17 2009
Return-Path: <cs@comlounge.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 032C53A6A44 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 07:05:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.399
X-Spam-Level: 
X-Spam-Status: No, score=-1.399 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_36=0.6, J_CHICKENPOX_54=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id o4xXn9-K7ZoB for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 07:05:16 -0700 (PDT)
Received: from post.comlounge.net (post.comlounge.net [85.214.59.142]) by core3.amsl.com (Postfix) with ESMTP id CFAF53A680C for <ogpx@ietf.org>; Mon, 29 Jun 2009 07:05:15 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by post.comlounge.net (Postfix) with ESMTP id A75BD1CE00DA; Mon, 29 Jun 2009 16:04:27 +0200 (CEST)
Received: from post.comlounge.net ([127.0.0.1]) by localhost (h1346004.stratoserver.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2oLTbcyRBnon; Mon, 29 Jun 2009 16:04:26 +0200 (CEST)
Received: from Labertasche.local (unknown [81.187.73.203]) by post.comlounge.net (Postfix) with ESMTP id 83CCE1CE0047; Mon, 29 Jun 2009 16:04:24 +0200 (CEST)
Message-ID: <4A48C9E6.6080705@comlounge.net>
Date: Mon, 29 Jun 2009 15:04:22 +0100
From: Christian Scholz <cs@comlounge.net>
User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605)
MIME-Version: 1.0
To: mike.dickson@hp.com
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com>	<20090629105140.GA1053@alinoe.com>	<b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com>	<20090629114512.GC1053@alinoe.com> <1246283091.4197.69.camel@mdickson-laptop>
In-Reply-To: <1246283091.4197.69.camel@mdickson-laptop>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: Infinity Linden <infinity@lindenlab.com>, Meadhbh Siobhan <meadhbh.siobhan@gmail.com>, "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID	and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 14:05:17 -0000

Mike Dickson wrote:
> I have to agree with Carlo on this.  This is a case where virtual life
> needs to model real life.  Lots of people with the same name in the
> world.  The protocol needs to support some other way to uniquely
> identify a "user" other than FN/LN. 

I would also go further and say that it would be great to reuse
identities on non-3D social networks. As we see with OpenID this usually
is done via URLs (like myspace.com/mrtopf and now also
facebook.com/mrtopf) and I don't see why this shouldn't be used here as
well.
firstname/lastname should be provided as well of course (e.g. via
reading it over an OpenSocial REST API) but the real identity is then
defined via the URL. I am not sure where to display it though, if
directly over an avatar or inside the profile page but that needs some
experimentation I guess. At least some means need to be given to find
out which person it actually is.

-- Christian

> When crossing into a new region it seems highly possible that a region
> owner may want to require a re-authentication also. 
> 
> I'm not suggesting a solution becaus this isn't my personal area of
> expertise.  Simply stating I see the problem and agree a good solution
> needs to be found. 
> 
> Mike
> 
> On Mon, 2009-06-29 at 11:45 +0000, Carlo Wood wrote:
>> On Mon, Jun 29, 2009 at 04:13:08AM -0700, Meadhbh Siobhan wrote:
>>> On Mon, Jun 29, 2009 at 3:51 AM, Carlo Wood<carlo@alinoe.com> wrote:
>>> as mentioned in the draft, deployers MAY choose to identify users via
>>> account ids rather than first+last.
>> But that is local to the deployers.
>>
>> What is used to ID an agent in the server-server protocol
>> when a user walks from one region into another, or teleports
>> to a different region?
>>
>> Firstname Lastname should be merely payload, not interesting
>> to the servers, not being used for anything except passing
>> it on the the viewers so they can use it to put in the tags.
>>
>> There must be some other string, that is globally unique,
>> that is used to ID the agent. I was missing that string
>> in the first post that started this.
>>
> 
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx


-- 
Christian Scholz                          Homepage: http://comlounge.net
COM.lounge GmbH                              blog: http://mrtopf.de/blog
Hanbrucher Str. 33                                       Skype: HerrTopf
52064 Aachen                             Video Blog: http://comlounge.tv
Tel: +49 241 400 730 0                           E-Mail cs@comlounge.net
Fax: +49 241 979 00 850                               IRC: MrTopf, Tao_T

neuer Podcast: Der OpenWeb-Podcast (http://openwebpodcast.de)
new podcast: Data Without Borders (http://datawithoutborders.net)


From carlo@alinoe.com  Mon Jun 29 07:17:43 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D9B7528C255 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 07:17:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.288
X-Spam-Level: 
X-Spam-Status: No, score=-1.288 tagged_above=-999 required=5 tests=[AWL=0.142,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ebqJFRqP6xfJ for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 07:17:42 -0700 (PDT)
Received: from viefep20-int.chello.at (viefep20-int.chello.at [62.179.121.40]) by core3.amsl.com (Postfix) with ESMTP id 676B53A6B3A for <ogpx@ietf.org>; Mon, 29 Jun 2009 07:17:42 -0700 (PDT)
Received: from edge05.upc.biz ([192.168.13.212]) by viefep20-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090629141752.FRHK21978.viefep20-int.chello.at@edge05.upc.biz>; Mon, 29 Jun 2009 16:17:52 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge05.upc.biz with edge id 9qHe1c0930FlQed05qHgRQ; Mon, 29 Jun 2009 16:17:52 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MLHg5-0003C9-LC; Mon, 29 Jun 2009 16:17:49 +0200
Date: Mon, 29 Jun 2009 16:17:49 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Christian Scholz <cs@comlounge.net>
Message-ID: <20090629141749.GA11830@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <1246283091.4197.69.camel@mdickson-laptop> <4A48C9E6.6080705@comlounge.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4A48C9E6.6080705@comlounge.net>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: Infinity Linden <infinity@lindenlab.com>, Meadhbh Siobhan <meadhbh.siobhan@gmail.com>, "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and	OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 14:17:43 -0000

That is a good idea.

My user editable 'postfix' in the tag is just a means to quickly
keep two friends apart, and get noted of a possible impersonation.

However, if the Real ID (tm) has any external significance as
you proposed, then it would make sense to show that in the profile.

On the other hand - if at some point you can only get into a
virtual world with some globally accepted and legally valid
ID that everyone got (that might be another 50 years, lol)
then I'd not be happy if that was sent to the viewer of everyone
that I run into. You have to keep the possibility open for
remaining relatively annonymous.

On Mon, Jun 29, 2009 at 03:04:22PM +0100, Christian Scholz wrote:
> I would also go further and say that it would be great to reuse
> identities on non-3D social networks. As we see with OpenID this usually
> is done via URLs (like myspace.com/mrtopf and now also
> facebook.com/mrtopf) and I don't see why this shouldn't be used here as
> well.
> firstname/lastname should be provided as well of course (e.g. via
> reading it over an OpenSocial REST API) but the real identity is then
> defined via the URL. I am not sure where to display it though, if
> directly over an avatar or inside the profile page but that needs some
> experimentation I guess. At least some means need to be given to find
> out which person it actually is.

-- 
Carlo Wood <carlo@alinoe.com>

From meadhbh.siobhan@gmail.com  Mon Jun 29 07:51:20 2009
Return-Path: <meadhbh.siobhan@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8F38E28C0FD for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 07:51:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[AWL=-0.002, BAYES_00=-2.599, J_CHICKENPOX_54=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ba+YmkKb2gU2 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 07:51:19 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id 7D04F28C0F3 for <ogpx@ietf.org>; Mon, 29 Jun 2009 07:51:19 -0700 (PDT)
Received: by yxe12 with SMTP id 12so1197316yxe.29 for <ogpx@ietf.org>; Mon, 29 Jun 2009 07:51:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=ZFQHAviupfvurXX+4pjeqPt0/1Wrl0je917yOC8ive4=; b=G/qixnlr+peiVYigpxgA3XtnwrvDF+nacv8E5fcvUxOoS2oIPDmyCZZEqZcLNKDJLi /uIAcR/7zYW2ySmX458YEGxJL8/xSWdHI3yLTKimPzRPslZw40XlPYyU9lAbiZZdxKFv 3/ID14aO0fh9rLK6khrtNfthd3l2yzo19Lrko=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=lIEaqyTBKdh7NpVMd3QPenXIv5QqYjyv6k2Lq0wst0ubQPwGLWO0P/345xtnatv1hH 1ovjyyp3P292OO+uuZyF0siFOzNQtsDiW5vXub8K1Q07/CwbXuYA5zU2xI6/A1t39cEZ b7u3F8yMxo8JGs1crDppN/llKZpbVNyKC9KVQ=
MIME-Version: 1.0
Received: by 10.100.164.20 with SMTP id m20mr9386182ane.31.1246287069214; Mon,  29 Jun 2009 07:51:09 -0700 (PDT)
In-Reply-To: <20090629114512.GC1053@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com>
Date: Mon, 29 Jun 2009 07:51:09 -0700
Message-ID: <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com>
From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
To: Carlo Wood <carlo@alinoe.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: Infinity Linden <infinity@lindenlab.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 14:51:20 -0000

okay. i get you.

the question is, "how do you ID distinct users with the same name from
two different agent domains?"

an example use case might be... "You have two distinct users who both
have avatars named 'John Smith' registered with two distinct agent
domains (we'll call them 'avatarsrus.com' and 'businessworlds.com'.)
how do you make the 'John Smith' from avatarsrus.com identifiable as a
distinct entity from 'John Smith' from businessworlds.com so that both
could be rezzed into the same region and both own assets that are
rezzed in world simultaneously."

so you have two issues: first, how do you identify the two as being
distinct to the simulator and second, how do you identify the two as
being distinct to other users since they'll both have the "John Smith"
avatar name displayed.

the first (how are the two identified to the simulator) is that agents
will have a publicly addressable protocol endpoint in the form of a
URL at their agent domains. The first agent might have the URL
http://avatarsrus.com/a/Smith/John while the second has the URL
http://bsinessworlds.com/BDFB8691-9FD5-444A-B601-4075E7226242. The
format of the URL doesn't matter as long as the agent domain
guarantee's they're unique and under the control of the agent domain.

the second one is left as an exercise to client application developers
and is analogous to the difficulty end users may have in
differentiating two entities with the same name but distinct email
addresses.

On Mon, Jun 29, 2009 at 4:45 AM, Carlo Wood<carlo@alinoe.com> wrote:
> On Mon, Jun 29, 2009 at 04:13:08AM -0700, Meadhbh Siobhan wrote:
>> On Mon, Jun 29, 2009 at 3:51 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> as mentioned in the draft, deployers MAY choose to identify users via
>> account ids rather than first+last.
>
> But that is local to the deployers.
>
> What is used to ID an agent in the server-server protocol
> when a user walks from one region into another, or teleports
> to a different region?
>
> Firstname Lastname should be merely payload, not interesting
> to the servers, not being used for anything except passing
> it on the the viewers so they can use it to put in the tags.
>
> There must be some other string, that is globally unique,
> that is used to ID the agent. I was missing that string
> in the first post that started this.
>
> --
> Carlo Wood <carlo@alinoe.com>
>

From meadhbh.siobhan@gmail.com  Mon Jun 29 08:01:01 2009
Return-Path: <meadhbh.siobhan@gmail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 5279628C0EE for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 08:01:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.7
X-Spam-Level: 
X-Spam-Status: No, score=-1.7 tagged_above=-999 required=5 tests=[AWL=-0.301,  BAYES_00=-2.599, J_CHICKENPOX_36=0.6, J_CHICKENPOX_54=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id L-6NNZe-vCnB for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 08:01:00 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id 2DED73A6A32 for <ogpx@ietf.org>; Mon, 29 Jun 2009 08:01:00 -0700 (PDT)
Received: by yxe12 with SMTP id 12so1208867yxe.29 for <ogpx@ietf.org>; Mon, 29 Jun 2009 08:01:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=OmXotDpkKSElWqKhrozmyxwiUpEZRUZ03WskEi6WZtQ=; b=CWLuiWSdMUTSsj63SqEI3XjaVpHNtCpIFVfYu1sP/kc15cSuZ0nUnSiPNf2tH07SZo xWAHaiFB8lMGb4qk8utvrPboE1EP/2E/dSRPqosxHzK36caELVP14DEy7EM/fTe6dZ6E +/dHsI2vKDa9izyYbBPyMn5vjPZd4l7J4chmQ=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=NAczdWL5GA1j/Yooowji8Wd49g7G3Kpb0xWqZgzGBEIihvkdrEX5K2XDH/ZGBcGtTs mVwB9++RLkQgkHp6q/62bDzPRmTwIEeeb8Mfi39Y6rJdhpFmi/afJX4l0K/yEfvrJl3h 0oIUBSUv1M/VkXnlHnnbomMnEU/wQY4SaYUmw=
MIME-Version: 1.0
Received: by 10.100.6.16 with SMTP id 16mr9268698anf.52.1246287678155; Mon, 29  Jun 2009 08:01:18 -0700 (PDT)
In-Reply-To: <4A48C9E6.6080705@comlounge.net>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <1246283091.4197.69.camel@mdickson-laptop> <4A48C9E6.6080705@comlounge.net>
Date: Mon, 29 Jun 2009 08:01:18 -0700
Message-ID: <b8ef0a220906290801p1f6eeceft6d2c1ace1390ba3b@mail.gmail.com>
From: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
To: Christian Scholz <cs@comlounge.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: Infinity Linden <infinity@lindenlab.com>, "ogpx@ietf.org" <ogpx@ietf.org>
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 15:01:01 -0000

if you implement an agent domain, you may choose to do this, but in
the same way that RFC822 and it's successors didn't require your email
address to be first initial + last name + @ + fqdn, i don't think it's
appropriate for a protocol to require a naming structure for the
virtual world.

we SHOULD definitely try to create a system by which you can publish a
URL for your agent (like http://example.org/Oh/Meadhbh or
http://example.com/MeadhbhOh) that is memorable and will yield a HTML
page with info about the agent, but also accepts LLSD messages for
things like "give me the user's public profile in LLSD" or "i'm a
trusted region domain, give me a capability i can use to return items
to the user's inventory". Further, i would add, that client
applications SHOULD respond to redirects when accessing these
resources. That way, if my agent domain _really_ wanted to export
something as http://example.org/a/BDFB8691-9FD5-444A-B601-4075E7226242
and then expose multiple URLs like http://example.org/Oh/Meadhbh and
http://example.org/Hamrick/Meadhbh, they COULD do that. (thought it
wouldn't be required that an agent domain do that.)

On Mon, Jun 29, 2009 at 7:04 AM, Christian Scholz<cs@comlounge.net> wrote:
> Mike Dickson wrote:
>> I have to agree with Carlo on this. =A0This is a case where virtual life
>> needs to model real life. =A0Lots of people with the same name in the
>> world. =A0The protocol needs to support some other way to uniquely
>> identify a "user" other than FN/LN.
>
> I would also go further and say that it would be great to reuse
> identities on non-3D social networks. As we see with OpenID this usually
> is done via URLs (like myspace.com/mrtopf and now also
> facebook.com/mrtopf) and I don't see why this shouldn't be used here as
> well.
> firstname/lastname should be provided as well of course (e.g. via
> reading it over an OpenSocial REST API) but the real identity is then
> defined via the URL. I am not sure where to display it though, if
> directly over an avatar or inside the profile page but that needs some
> experimentation I guess. At least some means need to be given to find
> out which person it actually is.
>
> -- Christian
>
>> When crossing into a new region it seems highly possible that a region
>> owner may want to require a re-authentication also.
>>
>> I'm not suggesting a solution becaus this isn't my personal area of
>> expertise. =A0Simply stating I see the problem and agree a good solution
>> needs to be found.
>>
>> Mike
>>
>> On Mon, 2009-06-29 at 11:45 +0000, Carlo Wood wrote:
>>> On Mon, Jun 29, 2009 at 04:13:08AM -0700, Meadhbh Siobhan wrote:
>>>> On Mon, Jun 29, 2009 at 3:51 AM, Carlo Wood<carlo@alinoe.com> wrote:
>>>> as mentioned in the draft, deployers MAY choose to identify users via
>>>> account ids rather than first+last.
>>> But that is local to the deployers.
>>>
>>> What is used to ID an agent in the server-server protocol
>>> when a user walks from one region into another, or teleports
>>> to a different region?
>>>
>>> Firstname Lastname should be merely payload, not interesting
>>> to the servers, not being used for anything except passing
>>> it on the the viewers so they can use it to put in the tags.
>>>
>>> There must be some other string, that is globally unique,
>>> that is used to ID the agent. I was missing that string
>>> in the first post that started this.
>>>
>>
>> _______________________________________________
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
>
>
> --
> Christian Scholz =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Homep=
age: http://comlounge.net
> COM.lounge GmbH =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0blog: http://mrtopf.de/blog
> Hanbrucher Str. 33 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 Skype: HerrTopf
> 52064 Aachen =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Vide=
o Blog: http://comlounge.tv
> Tel: +49 241 400 730 0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 E-Mail cs@comlounge.net
> Fax: +49 241 979 00 850 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 IRC: MrTopf, Tao_T
>
> neuer Podcast: Der OpenWeb-Podcast (http://openwebpodcast.de)
> new podcast: Data Without Borders (http://datawithoutborders.net)
>
>

From infinity@lindenlab.com  Mon Jun 29 08:35:33 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 69D1F28C12A for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 08:35:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.27
X-Spam-Level: 
X-Spam-Status: No, score=-1.27 tagged_above=-999 required=5 tests=[AWL=-0.208,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_54=0.6, SARE_MILLIONSOF=0.315]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tw7DMFXbv4eR for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 08:35:32 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id 33A843A6774 for <ogpx@ietf.org>; Mon, 29 Jun 2009 08:35:32 -0700 (PDT)
Received: by yxe12 with SMTP id 12so1246791yxe.29 for <ogpx@ietf.org>; Mon, 29 Jun 2009 08:35:47 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.4.8 with SMTP id 8mr9322836and.180.1246289747678; Mon, 29  Jun 2009 08:35:47 -0700 (PDT)
In-Reply-To: <20090629105140.GA1053@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com>
Date: Mon, 29 Jun 2009 08:35:47 -0700
Message-ID: <3a880e2c0906290835w7d9119f3x9e6dbf0c0d8e4c9e@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Carlo Wood <carlo@alinoe.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 15:35:33 -0000

On Mon, Jun 29, 2009 at 3:51 AM, Carlo Wood<carlo@alinoe.com> wrote:
> But the fact remains that,
>
> 1) there will be more than one agent domain authorities where
> =A0 people can login.

yes

> 2) The first+last name is the only way to identify people by
> =A0 the protocol(?) while in-world (everything else can be
> =A0 faked) and therefore, to stop impersonation, first+last
> =A0 name has to be unique globally.

no

> 3) This is NOT scalable. We'll run into a namespace problem
> =A0 (or you'll have to provide millions of last name -- is
> =A0 that possible without starting to use numbers?).
>

doesn't matter, since we're not using first+last to try to uniquely
identify agents.

> On Sun, Jun 28, 2009 at 09:06:08AM -0700, Infinity Linden wrote:
>> aha! yes! totally!
>>
>> OGP is being designed in such a way that "agent concerns" are
>> separated from "simulation and object presence concerns." One of the
>> features of OGP is it allows (but does not require) that the
>> simulation host responsible for maintaining the physical state of
>> objects (location, orientation, shape, motion, etc.) _can_ be
>> administered by a different authority from that of the host
>> responsible for maintaining user information.
>>
>> or, more succinctly, "the agent domain" may be run by a distinct
>> organization from the "region domain."
>>
>> one of the reasons this was introduced was to allow one virtual world
>> to consist of regions that are administered by different people or
>> companies, but maintaining central services (like presence, inventory,
>> group IM, etc.) that lead to a consistent user experience.
>>
>> in other words, our objective is to allow a user to login to an agent
>> domain, then establish their avatar's presence in a particular region
>> and allow that avatar to easily walk across a region boundary to a
>> region owned and operated by a different trusted operator, and have
>> that avatar's attachments, appearance and possessions follow them.
>> (though for expectation setting purposes i should mention that having
>> adjacent regions from distinct region domains is something that's "way
>> out there" in terms of schedule, as there's a lot more protocol
>> between adjacent regions than non-adjacent regions and it's yet to be
>> standardized in any meaningful manner.)
>>
>> so... yes... moving from one region domain to another is fully
>> supported by the protocol.
>>
>> having an agent defined in multiple agent domains is a little trickier.
>>
>> On Sun, Jun 28, 2009 at 5:34 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> > I'm glad it doesn't imply that then :p
>> >
>> > Nevertheless, it worries me a bit. At some point we want to be able to
>> > teleport between grids right? Surely the people will want to have the
>> > same name (and shape) after they teleported in most cases.
>> >
>> > If the same first_name+last_name is only unique per grid, then
>> > people will (have to) start fights about names: one has to register
>> > the same first_name+last_name on every grid you want to use.
>> >
>> > The make a long story short: they same wars and trouble will immerse
>> > as are happening on IRC now: too many people in a too small namespace.
>> >
>> > At some point there will come the strong demand for a "nick serv",
>> > some central point where people can reserve their name for every
>> > large grid on the planet and claim for themselves (for example, to
>> > stop forms of impersonations). That would be 'hack'.
>> >
>> > I think we have to seriously think about this. Perhaps there is a
>> > better solution than 'first name / last name' to login ;).
>> >
>> > On Sat, Jun 27, 2009 at 03:54:08PM -0700, Infinity Linden wrote:
>> >> why would this imply global uniqueness? it describes a message sent
>> >> from a client to a particular protocol endpoint.
>> >>
>> >> On Sat, Jun 27, 2009 at 3:33 AM, Carlo Wood<carlo@alinoe.com> wrote:
>> >> >> =A0 =A0& identifier =3D {
>> >> >> =A0 =A0 =A0type: 'account',
>> >> >> =A0 =A0 =A0account_name: string,
>> >> >> =A0 =A0 =A0first_name: string,
>> >> >> =A0 =A0 =A0last_name: string,
>> >> >> =A0 =A0}
>> >> >>
>> >> >> =A0 =A0& identifier =3D {
>> >> >> =A0 =A0 =A0 =A0type: 'agent',
>> >> >> =A0 =A0 =A0 =A0first_name: string,
>> >> >> =A0 =A0 =A0 =A0last_name: string,
>> >> >> =A0 =A0}
>> >> >
>> >> > This seems to implicate that first_name + last_name
>> >> > have to be unique not only per grid, but globally
>> >> > for every virtual world.
>> >> >
>> >> > Is that true? Or would it be possible to use a different
>> >> > name on different grids? Would it be possible that different
>> >> > unrelated people use the same name on different grids?
>> >
>> > --
>> > Carlo Wood <carlo@alinoe.com>
>> >
>
> --
> Carlo Wood <carlo@alinoe.com>
>

From carlo@alinoe.com  Mon Jun 29 09:11:18 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 42D583A69BA for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 09:11:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.301
X-Spam-Level: 
X-Spam-Status: No, score=-1.301 tagged_above=-999 required=5 tests=[AWL=0.129,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mJcqyjw5zUNV for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 09:11:17 -0700 (PDT)
Received: from viefep20-int.chello.at (viefep20-int.chello.at [62.179.121.40]) by core3.amsl.com (Postfix) with ESMTP id 0ADF43A6DE5 for <ogpx@ietf.org>; Mon, 29 Jun 2009 09:11:16 -0700 (PDT)
Received: from edge02.upc.biz ([192.168.13.237]) by viefep20-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090629161115.MTTR21978.viefep20-int.chello.at@edge02.upc.biz>; Mon, 29 Jun 2009 18:11:15 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge02.upc.biz with edge id 9sBA1c07n0FlQed02sBBmP; Mon, 29 Jun 2009 18:11:15 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MLJRx-0004f1-T2; Mon, 29 Jun 2009 18:11:21 +0200
Date: Mon, 29 Jun 2009 18:11:21 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
Message-ID: <20090629161121.GA17251@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: Infinity Linden <infinity@lindenlab.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and	OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 16:11:18 -0000

On Mon, Jun 29, 2009 at 07:51:09AM -0700, Meadhbh Siobhan wrote:
> the second one is left as an exercise to client application developers
> and is analogous to the difficulty end users may have in
> differentiating two entities with the same name but distinct email
> addresses.

Well, then I'm almost satisfied :).

There is still one problem however. Before the application developers
can do this, they need to receive some globally unique identifier
that is always the same (ie, an email address, but again, I REALLY
don't want to share my email address with people online).

Example, a viewer is connected and the corresponding agent resides
in a given region. There it meet another avatar. In order to display
the tag above this new avatar the viewer needs to receive Firstname
Lastname... but, as I've tried to argue so far, it ALSO needs to
receive a globally unique identifier that uniquely identifies the
person behind the avatar (or rather, his account) and please don't
let it be an email address ;).

The point being: the server-client *protocol* needs to be designed
such that this globally unique ID is made available to all viewers.

If this is the case, then I'm happy and there should be no problems
in the future regarding this. If no separate ID is provided then
several problems occur:
* Impersonation (people deliberately using the same shape and skin etc)
* IM's will be logged to the same file, because the viewer can't
  know who is who.

Also, the ID has to be same every time - because the viewer will
need to recognize that this John Smith is not AGAIN a new one,
but the same, every time.

-- 
Carlo Wood <carlo@alinoe.com>

From carlo@alinoe.com  Mon Jun 29 09:18:30 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 44E953A6DF4 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 09:18:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.311
X-Spam-Level: 
X-Spam-Status: No, score=-1.311 tagged_above=-999 required=5 tests=[AWL=0.119,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vtHvkfkU1yEv for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 09:18:29 -0700 (PDT)
Received: from viefep15-int.chello.at (viefep15-int.chello.at [62.179.121.35]) by core3.amsl.com (Postfix) with ESMTP id 1143F3A6DFB for <ogpx@ietf.org>; Mon, 29 Jun 2009 09:18:28 -0700 (PDT)
Received: from edge05.upc.biz ([192.168.13.212]) by viefep15-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090629161820.KNDR26501.viefep15-int.chello.at@edge05.upc.biz>; Mon, 29 Jun 2009 18:18:20 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge05.upc.biz with edge id 9sJ41c02E0FlQed05sJ5Jd; Mon, 29 Jun 2009 18:18:20 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MLJYd-0004n7-8I; Mon, 29 Jun 2009 18:18:15 +0200
Date: Mon, 29 Jun 2009 18:18:15 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
Message-ID: <20090629161815.GB17251@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20090629161121.GA17251@alinoe.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: Infinity Linden <infinity@lindenlab.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and	OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 16:18:30 -0000

On Mon, Jun 29, 2009 at 06:11:21PM +0200, Carlo Wood wrote:
> If this is the case, then I'm happy and there should be no problems
> in the future regarding this. If no separate ID is provided then
> several problems occur:
> * Impersonation (people deliberately using the same shape and skin etc)
> * IM's will be logged to the same file, because the viewer can't
>   know who is who.
> 
> Also, the ID has to be same every time - because the viewer will
> need to recognize that this John Smith is not AGAIN a new one,
> but the same, every time.

To clarify; what started this thread was this:

    & identifier = {
        type: 'agent',
        first_name: string,
        last_name: string,
    }

Here I only see 'first_name' and 'last_name'.
As we've established now (I hope) this is not enough at
any level of the protocol, not between servers, but also
not between server and client.

Hence, it worried me. If you say "identifier" I expect
something globally unique.

I think this should be:

    & identifier = {
        type: 'agent',
 	uuid: string,
        first_name: string,
        last_name: string,
    }

Where the uuid is not only unique, but constant for any given
account (it doesn't change if one logs out and logs in again).
It could be an email address, but for privacy reasons I think
that should not be used; some hash seems much more logical.

-- 
Carlo Wood <carlo@alinoe.com>

From cfk@pacbell.net  Mon Jun 29 11:11:26 2009
Return-Path: <cfk@pacbell.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B77BF3A6B05 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 11:11:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ht5QpKYCJFoe for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 11:11:25 -0700 (PDT)
Received: from web82608.mail.mud.yahoo.com (web82608.mail.mud.yahoo.com [68.142.201.125]) by core3.amsl.com (Postfix) with SMTP id A753A3A6A91 for <ogpx@ietf.org>; Mon, 29 Jun 2009 11:11:25 -0700 (PDT)
Received: (qmail 94371 invoked by uid 60001); 29 Jun 2009 18:11:42 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pacbell.net; s=s1024; t=1246299102; bh=gQ/b2RF+2q+ITIGX8Z/gQSHycEGt00+j+TMDCKwLtxU=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=Ieur7+re5imaFTwRxamZwIkBzNVIvbe5BheqMp4nOdULI0V/lcWtYFpu2zHtQOTt8jMBRwfqDaNWaT1f/JwrQnqPkzkcf94g3kIdB8vwDX94G/co1SCexkOmeck50+tZbsZpIzgdSnuaBdxngbO0UTzb6c0ozBWmcW2vQbLd3tE=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=pacbell.net; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=XIKdGCWfxLDdmYXfloVJDZGgbP4WCOaD5ZBaQyNGj/SfpYqgFdQZ7Y61K0O5+yhpCycCKFg61cERd424wbgSUmz83TIBm3TlnyIM/lNVI3hvyCYTOJsMGDGm7xhlby41N/OM+yY5gjaYiGWJOkSSTu9ydaxTA4+ljaw/v2cQOc4=;
Message-ID: <591737.89462.qm@web82608.mail.mud.yahoo.com>
X-YMail-OSG: OvFviJQVM1nssi6FE0tzuDASfy2.AInsoK08P7._FXlTUMUvlS5Tk.02lf6DEv23X4I4WSoDP38GD.jqJxVqhrrSA2GJAZQ6ly0LXGGIhSAacJYx2nhwLPqvoUVaCMMeJTImVcQbwbRm_7fZwO6cKIzlIX9y7Gqr4HZpMmw4ZqEr024PDjdW9CuFlP9tB77TpmmhrBkeWVwE_Y9rolLmRBYz_h7Gb6Ni1L2uUU4e7JD2_wbP1vCR0j0tkxevPnfm7V.LIqIWT1ktAhkpWpLehny7rYR3J6iuum4V423yz9OgL_SXCPixGWld5DdV4hab_IHTDqdi6QBvbUB4jhL0JK0A
Received: from [70.213.188.216] by web82608.mail.mud.yahoo.com via HTTP; Mon, 29 Jun 2009 11:11:42 PDT
X-Mailer: YahooMailRC/1277.43 YahooMailWebService/0.7.289.10
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com> <20090629161815.GB17251@alinoe.com>
Date: Mon, 29 Jun 2009 11:11:42 -0700 (PDT)
From: Charles Krinke <cfk@pacbell.net>
To: Carlo Wood <carlo@alinoe.com>, Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
In-Reply-To: <20090629161815.GB17251@alinoe.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-1274235311-1246299102=:89462"
Cc: Infinity Linden <infinity@lindenlab.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 18:11:26 -0000

--0-1274235311-1246299102=:89462
Content-Type: text/plain; charset=us-ascii

In some interop scenarios, and I am using HyperGrid as an example as it addresses the same problem, the current solution is to use:

<First>.<Last>@GridName.Com

Which is not an email, but is a unique identifier for an avatar on a particular grid.

As OGP moves forward, it seems reasonable to me that the Grids (or perhaps AgentDomains to use the vernacular here) are the authority for a particular avatar that comes from that grid.

Charles Krinke




________________________________
From: Carlo Wood <carlo@alinoe.com>
To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
Cc: Infinity Linden <infinity@lindenlab.com>; ogpx@ietf.org
Sent: Monday, June 29, 2009 9:18:15 AM
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]

On Mon, Jun 29, 2009 at 06:11:21PM +0200, Carlo Wood wrote:
> If this is the case, then I'm happy and there should be no problems
> in the future regarding this. If no separate ID is provided then
> several problems occur:
> * Impersonation (people deliberately using the same shape and skin etc)
> * IM's will be logged to the same file, because the viewer can't
>   know who is who.
> 
> Also, the ID has to be same every time - because the viewer will
> need to recognize that this John Smith is not AGAIN a new one,
> but the same, every time.

To clarify; what started this thread was this:

   & identifier = {
       type: 'agent',
       first_name: string,
       last_name: string,
   }

Here I only see 'first_name' and 'last_name'.
As we've established now (I hope) this is not enough at
any level of the protocol, not between servers, but also
not between server and client.

Hence, it worried me. If you say "identifier" I expect
something globally unique.

I think this should be:

   & identifier = {
       type: 'agent',
    uuid: string,
       first_name: string,
       last_name: string,
   }

Where the uuid is not only unique, but constant for any given
account (it doesn't change if one logs out and logs in again).
It could be an email address, but for privacy reasons I think
that should not be used; some hash seems much more logical.

-- 
Carlo Wood <carlo@alinoe.com>
_______________________________________________
ogpx mailing list
ogpx@ietf.org
https://www.ietf.org/mailman/listinfo/ogpx

--0-1274235311-1246299102=:89462
Content-Type: text/html; charset=us-ascii

<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:14pt"><div>In some interop scenarios, and I am using HyperGrid as an example as it addresses the same problem, the current solution is to use:<br><br>&lt;First&gt;.&lt;Last&gt;@GridName.Com<br><br>Which is not an email, but is a unique identifier for an avatar on a particular grid.<br><br>As OGP moves forward, it seems reasonable to me that the Grids (or perhaps AgentDomains to use the vernacular here) are the authority for a particular avatar that comes from that grid.<br><br>Charles Krinke<br></div><div style="font-family: arial,helvetica,sans-serif; font-size: 14pt;"><br><div style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> Carlo Wood &lt;carlo@alinoe.com&gt;<br><b><span style="font-weight:
 bold;">To:</span></b> Meadhbh Siobhan &lt;meadhbh.siobhan@gmail.com&gt;<br><b><span style="font-weight: bold;">Cc:</span></b> Infinity Linden &lt;infinity@lindenlab.com&gt;; ogpx@ietf.org<br><b><span style="font-weight: bold;">Sent:</span></b> Monday, June 29, 2009 9:18:15 AM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]<br></font><br>
On Mon, Jun 29, 2009 at 06:11:21PM +0200, Carlo Wood wrote:<br>&gt; If this is the case, then I'm happy and there should be no problems<br>&gt; in the future regarding this. If no separate ID is provided then<br>&gt; several problems occur:<br>&gt; * Impersonation (people deliberately using the same shape and skin etc)<br>&gt; * IM's will be logged to the same file, because the viewer can't<br>&gt;&nbsp;  know who is who.<br>&gt; <br>&gt; Also, the ID has to be same every time - because the viewer will<br>&gt; need to recognize that this John Smith is not AGAIN a new one,<br>&gt; but the same, every time.<br><br>To clarify; what started this thread was this:<br><br> &nbsp; &nbsp;&amp; identifier = {<br> &nbsp; &nbsp; &nbsp; &nbsp;type: 'agent',<br> &nbsp; &nbsp; &nbsp; &nbsp;first_name: string,<br> &nbsp; &nbsp; &nbsp; &nbsp;last_name: string,<br> &nbsp; &nbsp;}<br><br>Here I only see 'first_name' and 'last_name'.<br>As we've established now (I hope)
 this is not enough at<br>any level of the protocol, not between servers, but also<br>not between server and client.<br><br>Hence, it worried me. If you say "identifier" I expect<br>something globally unique.<br><br>I think this should be:<br><br> &nbsp; &nbsp;&amp; identifier = {<br> &nbsp; &nbsp; &nbsp; &nbsp;type: 'agent',<br> &nbsp;&nbsp;&nbsp; uuid: string,<br> &nbsp; &nbsp; &nbsp; &nbsp;first_name: string,<br> &nbsp; &nbsp; &nbsp; &nbsp;last_name: string,<br> &nbsp; &nbsp;}<br><br>Where the uuid is not only unique, but constant for any given<br>account (it doesn't change if one logs out and logs in again).<br>It could be an email address, but for privacy reasons I think<br>that should not be used; some hash seems much more logical.<br><br>-- <br>Carlo Wood &lt;<a ymailto="mailto:carlo@alinoe.com" href="mailto:carlo@alinoe.com">carlo@alinoe.com</a>&gt;<br>_______________________________________________<br>ogpx mailing list<br><a
 ymailto="mailto:ogpx@ietf.org" href="mailto:ogpx@ietf.org">ogpx@ietf.org</a><br><a href="https://www.ietf.org/mailman/listinfo/ogpx" target="_blank">https://www.ietf.org/mailman/listinfo/ogpx</a><br></div></div></div></body></html>
--0-1274235311-1246299102=:89462--

From infinity@lindenlab.com  Mon Jun 29 12:26:08 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 1C6A228C2C2 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 12:26:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.72
X-Spam-Level: 
X-Spam-Status: No, score=-1.72 tagged_above=-999 required=5 tests=[AWL=0.257,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ak8RV4ipRQBt for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 12:26:07 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id 07FBC28C252 for <ogpx@ietf.org>; Mon, 29 Jun 2009 12:26:06 -0700 (PDT)
Received: by yxe12 with SMTP id 12so1499593yxe.29 for <ogpx@ietf.org>; Mon, 29 Jun 2009 12:24:28 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.4.8 with SMTP id 8mr9652644and.180.1246303158695; Mon, 29  Jun 2009 12:19:18 -0700 (PDT)
In-Reply-To: <591737.89462.qm@web82608.mail.mud.yahoo.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com> <20090629161815.GB17251@alinoe.com> <591737.89462.qm@web82608.mail.mud.yahoo.com>
Date: Mon, 29 Jun 2009 12:19:18 -0700
Message-ID: <3a880e2c0906291219t1990272fkb276979ebc97d292@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Charles Krinke <cfk@pacbell.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 19:26:08 -0000

hmm... i think over in the OGP world we have a history of being
enamored with capabilities and RESTful resources, ergo my suggestion
that an agent's unique ID be an URL. If the public URL a service may
go to to get public information about an agent is the unique ID for an
avatar, then you don't need a name to service resolution step, which
has some advantages. i don't want to sound partisan, but the
formulation below (that looks like an email address) seems to have the
potential for ambiguity.

On Mon, Jun 29, 2009 at 11:11 AM, Charles Krinke<cfk@pacbell.net> wrote:
> In some interop scenarios, and I am using HyperGrid as an example as it
> addresses the same problem, the current solution is to use:
>
> <First>.<Last>@GridName.Com
>
> Which is not an email, but is a unique identifier for an avatar on a
> particular grid.
>
> As OGP moves forward, it seems reasonable to me that the Grids (or perhap=
s
> AgentDomains to use the vernacular here) are the authority for a particul=
ar
> avatar that comes from that grid.
>
> Charles Krinke
>
> ________________________________
> From: Carlo Wood <carlo@alinoe.com>
> To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
> Cc: Infinity Linden <infinity@lindenlab.com>; ogpx@ietf.org
> Sent: Monday, June 29, 2009 9:18:15 AM
> Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID a=
nd
> OGP : beginning the discussion ...]
>
> On Mon, Jun 29, 2009 at 06:11:21PM +0200, Carlo Wood wrote:
>> If this is the case, then I'm happy and there should be no problems
>> in the future regarding this. If no separate ID is provided then
>> several problems occur:
>> * Impersonation (people deliberately using the same shape and skin etc)
>> * IM's will be logged to the same file, because the viewer can't
>>=A0 know who is who.
>>
>> Also, the ID has to be same every time - because the viewer will
>> need to recognize that this John Smith is not AGAIN a new one,
>> but the same, every time.
>
> To clarify; what started this thread was this:
>
> =A0 =A0& identifier =3D {
> =A0 =A0 =A0 =A0type: 'agent',
> =A0 =A0 =A0 =A0first_name: string,
> =A0 =A0 =A0 =A0last_name: string,
> =A0 =A0}
>
> Here I only see 'first_name' and 'last_name'.
> As we've established now (I hope) this is not enough at
> any level of the protocol, not between servers, but also
> not between server and client.
>
> Hence, it worried me. If you say "identifier" I expect
> something globally unique.
>
> I think this should be:
>
> =A0 =A0& identifier =3D {
> =A0 =A0 =A0 =A0type: 'agent',
> =A0=A0=A0 uuid: string,
> =A0 =A0 =A0 =A0first_name: string,
> =A0 =A0 =A0 =A0last_name: string,
> =A0 =A0}
>
> Where the uuid is not only unique, but constant for any given
> account (it doesn't change if one logs out and logs in again).
> It could be an email address, but for privacy reasons I think
> that should not be used; some hash seems much more logical.
>
> --
> Carlo Wood <carlo@alinoe.com>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>

From cfk@pacbell.net  Mon Jun 29 12:37:11 2009
Return-Path: <cfk@pacbell.net>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 338E728C156 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 12:37:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JjXDWJZFoTCl for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 12:37:10 -0700 (PDT)
Received: from web82601.mail.mud.yahoo.com (web82601.mail.mud.yahoo.com [68.142.201.118]) by core3.amsl.com (Postfix) with SMTP id DE6DE28C14B for <ogpx@ietf.org>; Mon, 29 Jun 2009 12:37:08 -0700 (PDT)
Received: (qmail 73481 invoked by uid 60001); 29 Jun 2009 19:25:13 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pacbell.net; s=s1024; t=1246303513; bh=T7F1d8D9pVbi+yq81Hylxa7z51ZC7H2s94IHorqdTQ4=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=KDwTO6QApM7L4vT+JbfUXwYIxFB+v6K2yavD3nQgfvau+lRTMJj8u3cd0UEGN5jq6wJHAHMmwU3ciCeuBqb6MAx5RbRFJeg+CqlbrZXAIyDdCI/JCYsNL7MbxngOe67dvlgW9CCJ7AhqqM7abbKHVrw1ddzPqW+CDtLpCCQrmkQ=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=pacbell.net; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type; b=O9ARH/Bq8j+I0FvWxTBNyh6EfDz0MsKJ85O0wBXN77OVdK4WB0WkaSVpFvpO2KL6cbXBcJVzOAnsr1BI/q2FRUUbvE9hSoVMg12YLckQW0AAnFGYPl4MM4tAhN8Uekz/gWqWQmOLG2D849rIDOkolOy5Nldn3wBbJ2XPG/VOD8w=;
Message-ID: <897153.73396.qm@web82601.mail.mud.yahoo.com>
X-YMail-OSG: S8lRCn8VM1k0ufMdIUGqR.f34dK06TgDFnBXvK9UsLByFTl0ClZ2sE7bLhhynvbrjpErXtQtkR3n_w2fDnu9kx3g3WTQy.44H8JQXHV3NpBNAfpHfKJDft42jKJnlhVCOMK5Vvpz.mtssVjdIYJJgnAbCbEi.Qi61REps_FXut05ocoNwuqcPN3VcLsARYVvVs8MLk6N9YKZz4tVt2ouVDLXSxeg.SopRZ4mhkdDfED1y5NPLhsUcgXF7A7wNu5aVjztruIi9mD7iseKxPM2CZMZClAX5z7fGOzVYUxqtopRT7MKvLbM7bHyHG2EHGcWZsjTVdYu3JYP88ecTiwFadwKEUp6rzF91movPg--
Received: from [70.213.188.216] by web82601.mail.mud.yahoo.com via HTTP; Mon, 29 Jun 2009 12:25:10 PDT
X-Mailer: YahooMailRC/1277.43 YahooMailWebService/0.7.289.10
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com> <20090629161815.GB17251@alinoe.com> <591737.89462.qm@web82608.mail.mud.yahoo.com> <3a880e2c0906291219t1990272fkb276979ebc97d292@mail.gmail.com>
Date: Mon, 29 Jun 2009 12:25:10 -0700 (PDT)
From: Charles Krinke <cfk@pacbell.net>
To: Infinity Linden <infinity@lindenlab.com>
In-Reply-To: <3a880e2c0906291219t1990272fkb276979ebc97d292@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-1954171275-1246303510=:73396"
Cc: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 19:37:11 -0000

--0-1954171275-1246303510=:73396
Content-Type: text/plain; charset=us-ascii

Hmmm. Well, it seems reasonable to me that each grid has one and only one first/last avatar of any particular first and last.

Admiteddly, I am more focused on the OpenSim and the OSGrid side of this interop discussion, but, since the precedent has already been set for <first>.<last>@GridName.Com it seems a reasonable and non-ambiguous method.

All avatars on OpenSim grids do have a UUID, so that could certainly be exposed. Then we could have conversations between "0123-4567-89ab-123456899abc-defa" and others instead of <first>.<last>@gridname.com, I suppose.

Charles Krinke




________________________________
From: Infinity Linden <infinity@lindenlab.com>
To: Charles Krinke <cfk@pacbell.net>
Cc: Carlo Wood <carlo@alinoe.com>; Meadhbh Siobhan <meadhbh.siobhan@gmail.com>; ogpx@ietf.org
Sent: Monday, June 29, 2009 12:19:18 PM
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and  OGP : beginning the discussion ...]

hmm... i think over in the OGP world we have a history of being
enamored with capabilities and RESTful resources, ergo my suggestion
that an agent's unique ID be an URL. If the public URL a service may
go to to get public information about an agent is the unique ID for an
avatar, then you don't need a name to service resolution step, which
has some advantages. i don't want to sound partisan, but the
formulation below (that looks like an email address) seems to have the
potential for ambiguity.

On Mon, Jun 29, 2009 at 11:11 AM, Charles Krinke<cfk@pacbell.net> wrote:
> In some interop scenarios, and I am using HyperGrid as an example as it
> addresses the same problem, the current solution is to use:
>
> <First>.<Last>@GridName.Com
>
> Which is not an email, but is a unique identifier for an avatar on a
> particular grid.
>
> As OGP moves forward, it seems reasonable to me that the Grids (or perhaps
> AgentDomains to use the vernacular here) are the authority for a particular
> avatar that comes from that grid.
>
> Charles Krinke
>
> ________________________________
> From: Carlo Wood <carlo@alinoe.com>
> To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>
> Cc: Infinity Linden <infinity@lindenlab.com>; ogpx@ietf.org
> Sent: Monday, June 29, 2009 9:18:15 AM
> Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and
> OGP : beginning the discussion ...]
>
> On Mon, Jun 29, 2009 at 06:11:21PM +0200, Carlo Wood wrote:
>> If this is the case, then I'm happy and there should be no problems
>> in the future regarding this. If no separate ID is provided then
>> several problems occur:
>> * Impersonation (people deliberately using the same shape and skin etc)
>> * IM's will be logged to the same file, because the viewer can't
>>  know who is who.
>>
>> Also, the ID has to be same every time - because the viewer will
>> need to recognize that this John Smith is not AGAIN a new one,
>> but the same, every time.
>
> To clarify; what started this thread was this:
>
>    & identifier = {
>        type: 'agent',
>        first_name: string,
>        last_name: string,
>    }
>
> Here I only see 'first_name' and 'last_name'.
> As we've established now (I hope) this is not enough at
> any level of the protocol, not between servers, but also
> not between server and client.
>
> Hence, it worried me. If you say "identifier" I expect
> something globally unique.
>
> I think this should be:
>
>    & identifier = {
>        type: 'agent',
>     uuid: string,
>        first_name: string,
>        last_name: string,
>    }
>
> Where the uuid is not only unique, but constant for any given
> account (it doesn't change if one logs out and logs in again).
> It could be an email address, but for privacy reasons I think
> that should not be used; some hash seems much more logical.
>
> --
> Carlo Wood <carlo@alinoe.com>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>

--0-1954171275-1246303510=:73396
Content-Type: text/html; charset=us-ascii

<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:14pt"><div>Hmmm. Well, it seems reasonable to me that each grid has one and only one first/last avatar of any particular first and last.<br><br>Admiteddly, I am more focused on the OpenSim and the OSGrid side of this interop discussion, but, since the precedent has already been set for &lt;first&gt;.&lt;last&gt;@GridName.Com it seems a reasonable and non-ambiguous method.<br><br>All avatars on OpenSim grids do have a UUID, so that could certainly be exposed. Then we could have conversations between "0123-4567-89ab-123456899abc-defa" and others instead of &lt;first&gt;.&lt;last&gt;@gridname.com, I suppose.<br><br>Charles Krinke<br></div><div style="font-family: arial,helvetica,sans-serif; font-size: 14pt;"><br><div style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><font size="2" face="Tahoma"><hr
 size="1"><b><span style="font-weight: bold;">From:</span></b> Infinity Linden &lt;infinity@lindenlab.com&gt;<br><b><span style="font-weight: bold;">To:</span></b> Charles Krinke &lt;cfk@pacbell.net&gt;<br><b><span style="font-weight: bold;">Cc:</span></b> Carlo Wood &lt;carlo@alinoe.com&gt;; Meadhbh Siobhan &lt;meadhbh.siobhan@gmail.com&gt;; ogpx@ietf.org<br><b><span style="font-weight: bold;">Sent:</span></b> Monday, June 29, 2009 12:19:18 PM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and  OGP : beginning the discussion ...]<br></font><br>
hmm... i think over in the OGP world we have a history of being<br>enamored with capabilities and RESTful resources, ergo my suggestion<br>that an agent's unique ID be an URL. If the public URL a service may<br>go to to get public information about an agent is the unique ID for an<br>avatar, then you don't need a name to service resolution step, which<br>has some advantages. i don't want to sound partisan, but the<br>formulation below (that looks like an email address) seems to have the<br>potential for ambiguity.<br><br>On Mon, Jun 29, 2009 at 11:11 AM, Charles Krinke&lt;<a ymailto="mailto:cfk@pacbell.net" href="mailto:cfk@pacbell.net">cfk@pacbell.net</a>&gt; wrote:<br>&gt; In some interop scenarios, and I am using HyperGrid as an example as it<br>&gt; addresses the same problem, the current solution is to use:<br>&gt;<br>&gt; &lt;First&gt;.&lt;Last&gt;@GridName.Com<br>&gt;<br>&gt; Which is not an email, but is a unique identifier for an avatar on
 a<br>&gt; particular grid.<br>&gt;<br>&gt; As OGP moves forward, it seems reasonable to me that the Grids (or perhaps<br>&gt; AgentDomains to use the vernacular here) are the authority for a particular<br>&gt; avatar that comes from that grid.<br>&gt;<br>&gt; Charles Krinke<br>&gt;<br>&gt; ________________________________<br>&gt; From: Carlo Wood &lt;<a ymailto="mailto:carlo@alinoe.com" href="mailto:carlo@alinoe.com">carlo@alinoe.com</a>&gt;<br>&gt; To: Meadhbh Siobhan &lt;<a ymailto="mailto:meadhbh.siobhan@gmail.com" href="mailto:meadhbh.siobhan@gmail.com">meadhbh.siobhan@gmail.com</a>&gt;<br>&gt; Cc: Infinity Linden &lt;<a ymailto="mailto:infinity@lindenlab.com" href="mailto:infinity@lindenlab.com">infinity@lindenlab.com</a>&gt;; <a ymailto="mailto:ogpx@ietf.org" href="mailto:ogpx@ietf.org">ogpx@ietf.org</a><br>&gt; Sent: Monday, June 29, 2009 9:18:15 AM<br>&gt; Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and<br>&gt; OGP :
 beginning the discussion ...]<br>&gt;<br>&gt; On Mon, Jun 29, 2009 at 06:11:21PM +0200, Carlo Wood wrote:<br>&gt;&gt; If this is the case, then I'm happy and there should be no problems<br>&gt;&gt; in the future regarding this. If no separate ID is provided then<br>&gt;&gt; several problems occur:<br>&gt;&gt; * Impersonation (people deliberately using the same shape and skin etc)<br>&gt;&gt; * IM's will be logged to the same file, because the viewer can't<br>&gt;&gt;&nbsp; know who is who.<br>&gt;&gt;<br>&gt;&gt; Also, the ID has to be same every time - because the viewer will<br>&gt;&gt; need to recognize that this John Smith is not AGAIN a new one,<br>&gt;&gt; but the same, every time.<br>&gt;<br>&gt; To clarify; what started this thread was this:<br>&gt;<br>&gt; &nbsp; &nbsp;&amp; identifier = {<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;type: 'agent',<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;first_name: string,<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;last_name:
 string,<br>&gt; &nbsp; &nbsp;}<br>&gt;<br>&gt; Here I only see 'first_name' and 'last_name'.<br>&gt; As we've established now (I hope) this is not enough at<br>&gt; any level of the protocol, not between servers, but also<br>&gt; not between server and client.<br>&gt;<br>&gt; Hence, it worried me. If you say "identifier" I expect<br>&gt; something globally unique.<br>&gt;<br>&gt; I think this should be:<br>&gt;<br>&gt; &nbsp; &nbsp;&amp; identifier = {<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;type: 'agent',<br>&gt; &nbsp;&nbsp;&nbsp; uuid: string,<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;first_name: string,<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp;last_name: string,<br>&gt; &nbsp; &nbsp;}<br>&gt;<br>&gt; Where the uuid is not only unique, but constant for any given<br>&gt; account (it doesn't change if one logs out and logs in again).<br>&gt; It could be an email address, but for privacy reasons I think<br>&gt; that should not be used; some hash seems much more
 logical.<br>&gt;<br>&gt; --<br>&gt; Carlo Wood &lt;<a ymailto="mailto:carlo@alinoe.com" href="mailto:carlo@alinoe.com">carlo@alinoe.com</a>&gt;<br>&gt; _______________________________________________<br>&gt; ogpx mailing list<br>&gt; <a ymailto="mailto:ogpx@ietf.org" href="mailto:ogpx@ietf.org">ogpx@ietf.org</a><br>&gt; <a href="https://www.ietf.org/mailman/listinfo/ogpx" target="_blank">https://www.ietf.org/mailman/listinfo/ogpx</a><br>&gt;<br></div></div></div></body></html>
--0-1954171275-1246303510=:73396--

From infinity@lindenlab.com  Mon Jun 29 12:42:50 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 26F243A6DD6 for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 12:42:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.729
X-Spam-Level: 
X-Spam-Status: No, score=-1.729 tagged_above=-999 required=5 tests=[AWL=0.248,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZDhnVdyf2yPB for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 12:42:49 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id 2933F3A69C0 for <ogpx@ietf.org>; Mon, 29 Jun 2009 12:42:49 -0700 (PDT)
Received: by yxe12 with SMTP id 12so1519976yxe.29 for <ogpx@ietf.org>; Mon, 29 Jun 2009 12:43:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.215.12 with SMTP id n12mr9471809ang.133.1246302847224;  Mon, 29 Jun 2009 12:14:07 -0700 (PDT)
In-Reply-To: <20090629161121.GA17251@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com>
Date: Mon, 29 Jun 2009 12:14:07 -0700
Message-ID: <3a880e2c0906291214g421c5bd8r739b6fb81d5e9836@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Carlo Wood <carlo@alinoe.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 19:42:50 -0000

okay. cool. i see where you're going with this.

right. as a developer or a region domain, you want to depend on
something more globally unique than first name + last name, otherwise
you risk John Jones from example.com and John Jones from example.org
getting confused with each other. in the email case it's the human
who's the consumer of this name so the human can apply all sorts of
contextual pattern matching and fuzzy reasoning to try to figure out
if the two might be the same. but it would be imperative we have a way
to avoid REQUIRING region domain software from applying a list of
similar heuristics.

so yeah. a global identifier of some sort is good. it does not need to
be an email address, but it will have some of the same
characteristics: part of it will unambiguously identify the authority
(i.e. the FQDN of the agent domain host that holds info about the
agent) and the other half holds the identifier that is unique inside
that domain. i would vote we use a URI; they have these
characteristics, and they're not an email address that can be spammed.

but at the end of the day if you want distant systems to be able to
reference individual agents, you would need a way to address them, and
unless you wanted to REQUIRE a white list you have to admit the
possibility that a malicious adversary might try to force the protocol
or spam you.

i also don't think having two John Jones rezzed in the same region at
the same time is _that_ big of a problem, provided the region domain
and the client application have enough information to disambiguate the
two if it is required.

On Mon, Jun 29, 2009 at 9:11 AM, Carlo Wood<carlo@alinoe.com> wrote:
> On Mon, Jun 29, 2009 at 07:51:09AM -0700, Meadhbh Siobhan wrote:
>> the second one is left as an exercise to client application developers
>> and is analogous to the difficulty end users may have in
>> differentiating two entities with the same name but distinct email
>> addresses.
>
> Well, then I'm almost satisfied :).
>
> There is still one problem however. Before the application developers
> can do this, they need to receive some globally unique identifier
> that is always the same (ie, an email address, but again, I REALLY
> don't want to share my email address with people online).
>
> Example, a viewer is connected and the corresponding agent resides
> in a given region. There it meet another avatar. In order to display
> the tag above this new avatar the viewer needs to receive Firstname
> Lastname... but, as I've tried to argue so far, it ALSO needs to
> receive a globally unique identifier that uniquely identifies the
> person behind the avatar (or rather, his account) and please don't
> let it be an email address ;).
>
> The point being: the server-client *protocol* needs to be designed
> such that this globally unique ID is made available to all viewers.
>
> If this is the case, then I'm happy and there should be no problems
> in the future regarding this. If no separate ID is provided then
> several problems occur:
> * Impersonation (people deliberately using the same shape and skin etc)
> * IM's will be logged to the same file, because the viewer can't
> =A0know who is who.
>
> Also, the ID has to be same every time - because the viewer will
> need to recognize that this John Smith is not AGAIN a new one,
> but the same, every time.
>
> --
> Carlo Wood <carlo@alinoe.com>
>

From josh@lindenlab.com  Mon Jun 29 13:41:00 2009
Return-Path: <josh@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 21A1B3A68ED for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 13:41:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.328
X-Spam-Level: 
X-Spam-Status: No, score=-2.328 tagged_above=-999 required=5 tests=[AWL=0.271,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YF6-MnYW41RA for <ogpx@core3.amsl.com>; Mon, 29 Jun 2009 13:40:58 -0700 (PDT)
Received: from tammy.lindenlab.com (tammy.lindenlab.com [216.82.11.128]) by core3.amsl.com (Postfix) with ESMTP id D1D0B3A6850 for <ogpx@ietf.org>; Mon, 29 Jun 2009 13:40:58 -0700 (PDT)
Received: from [10.1.8.223] (thickslab.lindenlab.com [10.1.8.223]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tammy.lindenlab.com (Postfix) with ESMTP id 747D13DBC09B for <ogpx@ietf.org>; Mon, 29 Jun 2009 13:41:19 -0700 (PDT)
Message-ID: <4A4926EE.5060509@lindenlab.com>
Date: Mon, 29 Jun 2009 13:41:18 -0700
From: Joshua Bell <josh@lindenlab.com>
User-Agent: Thunderbird 2.0.0.22 (Windows/20090605)
MIME-Version: 1.0
To: ogpx@ietf.org
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com>	<20090629105140.GA1053@alinoe.com>	<b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com>	<20090629114512.GC1053@alinoe.com>	<b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com>	<20090629161121.GA17251@alinoe.com>	<20090629161815.GB17251@alinoe.com>	<591737.89462.qm@web82608.mail.mud.yahoo.com>	<3a880e2c0906291219t1990272fkb276979ebc97d292@mail.gmail.com> <897153.73396.qm@web82601.mail.mud.yahoo.com>
In-Reply-To: <897153.73396.qm@web82601.mail.mud.yahoo.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 20:41:00 -0000

Be aware that (firstname, lastname) as a unique identifier within a 
service is a quirk of Second Life, and not necessarily something that 
every OGP provider must use. One could imagine services that use single 
field account identifiers (like most email providers), or allow more 
flexibility in name choice to match real-world conventions.

It sounds like we're all agreeing, though - there will be some N-part 
unique identifier (which may be easily human readable, but may not) 
issued by an authoritative domain to a user, and given that the domain 
almost certainly has a globally unique identifier of its own (i.e. DNS 
name) there is a composition of the two that can give a globally unique 
identifier for the agent.

We should also be explicit that these identifiers are not necessarily 
also used as authentication credentials. Some service providers may want 
two-factor authentication (e.g. hardware key fob) or private login 
credentials distinct from any public identifiers for additional 
security. The 3-tuple login credentials (firstname, lastname, password) 
which Second Life uses today should not be viewed as the only allowable 
mechanism.

Joshua Bell (but *not* the Joshua Bell from http://www.joshuabell.com/)

Charles Krinke wrote:
> Hmmm. Well, it seems reasonable to me that each grid has one and only 
> one first/last avatar of any particular first and last.
>
> Admiteddly, I am more focused on the OpenSim and the OSGrid side of 
> this interop discussion, but, since the precedent has already been set 
> for <first>.<last>@GridName.Com it seems a reasonable and 
> non-ambiguous method.
>
> All avatars on OpenSim grids do have a UUID, so that could certainly 
> be exposed. Then we could have conversations between 
> "0123-4567-89ab-123456899abc-defa" and others instead of 
> <first>.<last>@gridname.com, I suppose.
>
> Charles Krinke
>
> ------------------------------------------------------------------------
> *From:* Infinity Linden <infinity@lindenlab.com>
> *To:* Charles Krinke <cfk@pacbell.net>
> *Cc:* Carlo Wood <carlo@alinoe.com>; Meadhbh Siobhan 
> <meadhbh.siobhan@gmail.com>; ogpx@ietf.org
> *Sent:* Monday, June 29, 2009 12:19:18 PM
> *Subject:* Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: 
> OpenID and OGP : beginning the discussion ...]
>
> hmm... i think over in the OGP world we have a history of being
> enamored with capabilities and RESTful resources, ergo my suggestion
> that an agent's unique ID be an URL. If the public URL a service may
> go to to get public information about an agent is the unique ID for an
> avatar, then you don't need a name to service resolution step, which
> has some advantages. i don't want to sound partisan, but the
> formulation below (that looks like an email address) seems to have the
> potential for ambiguity.
>
> On Mon, Jun 29, 2009 at 11:11 AM, Charles Krinke<cfk@pacbell.net 
> <mailto:cfk@pacbell.net>> wrote:
> > In some interop scenarios, and I am using HyperGrid as an example as it
> > addresses the same problem, the current solution is to use:
> >
> > <First>.<Last>@GridName.Com
> >
> > Which is not an email, but is a unique identifier for an avatar on a
> > particular grid.
> >
> > As OGP moves forward, it seems reasonable to me that the Grids (or 
> perhaps
> > AgentDomains to use the vernacular here) are the authority for a 
> particular
> > avatar that comes from that grid.
> >
> > Charles Krinke
> >
> > ________________________________
> > From: Carlo Wood <carlo@alinoe.com <mailto:carlo@alinoe.com>>
> > To: Meadhbh Siobhan <meadhbh.siobhan@gmail.com 
> <mailto:meadhbh.siobhan@gmail.com>>
> > Cc: Infinity Linden <infinity@lindenlab.com 
> <mailto:infinity@lindenlab.com>>; ogpx@ietf.org <mailto:ogpx@ietf.org>
> > Sent: Monday, June 29, 2009 9:18:15 AM
> > Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: 
> OpenID and
> > OGP : beginning the discussion ...]
> >
> > On Mon, Jun 29, 2009 at 06:11:21PM +0200, Carlo Wood wrote:
> >> If this is the case, then I'm happy and there should be no problems
> >> in the future regarding this. If no separate ID is provided then
> >> several problems occur:
> >> * Impersonation (people deliberately using the same shape and skin etc)
> >> * IM's will be logged to the same file, because the viewer can't
> >>  know who is who.
> >>
> >> Also, the ID has to be same every time - because the viewer will
> >> need to recognize that this John Smith is not AGAIN a new one,
> >> but the same, every time.
> >
> > To clarify; what started this thread was this:
> >
> >    & identifier = {
> >        type: 'agent',
> >        first_name: string,
> >        last_name: string,
> >    }
> >
> > Here I only see 'first_name' and 'last_name'.
> > As we've established now (I hope) this is not enough at
> > any level of the protocol, not between servers, but also
> > not between server and client.
> >
> > Hence, it worried me. If you say "identifier" I expect
> > something globally unique.
> >
> > I think this should be:
> >
> >    & identifier = {
> >        type: 'agent',
> >     uuid: string,
> >        first_name: string,
> >        last_name: string,
> >    }
> >
> > Where the uuid is not only unique, but constant for any given
> > account (it doesn't change if one logs out and logs in again).
> > It could be an email address, but for privacy reasons I think
> > that should not be used; some hash seems much more logical.
> >
> > --
> > Carlo Wood <carlo@alinoe.com <mailto:carlo@alinoe.com>>
> > _______________________________________________
> > ogpx mailing list
> > ogpx@ietf.org <mailto:ogpx@ietf.org>
> > https://www.ietf.org/mailman/listinfo/ogpx
> >
> ------------------------------------------------------------------------
>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>   


From morgaine.dinova@googlemail.com  Tue Jun 30 00:03:11 2009
Return-Path: <morgaine.dinova@googlemail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 992763A6E17 for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 00:03:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.976
X-Spam-Level: 
X-Spam-Status: No, score=-1.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pmQTXEREpItU for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 00:03:10 -0700 (PDT)
Received: from mail-ew0-f210.google.com (mail-ew0-f210.google.com [209.85.219.210]) by core3.amsl.com (Postfix) with ESMTP id F1CF728C144 for <ogpx@ietf.org>; Tue, 30 Jun 2009 00:03:09 -0700 (PDT)
Received: by ewy6 with SMTP id 6so6352260ewy.37 for <ogpx@ietf.org>; Tue, 30 Jun 2009 00:03:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=txxOxppDqA6O9W7fzJ7+q8SGucWQvfDDpKlG/YAnCW8=; b=dfQdhVo7DFxaJrDeQ0iD5gO1+uJZ4RdXc+A5XHhcTzfd1RMDw2S/w50AMRtEtaIfEW Nkov83EBiqEYwS7HnLnDolhPMUn+pI3tlcpM0q7jwdqWDbs5G6bxKeJDTkpKrJXB1B7Y etxDXwZp2E8GgtV0WgM+d+m0x62/UoBNAxesw=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=bmD8YqudV1onFIrLKNQB4BsA6zUpv83fOSWtQZbawJUbYrr4747d9hXh8F3dxVf5ZQ rH1VumUV6KpbqXkkKQXZX4f5lvfkgfMfur1p9MD0gowXqFhPWoZEJIDjq5t2w6N/luLX gl9MwiQW8U6Y032unBFU/qZ8XEuaQJ7PkBxpE=
MIME-Version: 1.0
Received: by 10.216.52.76 with SMTP id d54mr2353524wec.119.1246345408672; Tue,  30 Jun 2009 00:03:28 -0700 (PDT)
In-Reply-To: <4A4926EE.5060509@lindenlab.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com> <20090629161815.GB17251@alinoe.com> <591737.89462.qm@web82608.mail.mud.yahoo.com> <3a880e2c0906291219t1990272fkb276979ebc97d292@mail.gmail.com> <897153.73396.qm@web82601.mail.mud.yahoo.com> <4A4926EE.5060509@lindenlab.com>
Date: Tue, 30 Jun 2009 08:03:28 +0100
Message-ID: <e0b04bba0906300003y18207430k95f9b8e901dcff87@mail.gmail.com>
From: Morgaine <morgaine.dinova@googlemail.com>
To: Joshua Bell <josh@lindenlab.com>
Content-Type: multipart/alternative; boundary=0016e6d9675159f37b046d8b6728
Cc: ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2009 07:03:11 -0000

--0016e6d9675159f37b046d8b6728
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

On Mon, Jun 29, 2009 at 9:41 PM, Joshua Bell <josh@lindenlab.com> wrote:

> Be aware that (firstname, lastname) as a unique identifier within a service
> is a quirk of Second Life, and not necessarily something that every OGP
> provider must use. One could imagine services that use single field account
> identifiers (like most email providers), or allow more flexibility in name
> choice to match real-world conventions.
>

+1

>
> It sounds like we're all agreeing, though - there will be some N-part
> unique identifier (which may be easily human readable, but may not) issued
> by an authoritative domain to a user, and given that the domain almost
> certainly has a globally unique identifier of its own (i.e. DNS name) there
> is a composition of the two that can give a globally unique identifier for
> the agent.
>

+1

>
> We should also be explicit that these identifiers are not necessarily also
> used as authentication credentials. Some service providers may want
> two-factor authentication (e.g. hardware key fob) or private login
> credentials distinct from any public identifiers for additional security.
> The 3-tuple login credentials (firstname, lastname, password) which Second
> Life uses today should not be viewed as the only allowable mechanism.
>

+1

Joshua, you've provided a very concise and precise summary of the overall
requirement --- I agree with this entirely.  Condensing it even further, we
need 3 things, and they are quite independent of each other:


   1. Arbitrary in-world name tags, which have only one intent: to provide a
   customer-satisfying visual name.
   2. Globally unique identifiers, either UUID or formed by composition of
   N-part local name @ issuing authority.
   3. Entirely separate authentication credentials, in other words,
   unrelated to 1) or 2).


Keeping these 3 things entirely disjoint would serve us well in many ways,
particularly in the key areas of scalability, flexibility, uniqueness, and
user-friendliness / appropriateness.


Morgaine.

--0016e6d9675159f37b046d8b6728
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On Mon, Jun 29, 2009 at 9:41 PM, Joshua Bell <span dir=3D"ltr">&lt;<a href=
=3D"mailto:josh@lindenlab.com">josh@lindenlab.com</a>&gt;</span> wrote:<br>=
<div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"borde=
r-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-le=
ft: 1ex;">
Be aware that (firstname, lastname) as a unique identifier within a service=
 is a quirk of Second Life, and not necessarily something that every OGP pr=
ovider must use. One could imagine services that use single field account i=
dentifiers (like most email providers), or allow more flexibility in name c=
hoice to match real-world conventions.<br>

</blockquote><div><br>+1 <br></div><blockquote class=3D"gmail_quote" style=
=3D"border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; p=
adding-left: 1ex;"><br>
It sounds like we&#39;re all agreeing, though - there will be some N-part u=
nique identifier (which may be easily human readable, but may not) issued b=
y an authoritative domain to a user, and given that the domain almost certa=
inly has a globally unique identifier of its own (i.e. DNS name) there is a=
 composition of the two that can give a globally unique identifier for the =
agent.<br>

</blockquote><div><br>+1 <br></div><blockquote class=3D"gmail_quote" style=
=3D"border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; p=
adding-left: 1ex;"><br>
We should also be explicit that these identifiers are not necessarily also =
used as authentication credentials. Some service providers may want two-fac=
tor authentication (e.g. hardware key fob) or private login credentials dis=
tinct from any public identifiers for additional security. The 3-tuple logi=
n credentials (firstname, lastname, password) which Second Life uses today =
should not be viewed as the only allowable mechanism.<br>

</blockquote><div><br>+1<br><br>Joshua, you&#39;ve provided a very concise =
and precise summary of the overall requirement --- I agree with this entire=
ly.=A0 Condensing it even further, we need 3 things, and they are quite ind=
ependent of each other:<br>
<br><ol><li>Arbitrary in-world name tags, which have only one intent: to pr=
ovide a customer-satisfying visual name.</li><li>Globally unique identifier=
s, either UUID or formed by composition of N-part local name @ issuing auth=
ority.</li>
<li>Entirely separate authentication credentials, in other words, unrelated=
 to 1) or 2).</li></ol><br>Keeping these 3 things entirely disjoint would s=
erve us well in many ways, particularly in the key areas of scalability, fl=
exibility, uniqueness, and user-friendliness / appropriateness.<br>
<br><br>Morgaine.<br><br></div></div>

--0016e6d9675159f37b046d8b6728--

From nexiim@googlemail.com  Tue Jun 30 01:40:43 2009
Return-Path: <nexiim@googlemail.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9860E28C335 for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 01:40:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.976
X-Spam-Level: 
X-Spam-Status: No, score=-1.976 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TH6NXqYYlPzZ for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 01:40:42 -0700 (PDT)
Received: from mail-fx0-f218.google.com (mail-fx0-f218.google.com [209.85.220.218]) by core3.amsl.com (Postfix) with ESMTP id A7ECC28C32E for <ogpx@ietf.org>; Tue, 30 Jun 2009 01:40:41 -0700 (PDT)
Received: by fxm18 with SMTP id 18so1451586fxm.37 for <ogpx@ietf.org>; Tue, 30 Jun 2009 01:40:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=tH8ULaxgsC4rb4dFCnvknF4n42oOMa4iaL6qZXeP/oI=; b=LtQ17kxoMmAQa5gJ8cGXZDGDIIsCcI66XU14bTHvhkiVvmvwR5dvBIB1qI21vSBOlr glK13qywvq3B5n6iD+OMJAJAEjjhoht+0M+tyS4UD5cRO/ul3SOKnM71zUg90w2qhIGt KMICP2ZkoPHUJ0RWimw02f2hBYtqL6pqmwh5E=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=eVc0nhJ9y1giifvb+fVsmrXP6GL2bXxlq1feY7DK26Kpf7LDeZTy9V6iyhskCdkRSg LQcls3GmZBgrV/S2fNp4keEVwRLCSK1MnJXfSNv7A/h2Aucqbgl8S9fQ+k3ves0p3HCS tQqmZnqkg8iEaYJg5+lSw7LcQ3lECYOovL4k4=
MIME-Version: 1.0
Received: by 10.103.233.12 with SMTP id k12mr4621946mur.108.1246350846959;  Tue, 30 Jun 2009 01:34:06 -0700 (PDT)
In-Reply-To: <e0b04bba0906300003y18207430k95f9b8e901dcff87@mail.gmail.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com> <20090629161815.GB17251@alinoe.com> <591737.89462.qm@web82608.mail.mud.yahoo.com> <3a880e2c0906291219t1990272fkb276979ebc97d292@mail.gmail.com> <897153.73396.qm@web82601.mail.mud.yahoo.com> <4A4926EE.5060509@lindenlab.com> <e0b04bba0906300003y18207430k95f9b8e901dcff87@mail.gmail.com>
Date: Tue, 30 Jun 2009 09:34:06 +0100
Message-ID: <824c8ab70906300134k22af7813o437fd39ad9f0fc1e@mail.gmail.com>
From: Nexii Malthus <nexiim@googlemail.com>
To: Morgaine <morgaine.dinova@googlemail.com>
Content-Type: multipart/alternative; boundary=0016369205b37fa275046d8cabbf
Cc: ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2009 08:40:43 -0000

--0016369205b37fa275046d8cabbf
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hmmm interesting.

So we have a server-side facing identifier received by the agent domain:
& identifier = {
   type: 'account',
   agent_domain: urlstring,
   account_name: string,
}
(Side question, should there be free-reign for server-side facing arbritary
data too? Could pose some interesting innovations between regiondomains and
agentdomains.)

And client-side facing identifier that is distributed by the server to other
agents as necessary received by the agent domain: (Should the server be
allowed to modify this at will? I could imagine the server wanting to
add/remove or edit meaningful entries programmatically, say a specific user
had admin, maintenance and/or support powers in a region?)
& identifier = {
   type: 'agent',
   arbritarykey: stringvalue,
   morekeys: morevalues,
   etc..
   etc..
}

Limits imposed of course naturally on the amount of keys and values
available and character limit on the strings. It seems like its up to the
client developers how to interpret these. I think, the very first key by
definition should become the most representative name that any client can
use in the most basic form and all other keys left up to interpretation.

What about other profile data? Should there be a agent-domain capability URL
in the client-side facing identifier that a client can use to request a caps
for the profile of this user?

- Nexii

On Tue, Jun 30, 2009 at 8:03 AM, Morgaine <morgaine.dinova@googlemail.com>wrote:

> On Mon, Jun 29, 2009 at 9:41 PM, Joshua Bell <josh@lindenlab.com> wrote:
>
>> Be aware that (firstname, lastname) as a unique identifier within a
>> service is a quirk of Second Life, and not necessarily something that every
>> OGP provider must use. One could imagine services that use single field
>> account identifiers (like most email providers), or allow more flexibility
>> in name choice to match real-world conventions.
>>
>
> +1
>
>>
>> It sounds like we're all agreeing, though - there will be some N-part
>> unique identifier (which may be easily human readable, but may not) issued
>> by an authoritative domain to a user, and given that the domain almost
>> certainly has a globally unique identifier of its own (i.e. DNS name) there
>> is a composition of the two that can give a globally unique identifier for
>> the agent.
>>
>
> +1
>
>>
>> We should also be explicit that these identifiers are not necessarily also
>> used as authentication credentials. Some service providers may want
>> two-factor authentication (e.g. hardware key fob) or private login
>> credentials distinct from any public identifiers for additional security.
>> The 3-tuple login credentials (firstname, lastname, password) which Second
>> Life uses today should not be viewed as the only allowable mechanism.
>>
>
> +1
>
> Joshua, you've provided a very concise and precise summary of the overall
> requirement --- I agree with this entirely.  Condensing it even further, we
> need 3 things, and they are quite independent of each other:
>
>
>    1. Arbitrary in-world name tags, which have only one intent: to provide
>    a customer-satisfying visual name.
>    2. Globally unique identifiers, either UUID or formed by composition of
>    N-part local name @ issuing authority.
>    3. Entirely separate authentication credentials, in other words,
>    unrelated to 1) or 2).
>
>
> Keeping these 3 things entirely disjoint would serve us well in many ways,
> particularly in the key areas of scalability, flexibility, uniqueness, and
> user-friendliness / appropriateness.
>
>
> Morgaine.
>
>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>
>

--0016369205b37fa275046d8cabbf
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hmmm interesting.<br><br>So we have a server-side facing identifier receive=
d by the agent domain:<br>&amp; identifier =3D {<br>
 =A0=A0 type: &#39;account&#39;,<br> =A0=A0 agent_domain: urlstring,<br>
 =A0=A0 account_name: string,<br>
}<br>(Side question, should there be free-reign for server-side facing arbr=
itary data too? Could pose some interesting innovations between regiondomai=
ns and agentdomains.)<br><br>And client-side facing identifier that is dist=
ributed by the server to other agents as necessary received by the agent do=
main: (Should the server be allowed to modify this at will? I could imagine=
 the server wanting to add/remove or edit meaningful entries programmatical=
ly, say a specific user had admin, maintenance and/or support powers in a r=
egion?)<br>
&amp; identifier =3D {<br>
 =A0=A0 type: &#39;agent&#39;,<br> =A0=A0 arbritarykey: stringvalue,<br> =
=A0=A0 morekeys: morevalues,<br>=A0=A0 etc..<br>=A0=A0 etc..<br>}<br><br>Li=
mits imposed of course naturally on the amount of keys and values available=
 and character limit on the strings. It seems like its up to the client dev=
elopers how to interpret these. I think, the very first key by definition s=
hould become the most representative name that any client can use in the mo=
st basic form and all other keys left up to interpretation.<br>
<br>What about other profile data? Should there be a agent-domain capabilit=
y URL in the client-side facing identifier that a client can use to request=
 a caps for the profile of this user?<br><br>- Nexii<br><br><div class=3D"g=
mail_quote">
On Tue, Jun 30, 2009 at 8:03 AM, Morgaine <span dir=3D"ltr">&lt;<a href=3D"=
mailto:morgaine.dinova@googlemail.com">morgaine.dinova@googlemail.com</a>&g=
t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"border-left:=
 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex=
;">
<div class=3D"im">On Mon, Jun 29, 2009 at 9:41 PM, Joshua Bell <span dir=3D=
"ltr">&lt;<a href=3D"mailto:josh@lindenlab.com" target=3D"_blank">josh@lind=
enlab.com</a>&gt;</span> wrote:<br></div><div class=3D"gmail_quote"><div cl=
ass=3D"im">
<blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, =
204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Be aware that (firstname, lastname) as a unique identifier within a service=
 is a quirk of Second Life, and not necessarily something that every OGP pr=
ovider must use. One could imagine services that use single field account i=
dentifiers (like most email providers), or allow more flexibility in name c=
hoice to match real-world conventions.<br>


</blockquote></div><div><br>+1 <br></div><div class=3D"im"><blockquote clas=
s=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, 204, 204); margi=
n: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
It sounds like we&#39;re all agreeing, though - there will be some N-part u=
nique identifier (which may be easily human readable, but may not) issued b=
y an authoritative domain to a user, and given that the domain almost certa=
inly has a globally unique identifier of its own (i.e. DNS name) there is a=
 composition of the two that can give a globally unique identifier for the =
agent.<br>


</blockquote></div><div><br>+1 <br></div><div class=3D"im"><blockquote clas=
s=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, 204, 204); margi=
n: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
We should also be explicit that these identifiers are not necessarily also =
used as authentication credentials. Some service providers may want two-fac=
tor authentication (e.g. hardware key fob) or private login credentials dis=
tinct from any public identifiers for additional security. The 3-tuple logi=
n credentials (firstname, lastname, password) which Second Life uses today =
should not be viewed as the only allowable mechanism.<br>


</blockquote></div><div><br>+1<br><br>Joshua, you&#39;ve provided a very co=
ncise and precise summary of the overall requirement --- I agree with this =
entirely.=A0 Condensing it even further, we need 3 things, and they are qui=
te independent of each other:<br>

<br><ol><li>Arbitrary in-world name tags, which have only one intent: to pr=
ovide a customer-satisfying visual name.</li><li>Globally unique identifier=
s, either UUID or formed by composition of N-part local name @ issuing auth=
ority.</li>

<li>Entirely separate authentication credentials, in other words, unrelated=
 to 1) or 2).</li></ol><br>Keeping these 3 things entirely disjoint would s=
erve us well in many ways, particularly in the key areas of scalability, fl=
exibility, uniqueness, and user-friendliness / appropriateness.<br>

<br><br>Morgaine.<br><br></div></div>
<br>_______________________________________________<br>
ogpx mailing list<br>
<a href=3D"mailto:ogpx@ietf.org">ogpx@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/ogpx" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/ogpx</a><br>
<br></blockquote></div><br>

--0016369205b37fa275046d8cabbf--

From carlo@alinoe.com  Tue Jun 30 07:11:02 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 13E033A6E55 for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 07:11:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.321
X-Spam-Level: 
X-Spam-Status: No, score=-1.321 tagged_above=-999 required=5 tests=[AWL=0.109,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 70XqVYOt-qsb for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 07:11:01 -0700 (PDT)
Received: from viefep12-int.chello.at (viefep12-int.chello.at [62.179.121.32]) by core3.amsl.com (Postfix) with ESMTP id C1E443A6E67 for <ogpx@ietf.org>; Tue, 30 Jun 2009 07:11:00 -0700 (PDT)
Received: from edge05.upc.biz ([192.168.13.212]) by viefep12-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090630141038.WQLB14963.viefep12-int.chello.at@edge05.upc.biz>; Tue, 30 Jun 2009 16:10:38 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge05.upc.biz with edge id AEAb1c0CW0FlQed05EAdto; Tue, 30 Jun 2009 16:10:38 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MLe2r-0006iE-FZ; Tue, 30 Jun 2009 16:10:49 +0200
Date: Tue, 30 Jun 2009 16:10:49 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Infinity Linden <infinity@lindenlab.com>
Message-ID: <20090630141049.GB24477@alinoe.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <20090629105140.GA1053@alinoe.com> <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com> <3a880e2c0906291214g421c5bd8r739b6fb81d5e9836@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3a880e2c0906291214g421c5bd8r739b6fb81d5e9836@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: Meadhbh Siobhan <meadhbh.siobhan@gmail.com>, ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and	OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2009 14:11:02 -0000

On Mon, Jun 29, 2009 at 12:14:07PM -0700, Infinity Linden wrote:
> so yeah. a global identifier of some sort is good. it does not need to
> be an email address, but it will have some of the same
> characteristics: part of it will unambiguously identify the authority
> (i.e. the FQDN of the agent domain host that holds info about the
> agent) and the other half holds the identifier that is unique inside
> that domain. i would vote we use a URI; they have these
> characteristics, and they're not an email address that can be spammed.

Agreed. I'd be fine with an url that includes the authority that holds
my account (login credentials). If only because then all viewers have
a nice point to 'contact' to report abuse.

> but at the end of the day if you want distant systems to be able to
> reference individual agents, you would need a way to address them, and
> unless you wanted to REQUIRE a white list you have to admit the
> possibility that a malicious adversary might try to force the protocol
> or spam you.

I'm not that afraid of spam :). I'm "afraid" that I wouldn't be able
to be a different person in SL, because everyone would be able to
find who I am and what i do in RL with a simple Google on my email
address. This is about privacy.

> i also don't think having two John Jones rezzed in the same region at
> the same time is _that_ big of a problem, provided the region domain
> and the client application have enough information to disambiguate the
> two if it is required.

It's definitely a lesser problem than if there can't be two John Jones
rezzed at the same time!

-- 
Carlo Wood <carlo@alinoe.com>

From infinity@lindenlab.com  Tue Jun 30 07:13:05 2009
Return-Path: <infinity@lindenlab.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8B10D3A6E76 for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 07:13:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.739
X-Spam-Level: 
X-Spam-Status: No, score=-1.739 tagged_above=-999 required=5 tests=[AWL=0.238,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id db9cixffVgWx for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 07:13:04 -0700 (PDT)
Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.242]) by core3.amsl.com (Postfix) with ESMTP id 476FD3A6AC1 for <ogpx@ietf.org>; Tue, 30 Jun 2009 07:13:04 -0700 (PDT)
Received: by an-out-0708.google.com with SMTP id c37so53106anc.4 for <ogpx@ietf.org>; Tue, 30 Jun 2009 07:12:25 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.125.15 with SMTP id x15mr11304595anc.73.1246370722954;  Tue, 30 Jun 2009 07:05:22 -0700 (PDT)
In-Reply-To: <824c8ab70906300134k22af7813o437fd39ad9f0fc1e@mail.gmail.com>
References: <3a880e2c0906280906i2cdcdaa3m3c1b1ef54e4e5fcb@mail.gmail.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com> <20090629161815.GB17251@alinoe.com> <591737.89462.qm@web82608.mail.mud.yahoo.com> <3a880e2c0906291219t1990272fkb276979ebc97d292@mail.gmail.com> <897153.73396.qm@web82601.mail.mud.yahoo.com> <4A4926EE.5060509@lindenlab.com> <e0b04bba0906300003y18207430k95f9b8e901dcff87@mail.gmail.com> <824c8ab70906300134k22af7813o437fd39ad9f0fc1e@mail.gmail.com>
Date: Tue, 30 Jun 2009 07:05:22 -0700
Message-ID: <3a880e2c0906300705u5fa56a65of70019330b128815@mail.gmail.com>
From: Infinity Linden <infinity@lindenlab.com>
To: Nexii Malthus <nexiim@googlemail.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2009 14:13:05 -0000

the LLIDL describes the contents of a message, not it's address. the
construction

  &identifier =3D {
    type: 'account',        ; identifies this as an "account identifier"
    account_name: string,
    first_name: string,     ; optional - first_name and last_name
    last_name: string,      ; identify agent to log in as for accounts
                            ; with more than one agent
  }

describes a portion of the message a client sends to a fixed URL, for
the purpose of authenticating itself. it is assumed that the fixed URL
(the authentication URI) is known before attempting to log in. note
that in the account authentication technique accepts an optional
first_name and last_name to be used if the account associated with the
account_name maps to more than one avatar name.

the processing expectation is that the account_name will be a "long
lived" value. however, if people want to do service resolution with
another process and reference short lived values as account_names,
sure, but i don't really see the benefit in that.

i think my main point here is that the subject authenticates
themselves to an agent-domain specific URI, but a third party queries
an agent specific URI for public information about the subject, and
may use that agent specific URI as an identifier in other protocol to
request more information.

but maybe you're getting at the use of capabilities for privileged
access? here's an example.

1. a user authenticates with the example.com agent domain by
presenting it's credentials for the avatar InnovationGrrl Tester to
http://example.com/service/authenticate (the agent domain's
authentication URI,) receives an agent specific seed cap and a series
of agent specific service capabilities. InnovationGrrl's long lived
public URI is http://example.com/a/1AB69DB3-6A7C-4743-9651-AAFF2458B03D.
And, there's an alias for this public URI at
http://agents.example.com/Tester/InnovationGrrl, but it simply
redirects to the other URI. (the latter is there only if there's a
requirement for human memorable public URIs and to assist people who
use the <firstname>.<lastname>@<gridname> format convert it into a
canonical identifier.)

2. the user teleports to a region hosted at secondlife.com and leaves
an object in an area with auto-return turned on. (i.e. - in a few
minutes, the region will attempt to return the item to the agent.)

3. when the region needs to return the item, it requests a "return
item" capability from the agent domain and sends a (as of yet
undefined) message to the agent domain indicating that it is removing
a particular item from itself and the item needs to be returned to the
agent. the region identifies the agent with the long lived URI:
http://example.com/a/1AB69DB3-6A7C-4743-9651-AAFF2458B03D .

-cheers
-meadhbh

On Tue, Jun 30, 2009 at 1:34 AM, Nexii Malthus<nexiim@googlemail.com> wrote=
:
> Hmmm interesting.
>
> So we have a server-side facing identifier received by the agent domain:
> & identifier =3D {
> =A0=A0 type: 'account',
> =A0=A0 agent_domain: urlstring,
> =A0=A0 account_name: string,
> }
> (Side question, should there be free-reign for server-side facing arbrita=
ry
> data too? Could pose some interesting innovations between regiondomains a=
nd
> agentdomains.)
>
> And client-side facing identifier that is distributed by the server to ot=
her
> agents as necessary received by the agent domain: (Should the server be
> allowed to modify this at will? I could imagine the server wanting to
> add/remove or edit meaningful entries programmatically, say a specific us=
er
> had admin, maintenance and/or support powers in a region?)
> & identifier =3D {
> =A0=A0 type: 'agent',
> =A0=A0 arbritarykey: stringvalue,
> =A0=A0 morekeys: morevalues,
> =A0=A0 etc..
> =A0=A0 etc..
> }
>
> Limits imposed of course naturally on the amount of keys and values
> available and character limit on the strings. It seems like its up to the
> client developers how to interpret these. I think, the very first key by
> definition should become the most representative name that any client can
> use in the most basic form and all other keys left up to interpretation.
>
> What about other profile data? Should there be a agent-domain capability =
URL
> in the client-side facing identifier that a client can use to request a c=
aps
> for the profile of this user?
>
> - Nexii
>
> On Tue, Jun 30, 2009 at 8:03 AM, Morgaine <morgaine.dinova@googlemail.com=
>
> wrote:
>>
>> On Mon, Jun 29, 2009 at 9:41 PM, Joshua Bell <josh@lindenlab.com> wrote:
>>>
>>> Be aware that (firstname, lastname) as a unique identifier within a
>>> service is a quirk of Second Life, and not necessarily something that e=
very
>>> OGP provider must use. One could imagine services that use single field
>>> account identifiers (like most email providers), or allow more flexibil=
ity
>>> in name choice to match real-world conventions.
>>
>> +1
>>>
>>> It sounds like we're all agreeing, though - there will be some N-part
>>> unique identifier (which may be easily human readable, but may not) iss=
ued
>>> by an authoritative domain to a user, and given that the domain almost
>>> certainly has a globally unique identifier of its own (i.e. DNS name) t=
here
>>> is a composition of the two that can give a globally unique identifier =
for
>>> the agent.
>>
>> +1
>>>
>>> We should also be explicit that these identifiers are not necessarily
>>> also used as authentication credentials. Some service providers may wan=
t
>>> two-factor authentication (e.g. hardware key fob) or private login
>>> credentials distinct from any public identifiers for additional securit=
y.
>>> The 3-tuple login credentials (firstname, lastname, password) which Sec=
ond
>>> Life uses today should not be viewed as the only allowable mechanism.
>>
>> +1
>>
>> Joshua, you've provided a very concise and precise summary of the overal=
l
>> requirement --- I agree with this entirely.=A0 Condensing it even furthe=
r, we
>> need 3 things, and they are quite independent of each other:
>>
>> Arbitrary in-world name tags, which have only one intent: to provide a
>> customer-satisfying visual name.
>> Globally unique identifiers, either UUID or formed by composition of
>> N-part local name @ issuing authority.
>> Entirely separate authentication credentials, in other words, unrelated =
to
>> 1) or 2).
>>
>> Keeping these 3 things entirely disjoint would serve us well in many way=
s,
>> particularly in the key areas of scalability, flexibility, uniqueness, a=
nd
>> user-friendliness / appropriateness.
>>
>>
>> Morgaine.
>>
>>
>> _______________________________________________
>> ogpx mailing list
>> ogpx@ietf.org
>> https://www.ietf.org/mailman/listinfo/ogpx
>>
>
>
> _______________________________________________
> ogpx mailing list
> ogpx@ietf.org
> https://www.ietf.org/mailman/listinfo/ogpx
>
>

From carlo@alinoe.com  Tue Jun 30 08:45:39 2009
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BD76A3A6E62 for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 08:45:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.328
X-Spam-Level: 
X-Spam-Status: No, score=-1.328 tagged_above=-999 required=5 tests=[AWL=0.102,  BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5ul65WBMlVeg for <ogpx@core3.amsl.com>; Tue, 30 Jun 2009 08:45:39 -0700 (PDT)
Received: from viefep22-int.chello.at (viefep22-int.chello.at [62.179.121.42]) by core3.amsl.com (Postfix) with ESMTP id 819523A6924 for <ogpx@ietf.org>; Tue, 30 Jun 2009 08:45:38 -0700 (PDT)
Received: from edge01.upc.biz ([192.168.13.236]) by viefep16-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20090630135741.ZVNV8253.viefep16-int.chello.at@edge01.upc.biz>; Tue, 30 Jun 2009 15:57:41 +0200
Received: from mail9.alinoe.com ([77.250.43.12]) by edge01.upc.biz with edge id ADxe1c0150FlQed01Dxfhx; Tue, 30 Jun 2009 15:57:41 +0200
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1MLdqJ-0006X1-JA; Tue, 30 Jun 2009 15:57:51 +0200
Date: Tue, 30 Jun 2009 15:57:51 +0200
From: Carlo Wood <carlo@alinoe.com>
To: Morgaine <morgaine.dinova@googlemail.com>
Message-ID: <20090630135751.GA24477@alinoe.com>
References: <b8ef0a220906290413u5a7358eao300c2ff8ee1ab709@mail.gmail.com> <20090629114512.GC1053@alinoe.com> <b8ef0a220906290751s5131c401h1d55ace39348c89e@mail.gmail.com> <20090629161121.GA17251@alinoe.com> <20090629161815.GB17251@alinoe.com> <591737.89462.qm@web82608.mail.mud.yahoo.com> <3a880e2c0906291219t1990272fkb276979ebc97d292@mail.gmail.com> <897153.73396.qm@web82601.mail.mud.yahoo.com> <4A4926EE.5060509@lindenlab.com> <e0b04bba0906300003y18207430k95f9b8e901dcff87@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <e0b04bba0906300003y18207430k95f9b8e901dcff87@mail.gmail.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] A Review of Multi-Domain Use Cases [Was: Re: OpenID and	OGP : beginning the discussion ...]
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Jun 2009 15:45:39 -0000

On Tue, Jun 30, 2009 at 08:03:28AM +0100, Morgaine wrote:
>  1. Arbitrary in-world name tags, which have only one intent: to provide a
>     customer-satisfying visual name.
>  2. Globally unique identifiers, either UUID or formed by composition of N-part
>     local name @ issuing authority.
>  3. Entirely separate authentication credentials, in other words, unrelated to
>     1) or 2).
> 
> Keeping these 3 things entirely disjoint would serve us well in many ways,
> particularly in the key areas of scalability, flexibility, uniqueness, and
> user-friendliness / appropriateness.
> 
> Morgaine.

While I also totally agree-- I think there is something missing there.
The authentication credentials will be 'constant', of course, but the
way the above is formulated, it could very well be possible that 2) is
not constant (A new UUID could be generated every login).

However, it is necessary that 2) is sent to all the viewers that come
into contact with an agent and in order to be able to recognize/verify
that agent automatically as having been seen before, and not being
an imposter, or even to just be sure you can append to the correct
log file (for example), 2) has to be the same every login.

Therefore, I'd like to propose this:

 1. Arbitrary in-world name tags, which have only one intent: to provide a
    customer-satisfying visual name.
 2. Globally unique identifiers, either UUID or formed by composition of N-part
    local name @ issuing authority, that remain the same over logins for any
    given account and that are passed to every viewer that receives 1).
 3. Entirely separate authentication credentials, in other words, unrelated to
    1) or 2).


-- 
Carlo Wood <carlo@alinoe.com>
