You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by eb...@apache.org on 2015/12/18 16:42:03 UTC

svn commit: r11664 - in /dev/commons/jexl: ./ binaries/ source/

Author: ebourg
Date: Fri Dec 18 15:42:03 2015
New Revision: 11664

Log:
Creating distribution files for JEXL 3.0 RC2


Added:
    dev/commons/jexl/RELEASE-NOTES.txt
    dev/commons/jexl/binaries/commons-jexl-3.0-bin.tar.gz   (with props)
    dev/commons/jexl/binaries/commons-jexl-3.0-bin.tar.gz.asc
    dev/commons/jexl/binaries/commons-jexl-3.0-bin.zip   (with props)
    dev/commons/jexl/binaries/commons-jexl-3.0-bin.zip.asc
    dev/commons/jexl/source/commons-jexl-3.0-src.tar.gz   (with props)
    dev/commons/jexl/source/commons-jexl-3.0-src.tar.gz.asc
    dev/commons/jexl/source/commons-jexl-3.0-src.zip   (with props)
    dev/commons/jexl/source/commons-jexl-3.0-src.zip.asc

Added: dev/commons/jexl/RELEASE-NOTES.txt
==============================================================================
--- dev/commons/jexl/RELEASE-NOTES.txt (added)
+++ dev/commons/jexl/RELEASE-NOTES.txt Fri Dec 18 15:42:03 2015
@@ -0,0 +1,305 @@
+
+                            Apache Commons JEXL
+                                Version 3.0
+                               Release Notes
+
+
+INTRODUCTION:
+=============
+
+JEXL is a library intended to facilitate the implementation of dynamic and scripting features in
+applications and frameworks written in Java.
+
+JEXL implements an Expression Language based on some extensions to the JSTL Expression Language supporting most of the
+constructs seen in shell-script or ECMAScript.
+
+Its goal is to expose scripting features usable by technical operatives or consultants working with enterprise platforms.
+
+
+  http://commons.apache.org/jexl/
+
+
+========================================================================================================================
+Release 3.0
+========================================================================================================================
+
+Version 3.0 is a major release changing the public JEXL API.
+
+Due to binary and source incompatibilities and the scope of modifications, JEXL has moved to the
+org.apache.commons.jexl3 package.
+However, this is a drop-in replacement through JSR-223 and casual code usage should find easy equivalence between
+jexl-2.x and 3.x (besides the package name).
+Also note that JEXL 3.0 now requires Java 6.
+
+
+What's new in 3.0:
+==================
+* A redesigned API that properly segregates the "public" part and the "internal" parts of JEXL.
+* A real difference between Expression and Script (scripts accept statements: for, while, etc).
+* The ability to create JEXL functions in script, closure/variables hoisting/currying included.
+* A set of assignment operators (+=, *= , ...).
+* A set of String matching operators (^= startsWith, $= endsWith) and their negative counterparts (!^, !$)
+* A range operator (x .. y) to ease writing loops (for(var x : 1 .. 10) ... )
+* A literal set syntax to ease creating sets: { 1, 2...}
+
+New features in 3.0:
+====================
+* JEXL-178:     'Unsolvable property' message to provide details about underlying exception
+* JEXL-177:     Unified expressions to be used in String literals in JEXL scripts
+* JEXL-176:     Synonym operator name 'in' for operator =~ // Remove 'foreach...in' syntax
+* JEXL-174:     Overloadable property access operators
+* JEXL-173:     Duck-typed java closures
+* JEXL-170:     Implement assignment operators
+* JEXL-164:     public getters for high/low properties for IntegerRange and LongRange
+* JEXL-152:     Extend Range literal to support Long values
+* JEXL-149:     Set Construction as per EL 3.0 spec
+* JEXL-133:     String matching Operator short-hand inspired by CSS3
+* JEXL-128:     ObjectContext<> should implement NamespaceResolver
+* JEXL-127:     Allow the creation of functions
+* JEXL-123:     Redesign API for stability
+* JEXL-122:     Move JEXL from org.apache.comms.jexl2 to org.apache.commons.jexl3
+* JEXL-136:     Script calls within scripts may fail with number arguments
+* JEXL-135:     Using map as script parameter or local variable
+* JEXL-134:     Issue with evaluation of concat of variables : \r + \n gives 0
+* JEXL-131:     UnifiedJexl parsing may fail with NPE
+* JEXL-130:     Ternary Conditional fails for Object values
+* JEXL-126:     Decimal numbers literals should be 'double' by default (instead of 'float')
+
+
+Bugs Fixed in 3.0:
+==================
+* JEXL-184:     dot-ed identifiers parsing failure
+* JEXL-180:     Documentation - suggests using float for financials
+* JEXL-171:     Map access operator does not work if key name clashes with map property name
+* JEXL-169:     A string is wrongly identified as FloatingPointNumber
+* JEXL-168:     Dedicated operator for String concatenation
+* JEXL-79:      Add support for growable arrays (ArrayLists)
+* JEXL-167:     Possible loss of value when converting BigDecimal to BigInteger
+* JEXL-166:     Incorrect operator symbol for bitwise complement in jexlArithmetic
+* JEXL-163:     empty(new ("java.lang.Long", 4294967296)) returns true
+* JEXL-162:     empty() function throws an exception : unsupported type
+* JEXL-160:     typo in package.html
+* JEXL-158:     Handle locale decimal separators correctly
+* JEXL-157:     Replace File.pathSeparator with File.separator
+* JEXL-146:     Performance problem in Interpreter.unknownVariable mechanism
+* JEXL-145:     Sandbox calling wrong check (classname vs class)
+* JEXL-144:     Empty array property setting fails
+* JEXL-142:     Map expression issue with empty key
+* JEXL-141:     Suffix for Big Decimal and Big Integer Literal is incorrectly mentioned in Java docs
+* JEXL-137:     Invalid script variable list for nested array/map access
+
+Detail of all changes in changes.xml.
+
+
+========================================================================================================================
+Release 2.1.1
+========================================================================================================================
+
+Version 2.1.1 is a micro release to fix a regression detected in 2.1:
+
+* JEXL-124:     Array parameters to methods don't work anymore (JEXL 2.1.1)
+
+There are no other changes.
+
+
+========================================================================================================================
+Release 2.1
+========================================================================================================================
+
+Version 2.1 is a minor release adding new features and fixing known issues detected in 2.0.
+
+Compatibility with previous releases
+====================================
+Version 2.1 is binary compatible with 2.0.1.
+
+However it is not source compatible.
+New methods have been added to the org.apache.commons.jexl2.Script and org.apache.commons.jexl2.JexlInfo interfaces.
+Any source code that implements these interfaces will need to be updated.
+
+What's new in 2.1:
+==================
+* A more thorough arithmetic (JexlArithmetic) that allows fine control over decimals (scale and precision), a
+  new syntax for numeric literals (OGNL inspired Big and Huge notations) and a better type handling keeping the most
+  appropriate representation in casual operations.
+* The introduction of script variables and parameters that reduce context dependencies and methods; this allows to
+  perform checks after script creation (light static checking hints). Plus the ability to call script from scripts.
+* A sandoxing feature to restrict and rename what JEXL can access from the environment allowing tighter control over security.
+* Extensions to UnifiedJEXL that allow the creation of templates.
+
+New features in 2.1:
+====================
+* JEXL-114:     Allow scripts to create local variables // Add return keyword
+* JEXL-113:     Add functions to extract which variables, parameters and local variables are used to evaluate a script
+* JEXL-118:     Provide an IN operator
+* JEXL-115:     Add support for asynchronous script execution and cancellation
+* JEXL-116:     Add control over classes, methods, constructors and properties allowed in scripts
+* JEXL-120:     Add simple template features
+* JEXL-119:     Allow indexed properties container resolution in expressions
+* JEXL-106:     When divide two BigDecimal values in an expression it results in java.lang.ArithmeticException
+* JEXL-102:     Add "jexl2" as a supported name
+
+Bugs Fixed in 2.1:
+==================
+* JEXL-83:      Make JexlArithmetic immutable (and threadsafe)
+* JEXL-24:      Support Long for integer literal instead of Integers
+* JEXL-107:     literals and parenthesized expressions can not be used as references
+* JEXL-108:     parsing error if i define a empty literal array/map
+* JEXL-101:     Vararg methods where the first argument is no vararg can not be called with only the fixed parameters given
+* JEXL-105:     Array literals are considered constant even when they are not
+* JEXL-104:     NPE in JexlArithmetic when an Array-Expression containing a null is used.
+* JEXL-112:     Cannot parse Integer.MIN_VALUE
+* JEXL-111:     expression execute error
+
+Bugs fixed in 2.0.1:
+====================
+
+* JEXL-100:     Array access expressions fail when evaluated twice and cache is enabled
+* JEXL-99:      Documentation of Thread Safety / Invalid code examples on homepage
+* JEXL-98:      Quote escaping cannot be escaped
+
+
+2.0
+==================
+
+Bugs fixed in 2.0:
+==================
+
+* JEXL-90:	JEXL parser allows invalid expressions, e.g. "a=1 b=2 3"
+* JEXL-88:	MethodKey.java - name clash getMostSpecific() with Java 1.5.0
+* JEXL-87:	Inconsistent behaviour of arithmetical operations
+* JEXL-81:	Introspector does not use ListGetExecutor for List
+* JEXL-80:	Lenient mode should not throw exception when {g,s}etting an undefined property
+* JEXL-78:	Ternary operator throws Exception when JexlEngine in strict mode
+* JEXL-76:	Remove unnecessary class VisitorAdapter
+* JEXL-71:	Parsing errors?
+* JEXL-67:	Potential NPE in util.introspection.MethodKey
+* JEXL-66:	testDottedNames expects map enumeration order
+* JEXL-64:	Inconsistent behaviour of dotted names
+* JEXL-62:	NPE in Interpreter
+* JEXL-59:	ClassMap holds a reference to class
+* JEXL-56:	Logging wrongly uses java.util.logging
+* JEXL-50:	Div operator does not do integer division
+* JEXL-49:	Block statements aren't parsed
+* JEXL-48:	NPE during expression evaluation
+* JEXL-45:	Unhandled division by zero
+* JEXL-42:	NullPointerException evaluating an expression
+* JEXL-40:	JEXL fails to find abstract public methods in the base class if overridden by non-public derived types
+* JEXL-32:	BigDecimal values are treated as Long values which results in loss of precision
+* JEXL-30:	ASTAddNode does not add BigDecimal objects correctly
+* JEXL-27:	Cannot assign a value to the property of an object, such as object.prop = value.
+* JEXL-26:	ASTArrayAccess messes up on fallback to JexlContext
+* JEXL-19:	Ternary conditional not supported
+* JEXL-3 :	Static method resolution and changes to context
+
+Other issues fixed (Improvements/New Features):
+===============================================
+
+* JEXL-95:	Enhance JSR-223 implementation
+* JEXL-94:	Allow stateful namespaces (ns:function)
+* JEXL-93:	Add public fields as targets of set/get property
+* JEXL-92:	JexlContext API should be more flexible
+* JEXL-89:	Drop main() and suite() methods from Test cases
+* JEXL-85:	2.0 grammar finishing touches & debugger update
+* JEXL-82:	Change foreach syntax
+* JEXL-77:	Rename last Velocity originated classes
+* JEXL-72:	Remove deprecated classes and methods entirely
+* JEXL-70:	Add main class to allow scripts etc to be tested
+* JEXL-63:	JSR-223 support
+* JEXL-61:	Usage of strong references on Method/Constructor & WeakHashMap usage
+* JEXL-60:	Refactor o.a.c.jexl.util and o.a.c.jexl.util.introspection
+* JEXL-58:	UnifiedJEXL
+* JEXL-57:	Change pom.xml to make it Netbeans Maven2 plugin friendly
+* JEXL-55:	JEXL 2.0 redux, attempting to restart the effort to release 2.0
+* JEXL-54:	Light performance enhancements
+* JEXL-47:	Allow single-line comments with //
+* JEXL-43:	Website overview does not mention method calls and new 2.0 features
+* JEXL-41:	Allow nested ${} evaluation
+* JEXL-35:	Final API requirements
+* JEXL-34:	Remove pre and post resolution of variables via the JexlExprResolver classes.
+* JEXL-33:	Remove unnecessary throws Exception from various classes
+* JEXL-29:	Support non-object-level functions/methods, as size and empty function
+* JEXL-25:	Call method with varargs
+* JEXL-24:	Support Long for integer literal instead of Integers
+* JEXL-21:	operator overloading / hooks on operator processing
+* JEXL-16:	allowing quote escaping
+* JEXL-15:	Needs definable functions
+* JEXL-11:	Don't make null convertible into anything
+* JEXL-10:	Make possible checking for unresolved variables
+
+Other Changes:
+==============
+
+o Add @since 2.0 tags to code so we can track API additions via Javadoc
+
+Upgrading from JEXL 1.x
+=======================
+
+JEXL now requires Java 1.5 or later.
+
+Version 2.0 resides in the org.apache.commons.jexl2 package; part of the version 1.x API is reimplemented as an
+add-on source library in the jexl-compat directory; since it can not fully reimplement the original public 1.x, it may
+only be used to ease transition in strictly controlled deployments.
+
+The following classes are implemented through the jexl-compat source library:
+  * ExpressionFactory
+  * ScriptFactory
+  * Expression
+  * Script
+  * JexlContext
+  * JexlHelper
+
+Migration notes
+===============
+
+When migrating from jexl 1.x to jexl 2.0, the following hints may be helpfull.
+
+The following classes no longer exist:
+  * ExpressionFactory, ScriptFactory: create a JexlEngine and use createExpression() or createScript()
+  instead.
+
+The following classes have been renamed and replaced:
+
+  * VelMethod <=> JexlMethod
+  * VelPropertyGet <=> JexlPropertyGet
+  * VelPropertySet <=> JexlPropertySet
+
+The following methods have been removed:
+
+  * Info.getTemplateName() - use Info.getName() instead
+  * Expression.addPostResolver() / Expression.addPreResolver() - set ant-like variables in JexlContext, implement
+    a specific JexlContext or derive JexlcontextInterpreter/JexlEngine instead
+
+Behavior changes
+================
+
+* Public fields are considered when using JexlPropertyGet / JexlPropertySet: JEXL 1.x behavior can be reimplemented
+by subclassing UberspectImpl.
+
+*Division (/ operator) behavior change: division between integers no longer casts its operands to double; integer division
+    allways results in a integer. The 1.x behavior can be reimplemented by subclassing JexlArithmetic.
+
+New Features:
+=============
+
+Assignment expression: a = b (and a.b.c = d)
+   * Assigns a variable (ant-like variable or bean-property)
+
+Ternary operator expression: a ? b : c  (and a ?: c)
+   * The usual inline conditional shortcut and its 'Elvis' form (a ?: b evaluates as a ? a : b)
+
+Constructor call expression: new('my.class.name', arguments...)
+   * Creates a new instance of a class using the most appropriate constructor according
+     to the actual arguments
+
+Function namespace: ns:func(arguments...)
+   * A function namespace allows the use of class or instance methods in function calls
+
+UnifiedJEXL
+   * Adds ${...} and #{...} JSP/EL syntax support on top of the JexlEngine
+
+JSR-223 support
+   * Implement JSR-223 Scripting Engine for JEXL script (need BSF-3.0 on Java < 6)
+
+Error and exception handling
+   * Configuring the leniency and verbosity of the JEXL engine allows user control over the
+     error handling policy

Added: dev/commons/jexl/binaries/commons-jexl-3.0-bin.tar.gz
==============================================================================
Binary file - no diff available.

Propchange: dev/commons/jexl/binaries/commons-jexl-3.0-bin.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: dev/commons/jexl/binaries/commons-jexl-3.0-bin.tar.gz.asc
==============================================================================
--- dev/commons/jexl/binaries/commons-jexl-3.0-bin.tar.gz.asc (added)
+++ dev/commons/jexl/binaries/commons-jexl-3.0-bin.tar.gz.asc Fri Dec 18 15:42:03 2015
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAABCAAGBQJWdBPJAAoJEPUTxBnkudCsaOIP/jWg74CDQVd7NeRoo18XFJta
+2OjVsh8t/rTy32OZeEQhkHzH5Tg5evlEyGPSSAiQn2FKWxZFfAsxLbEWVkZ1ki/w
+qtRHq4c55KUCY4xsivSG6VPv/FvHCz9lUVxN+eXZ7ePhO2ugFmXsD1tGe9OJrzHc
+Yvu1g/zGP9893cub2lmVQ7C8E0nj4LpSAEDI3zpptMGOY4JhKY/xNJQnF0Denbm6
+3EnUj/n7127KiRxHViba41GBdO739ib+bFydpry0tqZaVikwKqyHlBjhBFF3GykY
+Gp3Bu99QXofoYzk+Pv0ZvxarleQiWUqg2av1r5qGD02bQiPWRvBLglg6OzK9jkXz
+rmY8n76fcGxzO5MVbSHCPvvcX1Pv0ywOMevdZwAFLIUagCf2O7NRZ/oc8JjoQUIm
+OxYIxDf7bhLrhYBSmJ0xdb3xRuCt3YBQhj1K8U1b2VDnyx1Ux14GqJnCmwrw2ExY
+xwtCrZPqob3pL/DQXEVbr2fZ2FPGkaGpdjUBSX3Klu0/GtxE0tVqGXv0UzZzF88r
+VTbi9vDgBLRymwOGx4cgeoYTq0tduWd31FYvcWUZ2rBl1iqAprCk9sv56SahTqn2
+5kjXvfq/qt0KE0emSrMXJLxDhO+z9sJyOXVAa8/CutVYrZSZ40zDl5WNRCir+coh
+ajGa5PDeG9og/hMfXIiA
+=EFSn
+-----END PGP SIGNATURE-----

Added: dev/commons/jexl/binaries/commons-jexl-3.0-bin.zip
==============================================================================
Binary file - no diff available.

Propchange: dev/commons/jexl/binaries/commons-jexl-3.0-bin.zip
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: dev/commons/jexl/binaries/commons-jexl-3.0-bin.zip.asc
==============================================================================
--- dev/commons/jexl/binaries/commons-jexl-3.0-bin.zip.asc (added)
+++ dev/commons/jexl/binaries/commons-jexl-3.0-bin.zip.asc Fri Dec 18 15:42:03 2015
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAABCAAGBQJWdBPKAAoJEPUTxBnkudCs4wwQAIMid/R+1/Jwfkz5HBswOU4l
+VNJkYvd8ThfGYX1ju+Y4PLIi1pdBaFFHzsny4AKgm5DOBIVlBBAoMVtWTgINR6pd
+58LBIU8eYGuDk0rU+miN4VvX9LA7kO2My3grdt5oLCiziW7l4KGfE4xuoMM+HhUb
+p8BsViZQ8yuXvLs9YtYfXN+nMF1PdVV+Xxfv+1rdyz1/6/MOXQJw3BQRbhtlBYM1
+abXMn0gL46PqWsxaDVdqngr+JNJUN2f48Qfh9rYMBa9jv1KJJ6eGSOW3NnELRX0n
+APuNRa1pztcXywEgXDQ53dy3ZsQH6TXhPJWimgtPmJLFBsncUEdWCMn8jQ7156uj
+87T4r5vpfRk7OrC0heaQNNsJThBCT7GyFpy2gprxrYLJXC0+TyvOAXMuKc5YdoWF
+k+vUczPb18VAHMDFNAK25kWo8BRbLrLzUt+kjlyez9Gd+E9PahGe7zwEAqtP+MUK
+oJvV3poXgVszZbW/76k+1WeBufmJOyjrqQ/jCpf9Xuyy1cJWwRd8XbcWlCdZC4R0
+o5nm89SbnFi8CKxKcQ5qVPE3iOf4fxBglUXhhrY3+G1Ru82y9aCtqmv4OvLCapQ1
+JqqiqoHzKC32jAi7H3wKZTsJexToeq/jXn6Ir020HVqHM6Zj1P2nq7RukBsuCcXS
+T2Xo6Y51KS40ho94SdxE
+=igr3
+-----END PGP SIGNATURE-----

Added: dev/commons/jexl/source/commons-jexl-3.0-src.tar.gz
==============================================================================
Binary file - no diff available.

Propchange: dev/commons/jexl/source/commons-jexl-3.0-src.tar.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: dev/commons/jexl/source/commons-jexl-3.0-src.tar.gz.asc
==============================================================================
--- dev/commons/jexl/source/commons-jexl-3.0-src.tar.gz.asc (added)
+++ dev/commons/jexl/source/commons-jexl-3.0-src.tar.gz.asc Fri Dec 18 15:42:03 2015
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAABCAAGBQJWdBPKAAoJEPUTxBnkudCs6+AQALMnBuF+Lw+AVG0+XmWrJmqK
++8E0AT8IDwHis4kaYZx9R3Kc6h1Mk7XdkFgLjEC1UhPb5YnQlfWqVzNl99gqBDDS
+6l9cht5wzoq71fvFjge08PTrcWcyKbuCylkGU7eb4sDp4XGQZMMkPkpWhaJykq1f
+cDh6qbxky1aiXdwvBZ+p0apxZy2J9cU7ayZkb57BjzGEOjsVW9CeOeHp/g52zJJD
+VezTVmzcQ7MXnPtn5ATgnuKQ4hqsLPGkE89FdNTzGh8AXx7pi7D/ZpFv3O9Oluq1
+hO4L7RgoFKLj+g6RVpvIur4hp9VmoHxhTJOGNSJq82LdtR2F9Yfad2dRC48Zgg0U
+0M52RpcNUAWFoImwmQz+Mhrruz6wetd8V2W5+AfXxYhzLkQZk5InNhnkV/iUxKMz
+Klb5LaaX4yo51ohz6tgi5cGbHgyMZ3wm10QDiyCy748oImgOpsYRbcFTBm0+899e
+9wN/3zzRcHiRQXmc1+M8+Lskufjz/LFkhCmqBIFtCd9Ynx1obhT1u+J0wEVcp3vp
+fVsyfuHgMCU+2aOBM7Eqgo5AaLzMFQpfIQKJ8WYvWBr91YpqZyaWXhl/MejbMq/s
+MDYDve+FiCwRP9V5A/nb00cFcAYpJQR/ijisZS4isGnrlC02YPBYFRiwA74y0WqQ
+NM6wJ5ovmP17LpFHjUmh
+=vHCf
+-----END PGP SIGNATURE-----

Added: dev/commons/jexl/source/commons-jexl-3.0-src.zip
==============================================================================
Binary file - no diff available.

Propchange: dev/commons/jexl/source/commons-jexl-3.0-src.zip
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: dev/commons/jexl/source/commons-jexl-3.0-src.zip.asc
==============================================================================
--- dev/commons/jexl/source/commons-jexl-3.0-src.zip.asc (added)
+++ dev/commons/jexl/source/commons-jexl-3.0-src.zip.asc Fri Dec 18 15:42:03 2015
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAABCAAGBQJWdBPKAAoJEPUTxBnkudCsbG0QALf1DvHKt9c42c8bsuQkwmjo
+YDOcrnrt0u7/53nbetS2o33nK0GQNohEY3zqGleyNnTWdZWhzw45g1bB+wwxVQz+
+VzLfYU7v9iIuFJ7R0cZNUkC5CbE7emS322sjQGwIWFwhgjW1OLjr1S31EwnTeu3P
+o6Jf20ap8tmp3hpweLd5zhhxdnhryb2zd1hHWcNqmmNeZbDXE1X9zltmj/3Qm2cQ
+kX0zcZ7EZ3xJy8C4Cg1QFW5LOZF+P+O4dgkIWRIHMLTVMqnYAV8LsmMA9a0Fp4mK
+FqOlCM6229EmWEdE/HbskOBo8Ld7VutNNo/SSMi+ZYHVGP95FSMVHbG4xQx41uvb
+TL1wSl/v2WlXMAUKRz1bcrIZrrevSZZ9QQekZgqvw/Br/NAGFCkF8+gQCVNM0efW
+lSezPrYtc7M95SZEyUvnX0ukW05hiSRXwezedj4cdu/mUc6IXsFeBhdWjbv5e4h9
+V5zQDuLWPTiX6qMAQsA9vqHXYWSO1GQWLePo17Ic4Hy6ZErtCkTQCer3ThiqBQ15
+CLKGkHntqbWmj71YsNmKlKEBRmRE9mXRAsiR8sbBQUcdXdvQFe7PIszr9gbSoJu1
+kwGv6Uevj2myLd0TIJv9pMSvzSWDT9eiHoiya5xyRNiMCjPbsxWOr228ENbl4obm
+CaEivtEeCbPJtJoMUsm+
+=76vH
+-----END PGP SIGNATURE-----