Skip to content

Commit

Permalink
Merge pull request #392 from wking/obsoleted-by
Browse files Browse the repository at this point in the history
Add <obsoletedBy> to licenses and exceptions
  • Loading branch information
goneall authored Mar 24, 2018
2 parents 7fa29e2 + a6df410 commit 0699915
Show file tree
Hide file tree
Showing 29 changed files with 167 additions and 60 deletions.
65 changes: 65 additions & 0 deletions schema/ListedLicense.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
</documentation>
</annotation>
<all>
<element name="obsoletedBys" type="tns:obsoletedBysType" minOccurs="0" maxOccurs="1" />
<element name="crossRefs" type="tns:crossRefsType" minOccurs="0" maxOccurs="1"/>
<element name="notes" type="tns:formattedFixedTextType" minOccurs="0" maxOccurs="1"/>
<element name="text" type="tns:formattedAltTextType" minOccurs="0" maxOccurs="1"/>
Expand All @@ -61,6 +62,7 @@
</documentation>
</annotation>
<all>
<element name="obsoletedBys" type="tns:obsoletedBysType" minOccurs="0" maxOccurs="1" />
<element name="crossRefs" type="tns:crossRefsType" minOccurs="0" maxOccurs="1"/>
<element name="notes" type="tns:formattedFixedTextType" minOccurs="0" maxOccurs="1">
<annotation>
Expand Down Expand Up @@ -165,6 +167,69 @@
</element>
</sequence>
</complexType>
<complexType name="obsoletedBysType">
<annotation>
<documentation xml:lang="en">
<xhtml:p>
<xhtml:code>obsoletedBysType</xhtml:code> is a wrapper for a set of <xhtml:code>obsoletedBy</xhtml:code> entries.
</xhtml:p>
</documentation>
</annotation>
<sequence>
<element name="obsoletedBy" type="tns:obsoletedByType" minOccurs="1" maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="obsoletedByType" mixed="true">
<annotation>
<documentation xml:lang="en">
<xhtml:p>
<xhtml:code>obsoletedByType</xhtml:code> represents a recommended replacement for license expressions containing a given license or exception. The algorithm for determining the recommended replacement in the context of a given license expression is:
</xhtml:p>
<xhtml:ol>
<xhtml:li>Parse the license expression to extract the short identifiers.</xhtml:li>
<xhtml:li>Look up <xhtml:code>obsoletedBy</xhtml:code> entries for the short identifiers.</xhtml:li>
<xhtml:li>If any <xhtml:code>obsoletedBy</xhtml:code> has an <xhtml:code>expression</xhtml:code> attribute that matches the source, the value of that <xhtml:code>obsoletedBy</xhtml:code> is the recommended replacement for that expression. Otherwise, the value of the <xhtml:code>obsoletedBy</xhtml:code> without an expression attribute is the recommended replacement for the short identifier.</xhtml:li>
</xhtml:ol>
<xhtml:p>
For example, the expression <xhtml:code>GPL-2.0+ WITH GCC-exception-2.0</xhtml:code> could be parsed to either of the following short license identifiers:
</xhtml:p>
<xhtml:ul>
<xhtml:li>
<xhtml:p>
<xhtml:code>GPL-2.0+</xhtml:code>, in which case there would be a single <xhtml:code>obsoletedBy</xhtml:code> with no <xhtml:code>expression</xhtml:code> attribute:
</xhtml:p>
<xhtml:p>
<xhtml:code>&lt;obsoletedBy&gt;GPL-2.0-or-later&lt;/obsoletedBy&gt;</xhtml:code>
</xhtml:p>
<xhtml:p>
So the recommended replacement for <xhtml:code>GPL-2.0+</xhtml:code> would be <xhtml:code>GPL-2.0-or-later</xhtml:code>.
</xhtml:p>
</xhtml:li>
<xhtml:li>
<xhtml:p>
<xhtml:code>GPL-2.0</xhtml:code>, in which case there would be two <xhtml:code>obsoletedBy</xhtml:code> elements:
</xhtml:p>
<xhtml:p>
<xhtml:code>&lt;obsoletedBy&gt;GPL-2.0-only&lt;/obsoletedBy&gt;</xhtml:code><xhtml:br/>
<xhtml:code>&lt;obsoletedBy expression="GPL-2.0+"&gt;GPL-2.0-or-later&lt;/obsoletedBy&gt;</xhtml:code>
</xhtml:p>
<xhtml:p>
The element with <xhtml:code>expression="GPL-2.0+"</xhtml:code> matches the initial license expression, so the recommended replacement for <xhtml:code>GPL-2.0+</xhtml:code> is <xhtml:code>GPL-2.0-or-later</xhtml:code>.
</xhtml:p>
</xhtml:li>
</xhtml:ul>
</documentation>
</annotation>
<attribute name="expression" type="string">
<annotation>
<documentation xml:lang="en">
<xhtml:p>
<xhtml:code>expression</xhtml:code> is the license expression which is obsoleted by the expression contained by the element. Defaults to the bare identifier.
</xhtml:p>
</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="altType" mixed="true">
<annotation>
<documentation xml:lang="en">
Expand Down
4 changes: 4 additions & 0 deletions src/AGPL-1.0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
<license isOsiApproved="false" licenseId="AGPL-1.0"
name="Affero General Public License v1.0"
isDeprecated="true" deprecatedVersion="3.1">
<obsoletedBys>
<obsoletedBy>AGPL-1.0-only</obsoletedBy>
<obsoletedBy expression="AGPL-1.0+">AGPL-1.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.affero.org/oagpl.html</crossRef>
</crossRefs>
Expand Down
8 changes: 4 additions & 4 deletions src/AGPL-3.0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
<license licenseId="AGPL-3.0" isOsiApproved="true"
name="GNU Affero General Public License v3.0"
isDeprecated="true" deprecatedVersion="3.0">
<obsoletedBys>
<obsoletedBy>AGPL-3.0-only</obsoletedBy>
<obsoletedBy expression="AGPL-3.0+">AGPL-3.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/agpl.txt</crossRef>
<crossRef>http://www.opensource.org/licenses/AGPL-3.0</crossRef>
</crossRefs>
<notes>
DEPRECATED: Deprecated in lieu of more
explicit license identifier of AGPL-3.0-only
</notes>
<standardLicenseHeader>
Copyright (C) <alt name="copyright" match=".+">[year] [name of author]</alt>
This program is free software: you can redistribute it and/or modify it
Expand Down
8 changes: 4 additions & 4 deletions src/GFDL-1.1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
<license licenseId="GFDL-1.1" isOsiApproved="false"
name="GNU Free Documentation License v1.1"
isDeprecated="true" deprecatedVersion="3.0">
<obsoletedBys>
<obsoletedBy>GFDL-1.1-only</obsoletedBy>
<obsoletedBy expression="GFDL-1.1+">GFDL-1.1-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/old-licenses/fdl-1.1.txt</crossRef>
</crossRefs>
<notes>
DEPRECATED: Deprecated in lieu of more
explicit license identifier of GFDL-1.1-only
</notes>
<standardLicenseHeader>
Copyright (c) <alt name="copyright" match=".+">YEAR YOUR NAME</alt>
. Permission is granted to copy, distribute and/or modify this
Expand Down
8 changes: 4 additions & 4 deletions src/GFDL-1.2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
<license licenseId="GFDL-1.2" isOsiApproved="false"
name="GNU Free Documentation License v1.2"
isDeprecated="true" deprecatedVersion="3.0">
<obsoletedBys>
<obsoletedBy>GFDL-1.2-only</obsoletedBy>
<obsoletedBy expression="GFDL-1.2+">GFDL-1.2-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/old-licenses/fdl-1.2.txt</crossRef>
</crossRefs>
<notes>
DEPRECATED: Deprecated in lieu of more
explicit license identifier of GFDL-1.2-only
</notes>
<standardLicenseHeader>
Copyright (c) <alt name="copyright" match=".+">YEAR YOUR NAME</alt>
. Permission is granted to copy, distribute and/or modify this
Expand Down
8 changes: 4 additions & 4 deletions src/GFDL-1.3.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
<license licenseId="GFDL-1.3" isOsiApproved="false"
name="GNU Free Documentation License v1.3"
isDeprecated="true" deprecatedVersion="3.0">
<obsoletedBys>
<obsoletedBy>GFDL-1.3-only</obsoletedBy>
<obsoletedBy expression="GFDL-1.3+">GFDL-1.3-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/fdl-1.3.txt</crossRef>
</crossRefs>
<notes>
DEPRECATED: Deprecated in lieu of more
explicit license identifier of GFDL-1.3-only
</notes>
<standardLicenseHeader>
Copyright (c) <alt name="copyright" match=".+">YEAR YOUR NAME</alt>
Permission is granted to copy, distribute and/or modify this
Expand Down
4 changes: 3 additions & 1 deletion src/GPL-1.0+.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isDeprecated="true" deprecatedVersion="2.0rc2" isOsiApproved="false" licenseId="GPL-1.0+"
name="GNU General Public License v1.0 or later">
<obsoletedBys>
<obsoletedBy>GPL-1.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html</crossRef>
</crossRefs>
<notes>DEPRECATED: Use GPL-1.0-or-later</notes>
<text>
<titleText>
<p>GNU GENERAL PUBLIC LICENSE
Expand Down
8 changes: 4 additions & 4 deletions src/GPL-1.0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
<license licenseId="GPL-1.0" isOsiApproved="false"
name="GNU General Public License v1.0 only"
isDeprecated="true" deprecatedVersion="3.0">
<obsoletedBys>
<obsoletedBy>GPL-1.0-only</obsoletedBy>
<obsoletedBy expression="GPL-1.0+">GPL-1.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html</crossRef>
</crossRefs>
<notes>
DEPRECATED: Deprecated in lieu of more
explicit license identifier of GPL-1.0-only
</notes>
<standardLicenseHeader>
Copyright (C) <alt name="copyright" match=".+">19xx name of author</alt>
<p>
Expand Down
4 changes: 3 additions & 1 deletion src/GPL-2.0+.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isOsiApproved="true" licenseId="GPL-2.0+" isDeprecated="true" deprecatedVersion="2.0rc2"
name="GNU General Public License v2.0 or later">
<notes>DEPRECATED: Use the license identifier GPL-2.0-or-later</notes>
<obsoletedBys>
<obsoletedBy>GPL-2.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html</crossRef>
<crossRef>http://www.opensource.org/licenses/GPL-2.0</crossRef>
Expand Down
5 changes: 4 additions & 1 deletion src/GPL-2.0-with-GCC-exception.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isDeprecated="true" deprecatedVersion="2.0rc2" licenseId="GPL-2.0-with-GCC-exception"
name="GNU General Public License v2.0 w/GCC Runtime Library exception">
<obsoletedBys>
<obsoletedBy>GPL-2.0 WITH GCC-exception-2.0</obsoletedBy>
<obsoletedBy expression="GPL-2.0-with-GCC-exception+">GPL-2.0-or-later WITH GCC-exception-2.0</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/libgcc1.c;h=762f5143fc6eed57b6797c82710f3538aa52b40b;hb=cb143a3ce4fb417c68f5fa2691a1b1b1053dfba9#l10</crossRef>
</crossRefs>
<notes>DEPRECATED: Use License Expression Syntax and Exceptions list to create equivalent license.</notes>

<text>
<p>insert GPL v2 license text here</p>
Expand Down
5 changes: 4 additions & 1 deletion src/GPL-2.0-with-autoconf-exception.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isDeprecated="true" deprecatedVersion="2.0rc2" licenseId="GPL-2.0-with-autoconf-exception"
name="GNU General Public License v2.0 w/Autoconf exception">
<obsoletedBys>
<obsoletedBy>GPL-2.0 WITH Autoconf-exception-2.0</obsoletedBy>
<obsoletedBy expression="GPL-2.0-with-autoconf-exception+">GPL-2.0-or-later WITH Autoconf-exception-2.0</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://ac-archive.sourceforge.net/doc/copyright.html</crossRef>
</crossRefs>
<notes>DEPRECATED: Use License Expression Syntax and Exceptions list to create equivalent license.</notes>

<text>
<p>insert GPL v2 license text here</p>
Expand Down
5 changes: 4 additions & 1 deletion src/GPL-2.0-with-bison-exception.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isDeprecated="true" deprecatedVersion="2.0rc2" licenseId="GPL-2.0-with-bison-exception"
name="GNU General Public License v2.0 w/Bison exception">
<obsoletedBys>
<obsoletedBy>GPL-2.0 WITH Bison-exception-2.2</obsoletedBy>
<obsoletedBy expression="GPL-2.0-with-bison-exception+">GPL-2.0-or-later WITH Bison-exception-2.2</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://git.savannah.gnu.org/cgit/bison.git/tree/data/yacc.c?id=193d7c7054ba7197b0789e14965b739162319b5e#n141</crossRef>
</crossRefs>
<notes>DEPRECATED: Use License Expression Syntax and Exceptions list to create equivalent license.</notes>
<text>
<titleText>Bison Exception</titleText>

Expand Down
5 changes: 4 additions & 1 deletion src/GPL-2.0-with-classpath-exception.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isDeprecated="true" deprecatedVersion="2.0rc2" licenseId="GPL-2.0-with-classpath-exception"
name="GNU General Public License v2.0 w/Classpath exception">
<obsoletedBys>
<obsoletedBy>GPL-2.0 WITH Classpath-exception-2.0</obsoletedBy>
<obsoletedBy expression="GPL-2.0-with-classpath-exception+">GPL-2.0-or-later WITH Classpath-exception-2.0</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/software/classpath/license.html</crossRef>
</crossRefs>
<notes>DEPRECATED: Use License Expression Syntax and Exceptions list to create equivalent license.</notes>

<text>
<p>insert GPL v2 license text here</p>
Expand Down
5 changes: 4 additions & 1 deletion src/GPL-2.0-with-font-exception.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isDeprecated="true" deprecatedVersion="2.0rc2" licenseId="GPL-2.0-with-font-exception"
name="GNU General Public License v2.0 w/Font exception">
<obsoletedBys>
<obsoletedBy>GPL-2.0 WITH Font-exception-2.0</obsoletedBy>
<obsoletedBy expression="GPL-2.0-with-font-exception+">GPL-2.0-or-later+ WITH Font-exception-2.0</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/gpl-faq.html#FontException</crossRef>
</crossRefs>
<notes>DEPRECATED: Use License Expression Syntax and Exceptions list to create equivalent license.</notes>

<text>
<p>insert GPL v2 license text here</p>
Expand Down
8 changes: 4 additions & 4 deletions src/GPL-2.0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
<license licenseId="GPL-2.0" isOsiApproved="true"
name="GNU General Public License v2.0 only"
isDeprecated="true" deprecatedVersion="3.0">
<obsoletedBys>
<obsoletedBy>GPL-2.0-only</obsoletedBy>
<obsoletedBy expression="GPL-2.0+">GPL-2.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html</crossRef>
<crossRef>http://www.opensource.org/licenses/GPL-2.0</crossRef>
</crossRefs>
<notes>
DEPRECATED: Deprecated in lieu of more
explicit license identifier of GPL-2.0-only
</notes>
<standardLicenseHeader>
Copyright (C) <alt name="copyright" match=".+">yyyy name of author</alt>
<p>
Expand Down
4 changes: 3 additions & 1 deletion src/GPL-3.0+.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isOsiApproved="true" licenseId="GPL-3.0+" isDeprecated="true" deprecatedVersion="2.0rc2"
name="GNU General Public License v3.0 or later">
<obsoletedBys>
<obsoletedBy>GPL-3.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/gpl-3.0-standalone.html</crossRef>
<crossRef>http://www.opensource.org/licenses/GPL-3.0</crossRef>
</crossRefs>
<notes>DEPRECATED: Use the license identifier GPL-3.0-or-later</notes>
<text>
<titleText>
<p>GNU GENERAL PUBLIC LICENSE
Expand Down
5 changes: 4 additions & 1 deletion src/GPL-3.0-with-GCC-exception.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isOsiApproved="true" licenseId="GPL-3.0-with-GCC-exception" isDeprecated="true" deprecatedVersion="2.0rc2"
name="GNU General Public License v3.0 w/GCC Runtime Library exception">
<notes>DEPRECATED: Use License Expression Syntax and Exceptions list to create equivalent license.</notes>
<obsoletedBys>
<obsoletedBy>GPL-3.0 WITH GCC-exception-3.1</obsoletedBy>
<obsoletedBy expression="GPL-3.0-with-GCC-exception+">GPL-3.0-or-later WITH GCC-exception-3.1</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/gcc-exception-3.1.html</crossRef>
</crossRefs>
Expand Down
5 changes: 4 additions & 1 deletion src/GPL-3.0-with-autoconf-exception.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isDeprecated="true" deprecatedVersion="2.0rc2" licenseId="GPL-3.0-with-autoconf-exception"
name="GNU General Public License v3.0 w/Autoconf exception">
<obsoletedBys>
<obsoletedBy>GPL-3.0 WITH Autoconf-exception-3.0</obsoletedBy>
<obsoletedBy expression="GPL-3.0-with-autoconf-exception+">GPL-3.0-or-later WITH Autoconf-exception-3.0</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/autoconf-exception-3.0.html</crossRef>
</crossRefs>
<notes>DEPRECATED: Use License Expression Syntax and Exceptions list to create equivalent license.</notes>

<text>
<p>insert GPL v3 text here</p>
Expand Down
8 changes: 4 additions & 4 deletions src/GPL-3.0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
<license licenseId="GPL-3.0" isOsiApproved="true"
name="GNU General Public License v3.0 only"
isDeprecated="true" deprecatedVersion="3.0">
<obsoletedBys>
<obsoletedBy>GPL-3.0-only</obsoletedBy>
<obsoletedBy expression="GPL-3.0+">GPL-3.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/gpl-3.0-standalone.html</crossRef>
<crossRef>http://www.opensource.org/licenses/GPL-3.0</crossRef>
</crossRefs>
<notes>
DEPRECATED: Deprecated in lieu of more
explicit license identifier of GPL-3.0-only
</notes>
<standardLicenseHeader>
Copyright (C) <alt name="copyright"
match=".+">&lt;year&gt; &lt;name of author&gt;</alt>
Expand Down
4 changes: 3 additions & 1 deletion src/LGPL-2.0+.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isOsiApproved="true" licenseId="LGPL-2.0+" isDeprecated="true" deprecatedVersion="2.0rc2"
name="GNU Library General Public License v2 or later">
<notes>DEPRECATED: Use the license identifier LGPL-2.0-or-later</notes>
<obsoletedBys>
<obsoletedBy>LGPL-2.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html</crossRef>
</crossRefs>
Expand Down
8 changes: 4 additions & 4 deletions src/LGPL-2.0.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
<license licenseId="LGPL-2.0" isOsiApproved="true"
name="GNU Library General Public License v2 only"
isDeprecated="true" deprecatedVersion="3.0">
<obsoletedBys>
<obsoletedBy>LGPL-2.0-only</obsoletedBy>
<obsoletedBy expression="LGPL-2.0+">LGPL-2.0-or-later</obsoletedBy>
</obsoletedBys>
<crossRefs>
<crossRef>http://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html</crossRef>
</crossRefs>
<notes>
DEPRECATED: Deprecated in lieu of more
explicit license identifier of LGPL-2.0-only
</notes>
<standardLicenseHeader>
Copyright (C) <alt name="copyright" match=".+">year name of author</alt>
This library is free software; you can redistribute it and/or modify it
Expand Down
Loading

0 comments on commit 0699915

Please sign in to comment.