Re: Purpose of licensing info
Philip Odence
I think the concept is sound and, as Rockett says, consistent. Minor stuff: - I agree with Peter that we may want to tweak the names and the descriptions. - Description under Asserted still says "detected" in a few places. Great progress on a thorny issues. Phil On Jan 13, 2011, at 4:16 PM, Esteban Rockett wrote:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: Purpose of licensing info
Esteban Rockett <mgia3940@...>
Kate:
toggle quoted message
Show quoted text
Thank you for sending. Agree 100%. All: This issue has been a continually thought of all founders since the origins of SPDX. The below is consistent with the original intent of SPDX, and direction of the SPDX Core Team, SPDX Legal Workstream, and Linux Foundation Member Counsel. I look forward to finalizing in the meeting tomorrow. Many thanks, Rockett Many thanks, Rockett On 2011-01-13, at 11:46 AM, <kate.stewart@...> wrote:
Based on discussions on the SPDX call today, I think we are closing in on the following proposal for the file level to address the concerns raised by Open Logic. There will be a special call tomorrow at 9am EST to get resolution on this issue. Please let Esteban Rockett or myself know, off-list, if you are interested in participating and were not in the legal call yesterday or the coordination call today. Proposal: section 5.3 (License(s)) of the spec will become 3 fields: 5.3a Asserted License 5.3a.1 Purpose: This field contains the license governing the file if it can be determined. If no license information can be determined, the license is denoted as “Unknown”. The licenses should use the standard short form names. See Appendix I for standardized license short forms. If a Detected License is not one of the standardized license short forms, this field must contain a reference to the full licenses text included in this SPDX file in section 4. If more than one license is detected in the file, then each should be listed. If any of the detected licenses offer the recipient a choice of licenses, then each of the choices will be declared as a “disjunctive” license. 5.3a.2 Intent: Here, the intent is to have a uniform method to refer to the license that is determined to represent the file with specificity to eliminate any license confusion. For example, the 3 clause BSD would have a different license identifier then the 4 clause BSD. 5.3a.3 Cardinality: Mandatory, one. 5.3a.4 Tag: "LicenseAsserted:" 5.3a.5 RDF: TBD (include Disjunctive form here) 5.3a.6 Data Format: <short form identifier in Appendix I> | "FullLicense"-N 5.3a.7 Example: LicenseAsserted: GPL-2.0 5.3b Detected License(s) 5.3b.1 Purpose: This field contains the license governing the file if it is known. It will be explicit from the file header or other information found in the file’s source code. If no license information is found it should be denoted as “NotSpecified”. If no license information can be determined, the license is denoted as “Unknown”. The licenses should use the standard short form names. See Appendix I for standardized license short forms. If a Detected License is not one of the standardized license short forms, this field must contain a reference to the full licenses text included in this SPDX file in section 4. If more than one license is detected in the file, then each should be listed. If any of the detected licenses offer the recipient a choice of licenses, then each of the choices will be declared as a “disjunctive” license. 5.ba.2 Intent: Here, the intent is to have a uniform method to refer to each license with specificity to eliminate any license confusion. For example, the 3 clause BSD would have a different license identifier then the 4 clause BSD. 5.3b.3 Cardinality: Mandatory, one or many. 5.3b.4 Tag: "LicenseDetected:" 5.3b.5 RDF: TBD (not including disjunctive form, if multiple many should be specified ) 5.3b.6 Data Format: <short form identifier in Appendix I> | "FullLicense"-N 5.3b.7 Example: LicenseDetected: GPL-2.0 LicenseDetected: FullLicense-2 5.3c License Comments 5.3c.1 Purpose: This field is a detailed description of the analysis and any relevent background references that went in to making the asserted license for a file, if the asserted license does not match the detected license that the person creating the SPDX file wants to share with the reviewers. 5.3c.2 Intent: Here, the intent is to provide technical readers/reviewers with a detailed technical explanation of how the asserted license was determined if it does not match the detected license. 5.3c.3 Cardinality: Optional, single instance 5.3c.4 Tag: “LicenseComments:” 5.3c.5 RDF: TBD 5.3c.6 Data Format: free form text than can span multiple lines, preceded with <text> and ending with </text>. 5.3c.7 Example: LicenseComments: <text> The asserted license was taken from the package level that the file was included in. </text> The above is preliminary at this point, so needs some polishing. I've entered it in bugzilla (http://bugs.linux-foundation.org/show_bug.cgi?id=625), so after the discussion tomorrow, feel free to subscribe, and make improvements there. Kate _______________________________________________ Spdx mailing list Spdx@... https://fossbazaar.org/mailman/listinfo/spdx |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: Purpose of licensing info
Peter Williams <peter.williams@...>
What about naming the field that represents the actual license of a
toggle quoted message
Show quoted text
file/package "License". In the current spec File already has such a property so all that would have to be done is adjust the verbiage slightly and make it apply to packages too. "LicenseDetected" is a little ambiguous for what this field actually represents. "DeclaredLicenses" would be clearer. "DeclaredLicenses" also has the advantage already being defined on package and it means the same thing there. We could just make that property apply to files too. Peter openlogic.com On Thu, Jan 13, 2011 at 12:46 PM, <kate.stewart@...> wrote:
Based on discussions on the SPDX call today, I think we are closing in on the following proposal for the file level to address the concerns raised by Open Logic. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: Purpose of licensing info
kate.stewart@...
Based on discussions on the SPDX call today, I think we are closing in on the following proposal for the file level to address the concerns raised by Open Logic.
There will be a special call tomorrow at 9am EST to get resolution on this issue. Please let Esteban Rockett or myself know, off-list, if you are interested in participating and were not in the legal call yesterday or the coordination call today. Proposal: section 5.3 (License(s)) of the spec will become 3 fields: 5.3a Asserted License 5.3a.1 Purpose: This field contains the license governing the file if it can be determined. If no license information can be determined, the license is denoted as “Unknown”. The licenses should use the standard short form names. See Appendix I for standardized license short forms. If a Detected License is not one of the standardized license short forms, this field must contain a reference to the full licenses text included in this SPDX file in section 4. If more than one license is detected in the file, then each should be listed. If any of the detected licenses offer the recipient a choice of licenses, then each of the choices will be declared as a “disjunctive” license. 5.3a.2 Intent: Here, the intent is to have a uniform method to refer to the license that is determined to represent the file with specificity to eliminate any license confusion. For example, the 3 clause BSD would have a different license identifier then the 4 clause BSD. 5.3a.3 Cardinality: Mandatory, one. 5.3a.4 Tag: "LicenseAsserted:" 5.3a.5 RDF: TBD (include Disjunctive form here) 5.3a.6 Data Format: <short form identifier in Appendix I> | "FullLicense"-N 5.3a.7 Example: LicenseAsserted: GPL-2.0 5.3b Detected License(s) 5.3b.1 Purpose: This field contains the license governing the file if it is known. It will be explicit from the file header or other information found in the file’s source code. If no license information is found it should be denoted as “NotSpecified”. If no license information can be determined, the license is denoted as “Unknown”. The licenses should use the standard short form names. See Appendix I for standardized license short forms. If a Detected License is not one of the standardized license short forms, this field must contain a reference to the full licenses text included in this SPDX file in section 4. If more than one license is detected in the file, then each should be listed. If any of the detected licenses offer the recipient a choice of licenses, then each of the choices will be declared as a “disjunctive” license. 5.ba.2 Intent: Here, the intent is to have a uniform method to refer to each license with specificity to eliminate any license confusion. For example, the 3 clause BSD would have a different license identifier then the 4 clause BSD. 5.3b.3 Cardinality: Mandatory, one or many. 5.3b.4 Tag: "LicenseDetected:" 5.3b.5 RDF: TBD (not including disjunctive form, if multiple many should be specified ) 5.3b.6 Data Format: <short form identifier in Appendix I> | "FullLicense"-N 5.3b.7 Example: LicenseDetected: GPL-2.0 LicenseDetected: FullLicense-2 5.3c License Comments 5.3c.1 Purpose: This field is a detailed description of the analysis and any relevent background references that went in to making the asserted license for a file, if the asserted license does not match the detected license that the person creating the SPDX file wants to share with the reviewers. 5.3c.2 Intent: Here, the intent is to provide technical readers/reviewers with a detailed technical explanation of how the asserted license was determined if it does not match the detected license. 5.3c.3 Cardinality: Optional, single instance 5.3c.4 Tag: “LicenseComments:” 5.3c.5 RDF: TBD 5.3c.6 Data Format: free form text than can span multiple lines, preceded with <text> and ending with </text>. 5.3c.7 Example: LicenseComments: <text> The asserted license was taken from the package level that the file was included in. </text> The above is preliminary at this point, so needs some polishing. I've entered it in bugzilla (http://bugs.linux-foundation.org/show_bug.cgi?id=625), so after the discussion tomorrow, feel free to subscribe, and make improvements there. Kate |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SPDX General Meeting link
Philip Odence
Note: I realize that the link I sent our for the webshare has an older date embedded in it. Please ignore and use it anyway. Thanks, Phil L. Philip Odence Vice President of Business Development Black Duck Software, inc. 265 Winter Street, Waltham, MA 02451 Phone: 781.810.1819, Mobile: 781.258.9502
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Purpose of licensing info
Peter Williams <peter.williams@...>
There has been a bit of discussion in the technical working group
about the role of judgments in spdx. It has been suggested that information that is the result of human, or automated heuristic, judgment should disallowed/discouraged in spdx files. This has lead me to wonder a about the primary purpose of the licensing parts of spdx. Do we intended for spdx files to convey the actual licenses under which a package is copyable? Or should spdx files convey the just licenses under which a package is explicitly stated/declared to be copyable? The actual licensing of a package is often not fully and explicitly stated. (Files don't have header, code snippets are copied, etc.) Therefore if spdx conveys the actual licensing of a package this will require representing human/heuristic judgments. Conveying the actual licensing will also mean that two spdx files for the same package might disagree regarding the licensing. This could happen because one was generated by a person or tool that discovered more facts. (For example, a tool might detect that some of the code in a file appears to originate from some other project while a human on their own might not.) Or it could result from different judgments being made from the same information. If we limit spdx to conveying only the stated/declared licensing we would avoid inharmonious spdx files. This would be achieved by precluding judgments (or limiting the types of allowed judgments to a very small set). However, consumers would not be able to treat spdx files as an authoritative guide to the licensing of the package. The set of declared/explicitly stated licenses would often be incomplete and sometimes it would be erroneous. The beta spec states that "information that cannot be derived from an inspection (whether manual or using automated tools) of the package to be analyzed" is "not covered in the specification". This would seem to imply that judgments about what licenses a package was copyable under would be allowed if those judgments where based in discoverable facts. However, i am not sure it is entirely cut and dry. I think some this issue bares some discussion in the larger group. Are technical judgments regarding the licensing of the files and packages acceptable and/or desirable in spdx files? Peter openlogic.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agenda for Thursday's SPDX General Meeting
Philip Odence
Meeting Time: Dec 2, 8am PDT / 10 am CDT / 11am EDT / 16:00 UTC. http://www.timeanddate.com/worldclock/converter.html Conf call dial-in: Conference code: 7812589502 Toll-free dial-in number (U.S. and Canada): (877) 435-0230 International dial-in number: (253) 336-6732 For those dialing in from other regions, a list of toll free numbers can be found: https://www.intercallonline.com/portlets/scheduling/viewNumbers/viewNumber.do?ownerNumber=6053870&audioType=RP&viewGa=false&ga=OFF Web: Note, we will be using a different URL for each meeting for purposes of taking attendance. When you login PLEASE INCLUDE YOUR FULL NAME IN THIS FORM: Phil Odence, Black Duck Software so I can just copy/paste into minutes. THX. http://blackducksoftware.na6.acrobat.com/spdx2dec10 Administrative Agenda
Technical Team Report - Kate Business Team Report - Kim/JohnE
Legal Team Report - Rockett/Karen Cross Functional Issues - Phil Action Items Most of the action items belong with the Teams. So, in addition to statusing, we will dispatch them to the respective teams and will not continue to track in this meeting. Action items for this meeting will be cross functional. • Kate/Kim- Draft example for LF Member Counsel; include XML and spreadsheet. PENDING • MichaelH/Rockett- Write up and share postion on "reporting" vs. "interpreting. PENDING • Rockett- Post regular meeting times on Legal Team page. PENDING • MartinM- Report back on # of people on respective mailing lists. DONE, BUT LET'S KEEP UPDATING L. Philip Odence Vice President of Business Development Black Duck Software, inc. 265 Winter Street, Waltham, MA 02451 Phone: 781.810.1819, Mobile: 781.258.9502
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Updated Invitation: SPDX Legal Workstream Bi-Weekly Call 11ET/10CT/8PT @ Wed Jan 12 8am - 9am (spdx@fossbazaar.org)
Esteban Rockett <mgia3940@...>
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Updated Invitation: SPDX Legal Workstream Bi-Weekly Call 11ET/10CT/8PT @ Every 2 weeks from 8am to 9am on Wednesday from Wed Jan 12 to Wed Dec 14 (spdx@fossbazaar.org)
Esteban Rockett <mgia3940@...>
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Invitation: SPDX Legal Workstream (Rollout) Call 11ET/10CT/8PT @ Every 2 weeks from 8am to 9am on Wednesday from Wed Jan 12 to Wed Dec 14 (spdx@fossbazaar.org)
Esteban Rockett <mgia3940@...>
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: SPDX Web Site Linkes Appear to be broken
Martin Michlmayr
This was caused by a Drupal upgrade I did earlier today. The issue
toggle quoted message
Show quoted text
has not been fixed yet (<http://drupal.org/node/1019788>) so I downgraded to the previous version. * Tom Incorvia <tom.incorvia@...> [2011-01-09 16:07]: Hi SPDX Team, _______________________________________________ --
Martin Michlmayr Open Source Program Office, Hewlett-Packard |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SPDX Web Site Linkes Appear to be broken
Tom Incorvia
Hi SPDX Team,
Most of the links on the SPDSX site are not working – I was trying to get to the license list.
Tom
This message has been scanned for viruses by MailController. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Minutes from Business Call
Kim Weins
Hi All
Minutes are now available. http://www.spdx.org/wiki/business-team-meeting-agendaminutes-20110106 We spent most of the call talking about the Beta program. We are targeting Feb 3rd to have an introductory call with all of the potential beta sites (5 to date) to go over details of the program, what we are asking them to do, what we will be providing them, etc. Our next business team call is in 2 weeks — Jan 20th Kim |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Next SPDX General Meeting
Philip Odence
To avoid any confusion, I wanted to make clear that the next SPDX General Meeting is next Thursday, January 13. There would have been a meeting last week, but we cancelled it due to the holidays; Jan 13 follows that date by two weeks. I'll send out a reminder, agenda and dial-in info a few days before. Best, Phil L. Philip Odence Vice President of Business Development Black Duck Software, inc. 265 Winter Street, Waltham, MA 02451 Phone: 781.810.1819, Mobile: 781.258.9502
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reminder: SPDX Business (Rollout) Call in 15 minutes
Kim Weins
------ Original Appointment
From: kim.weins@... When: 9:00 AM - 10:00 AM December 9, 2010 Subject: SPDX Business (Rollout) Call 11ET/8PT Location: See dial in below US 866-740-1260 Int'l http://www.readytalk.com/support/international-numbers.php ID 2404502 Web Meeting Www.readytalk.com ID 2404502 Agenda We will be covering several areas on the rollout plan. 1. Beta process 2. User Content - what is needed 3. Evangelism and outreachOccurs every 2 week(s) on Thursday effective Thu 12/9/10 ------ End Of Original Appointment |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
trying it out for size
Federico Lucifredi
Hello SPDX,
I have been lurking in the background for a while now; I maintain man(1) and I keep a DOAP file on the project site, I thought I would take a crack at SPDX: http://primates.ximian.com/~flucifredi/man/SPDX.rdf I first drafted this in the fall, so the spec may have drifted from there, but I would be interested in critique/comments. Let's have it. Best -F -- _________________________________________ -- "'Problem' is a bleak word for challenge" - Richard Fish (Federico L. Lucifredi) - flucifredi@... - GnuPG 0x4A73884C |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: License List 1.4 posted on SPDX site
Tom Incorvia
Hi Jilayne,
Thanks for getting the next rev of the license list out!
Regarding the BSD licenses: I did some of the original work on the BSD licenses. Below is the post from June 2010. Fine if we rethink, but FYI below is the logic that the “early” team used to come up with the long names.
The key issue that we tried to address was that the BSD licenses are inconsistently referred to with adjectives including “Original”, “New”, “Old”, “Modified”, “Simplified” and “Free”.
These adjectives are also often combined inconsistently or outright incorrectly causing additional confusion. We agreed on the # clauses as being definitive for the short names. The current long names that were chosen were a compromise to have the names be as distinct as possible while retaining as much of the naming “lineage” as possible.
The June emails on this topic is below.
Tom =============================== From: Tom Incorvia
One of my tasks from the last call was to propose BSD license long and short names.
Here are the names and logic. These have been integrated into Kate’s list.
BSD License Naming:
Lots of confusion has resulted from the BSD licenses being named with various adjectives including Original, New, Old, Modified, Simplified and Free. These adjectives are also combined, often, and incorrectly, causing additional confusion.
Suffixing with the number of clauses ,however, is quite consistent, so I propose that we do that for the short names as specified below.
- BSD-4-Clause - BSD-3-Clause - BSD-2-Clause
Regarding the long names, to limit the confusion we include accepted, non-overlapping adjectives for each. The long names below reflect the most consistent use of the adjectives historically used to describe the BSD. The only exception is that “New and Simplified” is NOT used in the long name. This combination, although somewhat common, consistently obscures whether the license is the “New” (3-clause) or “Simplified FreeBSD” (2-Clause). Best to avoid this phrase.
Proposed long names are below:
- BSD 4-Clause “Original” or “Old” License - BSD 3-Clause “New” or “Revised” License - BSD 2-Clause “Simplified” or “FreeBSD” License
Tom
===============================
Mobile: (408) 499 6850 From: spdx-bounces@... [mailto:spdx-bounces@...] On Behalf Of Jilayne Lovejoy
http://www.spdx.org/wiki/working-version-license-list
Items of note: Older versions of various licenses have been added. Zlib and libpng licenses are both included.
Only remaining issue that I don’t think we addressed was the naming of the BSD licenses. Currently the long title includes the various common names, e.g. “BSD 3-clause "New" or "Revised" License” This is certainly makes it most identifiable and I didn’t have any better idea of how to handle the various ways these licenses are referred to, so I left as-is.
Happy Holidays!
Jilayne Lovejoy | Corporate Counsel
720 240 4545 | phone 720 240 4556 | fax 1 888 OpenLogic | toll free
OpenLogic, Inc. Headquarters, Broomfield, Colorado 80021
Click here to report this email as spam. This message has been scanned for viruses by MailController. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
License List 1.4 posted on SPDX site
Jilayne Lovejoy <Jlovejoy@...>
http://www.spdx.org/wiki/working-version-license-list
Items of note: Older versions of various licenses have been added. Zlib and libpng licenses are both included.
Only remaining issue that I don’t think we addressed was the naming of the BSD licenses. Currently the long title includes the various common names, e.g. “BSD 3-clause "New" or "Revised" License” This is certainly makes it most identifiable and I didn’t have any better idea of how to handle the various ways these licenses are referred to, so I left as-is.
Happy Holidays!
Jilayne Lovejoy | Corporate Counsel
720 240 4545 | phone 720 240 4556 | fax 1 888 OpenLogic | toll free
OpenLogic, Inc. Headquarters, Broomfield, Colorado 80021
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: zlib and libpng licenses clarification
Tom "spot" Callaway
On 12/22/2010 07:37 PM, Jilayne Lovejoy wrote:
Instead of all three variations, we could just have the OSI one, whichFor SPDX, I suppose it makes sense to take the templated zlib and call it "zlib", and call the libpng variant "libpng", even though I don't think Fedora will ever make that distinction. ~tom == Fedora Project |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
My screw up on SPDX biz call this AM
Kim Weins
I told everyone we were planning to have it, and then forgot myself. Holiday brain I guess. We’ll reconvene post-holidays. Kim On Thu 12/23/10 9:09 AM, "Philip Odence" <podence@...> wrote:
Kim Weins | Senior Vice President, Marketing kim.weins@... Follow me on Twitter @KimAtOpenLogic 650 279 0410 | cell www.openlogic.com Follow OpenLogic on Twitter @OpenLogic OpenLogic, Inc. Headquarters, Broomfield, Colorado |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|