From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Fri Oct 27 07:26:52 2017 Return-Path: X-Original-To: m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe Delivered-To: m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe Received: from sonic317-36.consmr.mail.ne1.yahoo.com (sonic317-36.consmr.mail.ne1.yahoo.com [66.163.184.47]) by mail.eclipse.org (Postfix) with ESMTP id 9D3EB17D57B for ; Fri, 27 Oct 2017 07:26:51 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1509103612; bh=evLXv29NPUSiuMVdtBGAqOPT5+leWLb3Xl1CGOjFMqw=; h=Date:From:To:Subject:References:From:Subject; b=sUBA6r8gcC1GGO+LLiFtAdsoMTKp2nh7DC9xfZu4P5dsiCNh8Xk0sDQjAvo2SrJIUlNDjDCLY09mqS2GWPqVzDs2n3t7AHkL3OQH7MrNvNKFq62qFZAxqgzBU6ely4C/8K5LFoFRO/qxM7ptfXTKGCTnjTRlCP3rvQo8CrXSVo1sYTf8VBXBPHWQp4WbBmT3b/LzRcyngNUNj8k52oPWNAonk5Y6LdcyY67MQ+GHjxPMuSUw6tzWuIq5NKC4lNZfT+G7wX6RG5J4zq1c8JJxE9QmjoV9dphCmttdERaauIcYq3PnX/EINx3GhHH5PCfDzqkaUHweNxR8wVoAgrYHiA== X-YMail-OSG: 0t8xOngVM1lAD_BNm5u61aXmWNKg2WSEnItbltXEVjey3gWE4PTjjaK_nw5MmwT 4T6LenrS75B0XPLtYcKWqM0wWsb7aS33Z5A5zPKcoCQ8uXb0R2iA0hZerHXJNT942Homuw5u2jS8 e._JGTL2p6zdyP81WuQPAyHQpkjDIUGmvIZ27rU4X1VOQhDKOUQOuBz0gRhvCL_Y6tjdBjiaU6Zg OAEj44cIIfcIeT7E9Cd2.ULqmihKEReqi0_82S3Bi30XPD0VuyZX1NCqmvwMVkpeiTzzISwY1YZM v1KPbdnFNedJ2uSNHXYVgpjNw0sVO6oQCWn1kGF79nLuv2vk6RijkT5bNzrmIclEdpX8IMcLMXv8 lDkiAGef39JJ8HumzicLK4nCdq6HtZud8NdhntuU4ZDbjp9c5FYm3JRdyb4UVSsnUvf.OT61jmYD q8hMXhDMNLnPMswgR7TPsC4_.GW5qdb4Jdq8khCB0iG9YCmKj Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.ne1.yahoo.com with HTTP; Fri, 27 Oct 2017 11:26:52 +0000 Date: Fri, 27 Oct 2017 11:26:08 +0000 (UTC) From: Mark Struberg To: "m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe" Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_5450387_1538068683.1509103568509" References: X-Mailer: WebService/1.1.10801 YMailNorrin Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:56.0) Gecko/20100101 Firefox/56.0 Subject: [ConfigJSR-experts] [ANN] Welcome to JSR-382 - Configuration API for Java, v1.0 X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2017 11:26:52 -0000 ------=_Part_5450387_1538068683.1509103568509 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Good evening Lords and Ladies! Emily and I would like to welcome you to this new JSR. Firstly, we would like to thank the MicroProfile Community, the Eclipse Foundation, the JCP and all others who made this JSR possible! We intend to to only use this very list for official announcements (subject "[ANN]") and votes (subject "[VOTE]"). All other traffic - especially technical discussions - will happen on the ConfigJSR-discuss [at] eclipse.org mailing list. You can register there by sending an email to ConfigJSR-discuss-join [at] eclipse.org. thanks,Emily & Mark(JSR-382 spec leads) ------=_Part_5450387_1538068683.1509103568509 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit
Good evening Lords and Ladies!

Emily and I would like to welcome you to this new JSR.

Firstly, we would like to thank the MicroProfile Community, the Eclipse Foundation, the JCP and all others who made this JSR possible!


We intend to to only use this very list for official announcements (subject "[ANN]") and votes (subject "[VOTE]").

All other traffic - especially technical discussions - will happen on the ConfigJSR-discuss [at] eclipse.org mailing list.

You can register there by sending an email to ConfigJSR-discuss-join [at] eclipse.org.


thanks,
Emily & Mark
(JSR-382 spec leads)
------=_Part_5450387_1538068683.1509103568509-- From Di5JOAgaGMajQ7RX@iguBx6V4wYlUCuIg Fri Dec 1 15:47:23 2017 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-wr0-f174.google.com (mail-wr0-f174.google.com [209.85.128.174]) by mail.eclipse.org (Postfix) with ESMTP id 809A92DD482 for ; Fri, 1 Dec 2017 15:47:22 -0500 (EST) Received: by mail-wr0-f174.google.com with SMTP id x49so11360243wrb.13 for ; Fri, 01 Dec 2017 12:47:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sebastian-daschner-com.20150623.gappssmtp.com; s=20150623; h=to:from:subject:message-id:date:user-agent:mime-version :content-transfer-encoding:content-language; bh=Gt1y1OPe+okv8JKoTOFXz8lCLZ3CScTCd2ukNRoq9Qg=; b=ORMNQzkrgeKwzL9SKcPrpxr7xFx+ZczUVjz5QH6Wz6+6g/yh6HbHzp8PZXkLVhAlB4 NwIZ5BS5gDs3v4HP9Pq5xruE8x/5Jc2LNORt7J3NHfrvoKC/am4o/VHRXEX7bonpoOAA +o4XR0oyeYk0Sh4dWTDuXECZUOVVkZXHFuGTovLX1MLqBcIZi7xf0/qwsqrkyVdE8p3X jsWsXAFEdvjbPJTvuclOdJf/YTbcIYL1oOo2uWtUfy1TLGirsLxzNYwiB/byUmfJqWHb uRHdLyO8YiFXgWzbaceO1jku7jUEJmBIVGINDmbQF+VA2dkXTealenCNLgMHLR6YcZg7 6fuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-transfer-encoding:content-language; bh=Gt1y1OPe+okv8JKoTOFXz8lCLZ3CScTCd2ukNRoq9Qg=; b=isD3WfCoxyElF8C2on0wVpSbkJrPC2VjCJZWPcdTPzyGHK2Cq3tJLtfww/mvYoyWAA V23MCpyE3LhCtsTbC2hHiHMQchZ1J8LX0qYc4w9Bsdr+zRZmVQIVh3P4FSeXh4V4+FA6 L+fJquhIrwlIPZmoeAp87xZzebhxnk+hiVGOT0XKP1uxGNBKd3gbkJYn8U42m3oXVwhf UM+fURE63a4FRmEnHgqtuKkjNr1NQAu9EPrc6ZLUjjUPyRcfTTLszibWPGlyskp+AFsS P0CXEO35SkBD3XE2C5dD4epWOs6SyN6+UVyGW+rn8LSTUirXtfkonjnrDb3LSrXWXhsN rghg== X-Gm-Message-State: AJaThX5ZVsMkr0/o5poN+wtvhFHnMSGu+ko53d8+A0d7RDSBvaPoWIQv Glx54hC1OmF0PHjWE88uKxFxnqyOgQ8= X-Google-Smtp-Source: AGs4zMY96tt5xbyqlDdccWP1ik1aDr1rO4ALwJJHzfjDuHrp8S3muRudKLqJzKAaUAehzx+MKn2sMA== X-Received: by 10.223.189.135 with SMTP id l7mr6661058wrh.231.1512161242415; Fri, 01 Dec 2017 12:47:22 -0800 (PST) Received: from [192.168.1.100] (aftr-88-217-180-158.dynamic.mnet-online.de. [88.217.180.158]) by smtp.gmail.com with ESMTPSA id p200sm1976633wmd.9.2017.12.01.12.47.20 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 Dec 2017 12:47:21 -0800 (PST) To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe From: Sebastian Daschner Message-ID: Date: Fri, 1 Dec 2017 21:47:10 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: [ConfigJSR-experts] Hello World X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Dec 2017 20:47:23 -0000 Hi, Testing the mailing list as asked in Gitter. @Emily, does it work for you? Cheers, Sebastian     From X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0 Sat Dec 2 06:01:45 2017 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-io0-f171.google.com (mail-io0-f171.google.com [209.85.223.171]) by mail.eclipse.org (Postfix) with ESMTP id 0BDC82DD7BB for ; Sat, 2 Dec 2017 06:01:44 -0500 (EST) Received: by mail-io0-f171.google.com with SMTP id w127so13879863iow.11 for ; Sat, 02 Dec 2017 03:01:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=AuWYAQnqnMOdo6PgazZ0mDCZ+Px5/5dn1yimSjqRI+Q=; b=Eq5UxttK48DHQtP7vECxGi+yDygHsB3THk7lD+aBGcNMQzJE/CtHu8vJlNOLo3Vzsg Y+j2qqHvwnxV5jn2YtOhXcBNzZFrjc38rvhaeVLG2arcmEsnIbc5UBJ8zlPGK5qOMFF5 o14rbOTaMjEYoSuxBmqQDK5l1WcSuViEdxiIkBFnP0JqyaMoqTLmQtgsPcuGl9SdGE6C 4WJ0ZPQIe4dNJT5nr1wL6rlQk2zvDQxC82VcsW9CA8yOf5HTP260LUtWfIfdux9aTdjn qWCOhC0zKV5ezNjkkTxKOifMmFB39D47zZ9FR1Cz2ttkC2KtATyOIpF48g1nUoCFPDzJ Jkgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=AuWYAQnqnMOdo6PgazZ0mDCZ+Px5/5dn1yimSjqRI+Q=; b=PUm8TEqLZ0OciG7cE6yDdyWpzjmGpHnoa/Dk1KFtdrvS9g5qZg2YOQ8/FUe4ZPiI3i 9G55uNy3yYfvMZolRIgug2ZRuWvRRgvqTcRAfXbUtZyL3xDO9gNrslA7r7j0UJbM1LDW 7dYM7C/+3i4iaH7qqry2vvKG/mg2nQfowGB18WFk8flKtkY1nobnt84EzMhqW/DEIcdL eaEk8Gu/nmWvDuAgsXfWXcH386XFEvVIUfNiii4Tk4tRt1qgg7MsErSy8vPsv+ScwzJI to4XpomFyzC/IOcpzkorrf8C7WkDbFlqLkW1asbjpi1Cj7rK8eHHcq+5cYh4/83oaSgl jEew== X-Gm-Message-State: AJaThX7Dvz3wIjAlxz6PQcaQlVVD06MpCyMIE8CsLeDdok1pKwTqe0M6 9A9OpXZdbB/NNz5/skwGJ4XHSGy+SVPxqkPkazc= X-Google-Smtp-Source: AGs4zMZn4Npga22ZX9xOFcgIuJuYXzyA7n7Cr7Z4f+fKzCK3z4Wb+TQuU6O/S69mydVyu66oPINiFCcUtt3rbBSdqJQ= X-Received: by 10.107.28.131 with SMTP id c125mr17377580ioc.268.1512212504509; Sat, 02 Dec 2017 03:01:44 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.182.139 with HTTP; Sat, 2 Dec 2017 03:01:43 -0800 (PST) Received: by 10.107.182.139 with HTTP; Sat, 2 Dec 2017 03:01:43 -0800 (PST) In-Reply-To: References: From: Anatole Tresch Date: Sat, 2 Dec 2017 12:01:43 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="001a113fddfa280121055f5969b9" Subject: Re: [ConfigJSR-experts] Hello World X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Dec 2017 11:01:45 -0000 --001a113fddfa280121055f5969b9 Content-Type: text/plain; charset="UTF-8" Success! J Anatole Am 01.12.2017 21:47 schrieb "Sebastian Daschner" < Di5JOAgaGMajQ7RX@iguBx6V4wYlUCuIg>: > Hi, > > Testing the mailing list as asked in Gitter. > > @Emily, does it work for you? > > Cheers, > Sebastian > > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --001a113fddfa280121055f5969b9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Success!
J Anatole

Am 01.12.2017 21:47 schrieb= "Sebastian Daschner" <Di5JOAgaGMajQ7RX@iguBx6V4wYlUCuIg>:
Hi,

Testing the mailing list as asked in Gitter.

@Emily, does it work for you?

Cheers,
Sebastian
=C2=A0=C2=A0=C2=A0

_______________________________________________
ConfigJSR-experts mailing list
ConfigJSR-experts@eclipse.= org
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts
--001a113fddfa280121055f5969b9-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Fri Dec 22 06:35:23 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from sonic306-19.consmr.mail.ir2.yahoo.com (sonic306-19.consmr.mail.ir2.yahoo.com [77.238.176.205]) by mail.eclipse.org (Postfix) with ESMTP id C7BDD2DCCE5 for ; Fri, 22 Dec 2017 06:35:21 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1513942522; bh=7ihiXM9YdZqKIXBUTxJuy2n8VzsB1ZpqcWEz3IpPg6w=; h=From:Subject:Date:Cc:To:From:Subject; b=l5rd5GAFNh/rwmuXxC5XdslKeseTfb8iMFjdeqEIv+cC+0AXheo24pzLPOVA3pz42cXWuu/KBREMrs2EXhDT+0XE057Rlxj9Z0+/vCk3S8CU0xb8vdJiu53h/cygr0m8LBo3ACGO/naFXu5qEZCfr6qm0EOP7g4ZKSDgPL5rJ2ZggiYZ3EG38K6geao3LNK6K753v7z7FmORTe5DQUAofigzrcGEm2oEX04doRczOXr90SjPGXQ9cNRgz8WyTvMBZEs6Dc/gFInfQmg+Mro1VNzJQQU01HwH+SNX//gc3EVSCBD/b2JT+g9UhvlYgz2hA+otk27COph9yt9bY1As2Q== X-YMail-OSG: 3MiYeYkVM1mfJAubDHYlYlGPy9ZkhdnrxkC4h8pHelZApTMsL9PXI7uFKZZQjOv D74bcm9XivdB3nOfj5EYwQ8rqYDgNL8Mi4z16nrKtoI79wd8ou79z4H87JhNMv0i5B0.wZH6hQk. k9IQFvjrwDqgltQuATUjFg1fYCdYiIFShRqcDqPUtP80VhK1rW9JKlCALe7cYj4.oS_lX9d0GHvL bWXDUCRw4B36ayeD5KGPx36vBGYz1PWHG0CQGsJpSitfuYc7NELnN0XYY7e2GPQu3iAz8qragvR5 ncpOEFdcbgyuvx.aITdaqkGy7M3aHXhL4lyeVUzkASOq2dv8iq_CWqO6NnfGllLJK3aWAdMDFGue qgit8wL6MIht99zwNRNzu17E9L7Nde4Iw4H277mBh_E9Z8g8NfXblM9p9PXNMwnIktmI20oQCDB0 w3VLQieQJF.9EwNF1Ox3tfgPYCLhZQQqwy3wzk1J6gEpJjqF9LLVRHGbemqRt9aXaKA-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.ir2.yahoo.com with HTTP; Fri, 22 Dec 2017 11:35:22 +0000 Received: from smtpgate104.mail.ir2.yahoo.com (EHLO [192.168.0.234]) ([217.146.188.5]) by smtp413.mail.ir2.yahoo.com (JAMES SMTP Server ) with ESMTPA ID 4b65089f7890b8bb301f2cc9ed8ee72b; Fri, 22 Dec 2017 11:35:19 +0000 (UTC) From: Mark Struberg Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.1 \(3445.4.7\)) Message-Id: Date: Fri, 22 Dec 2017 12:35:17 +0100 To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe X-Mailer: Apple Mail (2.3445.4.7) X-Mailman-Approved-At: Fri, 22 Dec 2017 06:38:38 -0500 Cc: Emily Jiang , "John D. Ament" , Hendrik Ebbers , Jean-Louis Monteiro , David Blevins , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk Subject: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Dec 2017 11:35:23 -0000 Good evening! In ticket #13 and spread out in microprofile-config we had a long = discussion about which conditions must be met to make a Class being = picked up with an implicit converter. The following 3 options are on the table so far: A.) The original idea: * constructor(String); * valueOf(String);=20 * parse(String); B.) Basically A but also take CharSequence as parameter * constructor with String of CharSequence parameter * valueOf with String of CharSequence parameter * parse with String of CharSequence parameter C.) A mixed approach * constructor(String); * valueOf(String);=20 * parse(CharSequence); Please vote with the number and an explanation why it should be taken. We will tally the results on our next EG meeting.=20 My personal VOTE is +1 for option B. Reason: We have tons of static T parse(CharSequence) in java.time. That = means we realls should support CharSequence for parse.=20 Otoh there are many constructors, parse and valueOf with both String but = also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some = methods with String params and other methods with CharSequence (option = c) would imo lead to confusion for users. txs and LieGrue, strub PS: adding all EG members to cc as I'm not 100% sure if the EG list = already works properly.= From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Fri Dec 22 07:05:28 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from sonic303-20.consmr.mail.ir2.yahoo.com (sonic303-20.consmr.mail.ir2.yahoo.com [77.238.178.201]) by mail.eclipse.org (Postfix) with ESMTP id A25A22DCD11 for ; Fri, 22 Dec 2017 07:05:27 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1513944328; bh=MudJPSf9UkMrflLBxYgT8qS2xbf3OLqpbFI3LIeT6Ws=; h=From:Subject:Date:To:From:Subject; b=GInvnil8WSztjVGVa/8Ig6tBQyVvxtnkbzOz5CwBwGYpbMU5SNq8F4zPxImfiudSihTrZoysaiD/X4WbO1LMSkx1aSqL6EHhZOktZAYW7ZSdYO6EiA1juqUcP73oheYQ5/tpzI7Ck/SBGC/palhwbYrrAuTNSjouDvjds91pSMQVMiAWKATCcFreEMw+cyf6Rrp+So2C8jq+TVVPh5cm5wnMNPQCAor0u5K/YyylcoFOmyfFFCIAyr56x/z/UFrZoSWAEj9oW3tEMw29pKoOrY9NJuNqITAXMQPPiinw7h69uKBg5Xv7v+MtnNsFIS7rvo4ZossNtCZmrMQebYHzrg== X-YMail-OSG: TWlEImgVM1lrwgyNx9gNySq7E9_1bHI39_AhAQ5TIWI6e0iInAVz9zVIZC2EkDT qwvW2KN4KEXL65_oKChbLR8_e5862KMDA4hW5RCB9Fyz0cTxfc7YycxWhsfrDqWk_Lf1KD_Y8SBB gsaW2vlKXr1NFlD6XARdDCdnfz_GMHI0cvT81oHK6nhp_4ryCaCmVI0NRHmFEoelsLyqtnG02yfV rHmk24PHrfvGGzHy4xCmBBlHPVXYo4Jo9pzwcAxXPJhE3kA5c6OHq9V8a3IiyJrrgCbIoZnpYHBX WUXfbc.CJZHZfsmElnzA0V66ql3QKOq9Dtp93YhU7EFLpCJB6HgT.7qANZws9zPr1.PVBXg3T4W3 Lp4zhYrO9gQ1z3ZFgQjddk3GPoiTM7X7eG_bebFQQyj3UUCZZM6YyWl4mMw2UmVff6mZMnJsat2F Ey1SOYtLadBAl49wFl4AEcMHzZRoJDFXo7UEeuyJ_8z1goAcU7c3YjBw5DNUx_PVebg-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ir2.yahoo.com with HTTP; Fri, 22 Dec 2017 12:05:28 +0000 Received: from smtp167.mail.ir2.yahoo.com (EHLO [192.168.0.234]) ([46.228.39.34]) by smtp404.mail.ir2.yahoo.com (JAMES SMTP Server ) with ESMTPA ID 9697787adbc7dec38db4ef1a5fd49153 for ; Fri, 22 Dec 2017 12:05:23 +0000 (UTC) From: Mark Struberg Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.1 \(3445.4.7\)) Message-Id: Date: Fri, 22 Dec 2017 13:05:21 +0100 To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe X-Mailer: Apple Mail (2.3445.4.7) Subject: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Dec 2017 12:05:29 -0000 Good evening! In ticket #13 and spread out in microprofile-config we had a long = discussion about which conditions must be met to make a Class being = picked up with an implicit converter. The following 3 options are on the table so far: A.) The original idea: * constructor(String); * valueOf(String);=20 * parse(String); B.) Basically A but also take CharSequence as parameter * constructor with String of CharSequence parameter * valueOf with String of CharSequence parameter * parse with String of CharSequence parameter C.) A mixed approach * constructor(String); * valueOf(String);=20 * parse(CharSequence); Please vote with the number and an explanation why it should be taken. We will tally the results on our next EG meeting.=20 My personal VOTE is +1 for option B. Reason: We have tons of static T parse(CharSequence) in java.time. That = means we realls should support CharSequence for parse.=20 Otoh there are many constructors, parse and valueOf with both String but = also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some = methods with String params and other methods with CharSequence (option = c) would imo lead to confusion for users. txs and LieGrue, strub PS: resending due to mailing list issues (hopefully fixed)= From Di5JOAgaGMajQ7RX@iguBx6V4wYlUCuIg Fri Dec 22 09:01:06 2017 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53]) by mail.eclipse.org (Postfix) with ESMTP id CD1CD2DCCDA for ; Fri, 22 Dec 2017 09:01:06 -0500 (EST) Received: by mail-wm0-f53.google.com with SMTP id 9so21979312wme.4 for ; Fri, 22 Dec 2017 06:01:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sebastian-daschner-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=kTy2mTCowsHpNOEM1dwwxGfdY76P+qi49RTN/sXK4po=; b=0wUfB8pqhncfe2w5D5xuWEkYc1wPbUhrDTnlfdrPhsBA9GftH6cvmnPtkP6OkxV4uC k6aVJJfhDBghlkknSfzLg/+IYCsiXRx8n4GQ9T2lmE2mUMGitc13mO32EIKJqW38ETMC Zi6AzQOGYd4NONxptcbfhkkhIvBqhwykxTJSR9LLz6weeh+IyJ8dhDxGAvaEHcjMOiAM oJz4N9jKBT6QLn2iyeFqkr3gufpjx4W1WX9XxKJswDG4sTYE4IkH+mkwwxSd39MIzd5M rIxMMAnFPnNlTE/SjECxhU8W70ymcplge29b1oYkRSNKPZqdDDJaEmfsAXqXueKUBGV4 PUgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=kTy2mTCowsHpNOEM1dwwxGfdY76P+qi49RTN/sXK4po=; b=uLuKH60g6Ma93XTV17s3yiWVtXbvvvFfoAp5YizMkpzm7hfRTUCiBAkWa4EBa3aIA+ 4lRR10XeXXLfKR94g29Rld7nteD2/IWvRrIzmE1x9IWAl68dQHfJyMfeTSTX2wtDTf18 yhw+VBIAZ5liaJ/YNfJWDVv/AJukkcJ+rNjxy9GtKLOiFjkPoAm4WSHmWZX6hNmvF1Al cRfvK9AStu8wqJORpvncTUKQlR9fBnhQob/7G5ir64qdi06O2bkGFFpJ1EiuSFUTY2IE z5ZbpL1SD4yYFLfNCOuhNVLliK2iE2t8cSwMLGgPxcp+SLR3o5QtG/sqsdkugMZ+tNj8 KW1A== X-Gm-Message-State: AKGB3mLoe4vPzERCVs4APaYoC7OIj2N2+9mqrmBR5lkXyVhaI8SPO8kE A/lHYMUX6DNgId1RGYQxL/7cYxjMOHE= X-Google-Smtp-Source: ACJfBosWmmALEgFv492pTTOXcmYa71Bqia2cPKDkxXWOJecGckKiE+CiHP9enq+fKmcXZKG/gRXfRg== X-Received: by 10.80.165.41 with SMTP id y38mr15173670edb.72.1513951265808; Fri, 22 Dec 2017 06:01:05 -0800 (PST) Received: from ?IPv6:2001:a61:4609:1e01:f68c:50ff:fe99:aec6? ([2001:a61:4609:1e01:f68c:50ff:fe99:aec6]) by smtp.gmail.com with ESMTPSA id c2sm16903735edi.66.2017.12.22.06.01.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Dec 2017 06:01:04 -0800 (PST) To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe References: From: Sebastian Daschner Message-ID: Date: Fri, 22 Dec 2017 15:01:01 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Dec 2017 14:01:07 -0000 +1 for option B. Reason: parse(CharSequence) methods that are existent in java.time are covered by this approach and thus it simplifies the spec. Adding the CharSequence parameter to all three methods (unlike option C) is more consistent. Cheers, Sebastian     On 12/22/2017 01:05 PM, Mark Struberg wrote: > Good evening! > > In ticket #13 and spread out in microprofile-config we had a long discussion about which conditions must be met to make a Class being picked up with an implicit converter. > > The following 3 options are on the table so far: > > A.) The original idea: > * constructor(String); > * valueOf(String); > * parse(String); > > B.) Basically A but also take CharSequence as parameter > * constructor with String of CharSequence parameter > * valueOf with String of CharSequence parameter > * parse with String of CharSequence parameter > > C.) A mixed approach > * constructor(String); > * valueOf(String); > * parse(CharSequence); > > > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting. > > > > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. That means we realls should support CharSequence for parse. > Otoh there are many constructors, parse and valueOf with both String but also CharSequence in the JDK and many highly used libraries like Apache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods with String params and other methods with CharSequence (option c) would imo lead to confusion for users. > > txs and LieGrue, > strub > > > PS: resending due to mailing list issues (hopefully fixed) > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Sat Dec 23 06:18:10 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from sonic311-30.consmr.mail.ir2.yahoo.com (sonic311-30.consmr.mail.ir2.yahoo.com [77.238.176.162]) by mail.eclipse.org (Postfix) with ESMTP id AA3E72DCEF7 for ; Sat, 23 Dec 2017 06:18:10 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1514027890; bh=4slokk+1KrdxtvlA4ZPSQyvusfexosjBLybK49Ei3CI=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject; b=m7sFTdEKOmIV1oTFG88kX/0VvTsGitniFEFa+dXC1DR0Ry3nIri0BrxjSWown94id3iRexYLIYQwmk3GlUTjO5bCNR5eGzWamXS0upMRJICy/ISbDSAGr/3DlWWzjIpQIS/rUi6gwqn8Q3guyPsy3L9hDs7hCng83Z6rdj48WIYCBSXtsVcwGN0GHGLngCp0qG4APMCqAuWqpoJ5KBPx0OP2hs2f7keMtXzMyMTU242KI2UhdqTCd1Tib7V/TxlF/zM6BdS13+5uHt5NjuWe28Ft3Dq4UQs/0rAwvFW8OIRNz2rIvK+NpyUAtukM2nrckKmJJ+gfTxyEmoXz2HbEuw== X-YMail-OSG: s72M2NUVM1mWRsqCTYWUDao7WR6L3f_gNtCKqfYMlNFbu_MMPppTan6wl7PtsO0 NLKX2_MU4X2qIS_TnCWnJvI8yvLYrsfMy4_DW87LhrWdYMawdKWw7fVmJfUaQth5QPWBZQ9puDTM pZPqB7r69R4Q.2HCh39fO4N6_ezYBBqjrbH7_1mS6gdmXw9GY8HtSIzp0MAPbVeYyp8_l8iLLYW7 10cGma.USXXmCPHyU68iYIB1gy7Z29CLFkCT8lYHzKRFdUHjytC5ybxOlGO2wOmU5mA4Ztr2oAEd Gj3pycUhJprMqt7FV5NDGSL06VdOVxVi0oHRlqnLSQbBtlEuYQGLbAJk1zz2RI._kMlf3T4jm7CT a8qTvNP9kbA597W6.CTfkHX4_FXj8iMNV9JBsVELMFx3giM3EVkUmndy0Gh_NCBiyIR69QpgqAJR G.FDC9JQars1CIOsovMvZGJ66_9QrDQ9RcWeuDTxvvvTrebPHhebKOAOOiWiDa4CKGFyqIZhQKfA 63z55RT4CXMuTmX7VDQ-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.ir2.yahoo.com with HTTP; Sat, 23 Dec 2017 11:18:10 +0000 Received: from smtp171.mail.ir2.yahoo.com (EHLO [192.168.0.234]) ([46.228.39.38]) by smtp406.mail.ir2.yahoo.com (JAMES SMTP Server ) with ESMTPA ID 80d0e33a77bb39a1fc2a33c9504f2f69; Sat, 23 Dec 2017 11:18:05 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 11.1 \(3445.4.7\)) From: Mark Struberg In-Reply-To: Date: Sat, 23 Dec 2017 12:17:05 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: "John D. Ament" X-Mailer: Apple Mail (2.3445.4.7) Cc: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Dec 2017 11:18:11 -0000 Hi John! TL;DR: only String and CharSequence are elegible types long version: Sebastian and I took a serious look into exactly that.=20 And when finally trying it out we figured that it's not worth it.=20 The simple reason is that we only get a String out of the ConfigSources. = And String only has the types {Object.class, CharSequence.class, = String.class}.=20 If you would have a class public class SomeFoo implements CharSequence {..} and a method=20 static T valueOf(SomeFoo); =20 then how to create a SomeFoo instance to pass to valueOf? We only have the String from ConfigSource.getValue(). Yea, it's kind of obvious, but Sebastian and I also only figured this on = the last meters so to say ;) Actually when trying to implement it in geronimo-config. LieGrue, strub > Am 22.12.2017 um 23:03 schrieb John D. Ament : >=20 > Mark, >=20 > Could you clarify, for B) is it all methods that take String or = CharSequence? Or any method that can take an implementation of = CharSequence (e.g. StringBuilder/StringBuffer)? >=20 > John >=20 > On Fri, Dec 22, 2017 at 6:35 AM Mark Struberg = wrote: > Good evening! >=20 > In ticket #13 and spread out in microprofile-config we had a long = discussion about which conditions must be met to make a Class being = picked up with an implicit converter. >=20 > The following 3 options are on the table so far: >=20 > A.) The original idea: > * constructor(String); > * valueOf(String); > * parse(String); >=20 > B.) Basically A but also take CharSequence as parameter > * constructor with String of CharSequence parameter > * valueOf with String of CharSequence parameter > * parse with String of CharSequence parameter >=20 > C.) A mixed approach > * constructor(String); > * valueOf(String); > * parse(CharSequence); >=20 >=20 > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting. >=20 >=20 >=20 > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. = That means we realls should support CharSequence for parse. > Otoh there are many constructors, parse and valueOf with both String = but also CharSequence in the JDK and many highly used libraries like = Apache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of = some methods with String params and other methods with CharSequence = (option c) would imo lead to confusion for users. >=20 > txs and LieGrue, > strub >=20 >=20 > PS: adding all EG members to cc as I'm not 100% sure if the EG list = already works properly. From UtlswAFHPlyAKawQ@RwKIriitWfeDKzz0 Fri Dec 22 17:03:39 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-vk0-f50.google.com (mail-vk0-f50.google.com [209.85.213.50]) by mail.eclipse.org (Postfix) with ESMTP id B31602DCD78 for ; Fri, 22 Dec 2017 17:03:39 -0500 (EST) Received: by mail-vk0-f50.google.com with SMTP id j192so18179060vkc.1 for ; Fri, 22 Dec 2017 14:03:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ISrAOhmofl9GVNvh2+yE7cA0pibYWNyygA2MztmO5k8=; b=KAW00djiF7VTXtoL881YoJAGPx+hLGBBuPXxGffFhPU2rf/U5tPK/nqAepSGs1K1Nm uXlIcQGNmT0tzGyLerY4Bbc3IvUarJoJ4KRfW0CwWPQho6CG6pFbxeXuXlw1N4OtwlA2 ZodXMQgYH2vwJtkKRpmB5KkaDm3oJGzCizrLWQcCDfyafL+gWBcHr2At+yuiJKpD1k43 hCvnzlWlAADABpbkaOjyB6tAnLOAmmAyaZTwomXn/S4rhM60E9ht2BND6uyXF27yA+W+ 0CB84dUGalTjK3XtIivTYnUarbY9BrtQP545xSVZmsSha3s0itGmZGtPxSOWPFcrpEDq fjpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ISrAOhmofl9GVNvh2+yE7cA0pibYWNyygA2MztmO5k8=; b=KzUFyjTS2D0NOvUFwuNtl4CVDvHXkKypi5hkOj1AQpnXkN9kuu0MeJoUJfv4IMckbf 2fqch3v2z+rZI4VpaKcQKwA+SN20Gl1OWTcdJs7ZnCPlGQQWzAljpWWW23EK3YnG4dPO 0KxjxJNJP23atCYte42n/5s3lYM88O2lNS7z/FkhKGdQjm6W6nTXm4YFvNfUW/rG+Bck 9BNcOpiJzeyI2nCBt2NMHXwNkWHZrFLWwPOximjePDQw0I2JbZZ9vm/44VkIxFyT1+6W 39mW/P3NbulCYzdmEr/ITP8uPvkBB+ROxeg8ylNfNmQ0ny7tG+eucRkco7ES5jihhjdi c+wQ== X-Gm-Message-State: AKGB3mLG4n5O4+ZzRvHV09/2f05I31PNcZgehypZ1hK6yU5Q7eGlilY3 Ygu/YIuMqlceRm5XA8obdil2o47g6/mLt60COzo= X-Google-Smtp-Source: ACJfBosymOJ9Y8QA6MHl9kI2iFID/JBVXrs/bkgjqVbSr/ZhoqS4ssVkfSpniaEeroQPLOIn/6QHBDikFibxVAnCaoM= X-Received: by 10.31.137.138 with SMTP id l132mr15070268vkd.58.1513980218673; Fri, 22 Dec 2017 14:03:38 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: "John D. Ament" Date: Fri, 22 Dec 2017 22:03:27 +0000 Message-ID: To: Mark Struberg Content-Type: multipart/alternative; boundary="001a1145940e218e0b0560f4fd7d" X-Mailman-Approved-At: Sat, 23 Dec 2017 06:23:18 -0500 Cc: Emily Jiang , kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe, Hendrik Ebbers , Jean-Louis Monteiro , David Blevins , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Dec 2017 22:03:39 -0000 --001a1145940e218e0b0560f4fd7d Content-Type: text/plain; charset="UTF-8" Mark, Could you clarify, for B) is it all methods that take String or CharSequence? Or any method that can take an implementation of CharSequence (e.g. StringBuilder/StringBuffer)? John On Fri, Dec 22, 2017 at 6:35 AM Mark Struberg wrote: > Good evening! > > In ticket #13 and spread out in microprofile-config we had a long > discussion about which conditions must be met to make a Class being picked > up with an implicit converter. > > The following 3 options are on the table so far: > > A.) The original idea: > * constructor(String); > * valueOf(String); > * parse(String); > > B.) Basically A but also take CharSequence as parameter > * constructor with String of CharSequence parameter > * valueOf with String of CharSequence parameter > * parse with String of CharSequence parameter > > C.) A mixed approach > * constructor(String); > * valueOf(String); > * parse(CharSequence); > > > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting. > > > > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. That > means we realls should support CharSequence for parse. > Otoh there are many constructors, parse and valueOf with both String but > also CharSequence in the JDK and many highly used libraries like Apache > commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods > with String params and other methods with CharSequence (option c) would imo > lead to confusion for users. > > txs and LieGrue, > strub > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list > already works properly. --001a1145940e218e0b0560f4fd7d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Mark,

Could you clarify, for B) is it a= ll methods that take String or CharSequence?=C2=A0 Or any method that can t= ake an implementation of CharSequence (e.g. StringBuilder/StringBuffer)?

John

On Fri, Dec 22, 2017 at 6:35 AM Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
Good evening!

In ticket #13 and spread out in microprofile-config we had a long discussio= n about which conditions must be met to make a Class being picked up with a= n implicit converter.

The following 3 options are on the table so far:

A.) The original idea:
=C2=A0* constructor(String);
=C2=A0* valueOf(String);
=C2=A0* parse(String);

B.) Basically A but also take CharSequence as parameter
=C2=A0* constructor with String of CharSequence parameter
=C2=A0* valueOf with String of CharSequence parameter
=C2=A0* parse with String of CharSequence parameter

C.) A mixed approach
=C2=A0* constructor(String);
=C2=A0* valueOf(String);
=C2=A0* parse(CharSequence);


Please vote with the number and an explanation why it should be taken.
We will tally the results on our next EG meeting.



My personal VOTE is +1 for option B.
Reason: We have tons of static T parse(CharSequence) in java.time. That mea= ns we realls should support CharSequence for parse.
Otoh there are many constructors, parse and valueOf with both String but al= so CharSequence in the JDK and many highly used libraries like Apache commo= ns, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods with = String params and other methods with CharSequence (option c) would imo lead= to confusion for users.

txs and LieGrue,
strub


PS: adding all EG members to cc as I'm not 100% sure if the EG list alr= eady works properly.
--001a1145940e218e0b0560f4fd7d-- From X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0 Fri Dec 22 19:42:40 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-io0-f179.google.com (mail-io0-f179.google.com [209.85.223.179]) by mail.eclipse.org (Postfix) with ESMTP id 75DE72DCE39 for ; Fri, 22 Dec 2017 19:42:39 -0500 (EST) Received: by mail-io0-f179.google.com with SMTP id e204so26180080iof.12 for ; Fri, 22 Dec 2017 16:42:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=WNa9gpVQpCB5VlGutEvBk//rpEqMinu7nTZYu8sGXgo=; b=C2i/cONmF6PEqfrDbsEKtgT/9OdlJw/5H2NIOAEv5JphvJ4ydzlJn3D79voGmLejca zE5RwZewBaUhYv8E6GcV8ljq0Of9OsQm6VI6HKgsi5RLgIS7du7FB5PaAuHbHNNtE1se Fs383BHFYlKmcnxRkIplx90m+Ff+GdRDa6BP9kFfBAfRFM+bMnSjjs7BHrRrU9vjAtZY DMMVqDqTmCifrvaCsyfk1PKE5SnyHRq4Z5gqWAHnrAm8m7DVsj+ayDO9gPPA2UVPxfFm BWt4ERbx7NRhcJNx39qjbWd4XLGOG4pRmSqoOFual9oi5vBt0dL/AoUxQtq6WRoFiZCx kCtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=WNa9gpVQpCB5VlGutEvBk//rpEqMinu7nTZYu8sGXgo=; b=M5yDi9b0LkjNPXZkoaL/b1SW26ciFMM6HQxvhwsmEcPJxo+S4YNCYMVn07Q2yeS3ep jHXX0onc0fWqs2+dLPJVGiyJOFO2uJU/d6q27n5SQSjF/y83cUkX5wRD/Eff+SK/xYCP KJ9/DRsgeD6pPoHhxw6EBy0w80SQIBToikoXeMHqeMBYmyEvUsGDaxF0Jgc6WGCP5AsN oGuJYVmzyk+J9KiQVTVnOE1F75CTAY//NxTybeCA9INa0UpL+Iglinswr/QACgjPfcR2 FyD8fXRCJhShvYCZxvdq60XW1it3lGeNdS99VcYqAI8+qSD4bu9aVoT5S1JjdkCSGtww e6dw== X-Gm-Message-State: AKGB3mKJq4Wo2EgEiAPhFfpXsr9NzFGx5EsoMWJHkiXCw3o15+YT1wFw FnBuJlQdyACIpuu9XeMhaDd8sBl1WBfZt1hlqz8= X-Google-Smtp-Source: ACJfBouaJful9S0pA+VP5iq7h+Uut/rW7+Iy4LIKbCd3nFmRTdSWK/m+z5s3H688FFZzsyGG6uDkDkZuFYLgErMtjv4= X-Received: by 10.107.197.197 with SMTP id v188mr19518139iof.279.1513989759968; Fri, 22 Dec 2017 16:42:39 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.143.13 with HTTP; Fri, 22 Dec 2017 16:41:59 -0800 (PST) In-Reply-To: References: From: Anatole Tresch Date: Sat, 23 Dec 2017 01:41:59 +0100 Message-ID: To: Mark Struberg Content-Type: multipart/alternative; boundary="94eb2c18a9b0d62b0d0560f73536" X-Mailman-Approved-At: Sat, 23 Dec 2017 06:23:18 -0500 Cc: hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk, ConfigJSR expert discussions , Hendrik Ebbers , Jean-Louis Monteiro , Emily Jiang , David Blevins , "John D. Ament" Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Dec 2017 00:42:40 -0000 --94eb2c18a9b0d62b0d0560f73536 Content-Type: text/plain; charset="UTF-8" My choice is B with the following order: * Constructor(String) * Constructor(CharSequence) * valueOf(String) * valueOf(CharSequence) * parse(String) * parse(CharSequence) Reason many API use Strings, others CharSequence. The automatic detection mechanism should work in both scenarios. J Anatole 2017-12-22 12:35 GMT+01:00 Mark Struberg : > Good evening! > > In ticket #13 and spread out in microprofile-config we had a long > discussion about which conditions must be met to make a Class being picked > up with an implicit converter. > > The following 3 options are on the table so far: > > A.) The original idea: > * constructor(String); > * valueOf(String); > * parse(String); > > B.) Basically A but also take CharSequence as parameter > * constructor with String of CharSequence parameter > * valueOf with String of CharSequence parameter > * parse with String of CharSequence parameter > > C.) A mixed approach > * constructor(String); > * valueOf(String); > * parse(CharSequence); > > > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting. > > > > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. That > means we realls should support CharSequence for parse. > Otoh there are many constructors, parse and valueOf with both String but > also CharSequence in the JDK and many highly used libraries like Apache > commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods > with String params and other methods with CharSequence (option c) would imo > lead to confusion for users. > > txs and LieGrue, > strub > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list > already works properly. -- *Anatole Tresch* PPMC Member Apache Tamaya JCP Star Spec Lead *Switzerland, Europe Zurich, GMT+1* *maketechsimple.wordpress.com * *Twitter: @atsticks, @tamayaconf* *Speaking at:* [image: JSD_Speaker_2017][image: J-Con 2017 logo][image: JVM Con] --94eb2c18a9b0d62b0d0560f73536 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
My choice is B with the following order:

=C2=A0* Constructor(Str= ing)
=C2=A0* Constructor(CharSequence)
=C2=A0* valueOf(= String)
= =C2=A0* valueOf(CharSequence)
=C2=A0* parse(Str= ing)
=C2=A0* parse(CharSequence)


Reason many API use Strings, others CharSequence. The= automatic detection mechanism should work in both scenarios.
<= div class=3D"gmail_default" style=3D"font-size:small">
J Anatole


2017-12-22 12:35 GMT+01:00 Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu&g= t;:
Good evening!

In ticket #13 and spread out in microprofile-config we had a long discussio= n about which conditions must be met to make a Class being picked up with a= n implicit converter.

The following 3 options are on the table so far:

A.) The original idea:
=C2=A0* constructor(String);
=C2=A0* valueOf(String);
=C2=A0* parse(String);

B.) Basically A but also take CharSequence as parameter
=C2=A0* constructor with String of CharSequence parameter
=C2=A0* valueOf with String of CharSequence parameter
=C2=A0* parse with String of CharSequence parameter

C.) A mixed approach
=C2=A0* constructor(String);
=C2=A0* valueOf(String);
=C2=A0* parse(CharSequence);


Please vote with the number and an explanation why it should be taken.
We will tally the results on our next EG meeting.



My personal VOTE is +1 for option B.
Reason: We have tons of static T parse(CharSequence) in java.time. That mea= ns we realls should support CharSequence for parse.
Otoh there are many constructors, parse and valueOf with both String but al= so CharSequence in the JDK and many highly used libraries like Apache commo= ns, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods with = String params and other methods with CharSequence (option c) would imo lead= to confusion for users.

txs and LieGrue,
strub


PS: adding all EG members to cc as I'm not 100% sure if the EG list alr= eady works properly.



--
<= div dir=3D"ltr">
Anatole Tre= sch
PPMC Member Apache Tamaya
JCP Star Spec Lead
Switzerland,=C2=A0Europe Zurich, GMT+1
Twitter: =C2=A0@atsticks, @tamaya= conf

Speaking at:
<= br>
=C2=A0=C2=A03D"JSD_Speaker_2017"3D"J-Con

<= /div>
--94eb2c18a9b0d62b0d0560f73536-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Sat Dec 23 06:27:11 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from sonic304-22.consmr.mail.ir2.yahoo.com (sonic304-22.consmr.mail.ir2.yahoo.com [77.238.179.147]) by mail.eclipse.org (Postfix) with ESMTP id 141792DCEFD for ; Sat, 23 Dec 2017 06:27:10 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1514028429; bh=AbgGWigNrnU5svHhx2CYjRuUEqj3pu1nDFwRqwHbvf8=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject; b=SdUv2KcOqgDZvrOQMzPog3nVqo87eGQ1Qd7gp3FNOzr9vZpzaBdQ+3L5uBCrT6lVGXqUS6qsCivVUBHRgNlz9Q8wuk7H0FOCQFrFhCd/2zyElJbFjhlhK+JauzbKtjQ3J+KlYYqybg0+RNJgB7k8t3jmnhObvDmy4PKcHr+sx/1HGuV1CYRq24LmSc/awqnk1llk4FdI4uxC6OOMW31ZD4ZDZSUOCTmdGqUftiT7uRtNjvobpChjiUCGJgFzeYXv2t6rqTr8AtKJhsK3AzRTZeZDyGhR0M4KV/3hpbB6qo73YdETfGR4Q8Cm9XPzZkqa+cYFEVxYSEc9vNir5d2Mhw== X-YMail-OSG: PSryWc4VM1kpWIsahs4OSRJO2esVE.D7DGbsgSQeFFPVxCYagwThhqvJSpi8jEU ERFMuVlbTaQDvbfVvOwsO3Z5Pu2S.MUs5lKFfYd.K0w4QB6lke5S02COjJ1wSKl4NySs6biu5.YR XMPUKzO8G_nj.nUBK4r0SyB8KMCh_72ANUt71RBgq4zalzu9fXr4QOtZMC9vpM4w079hDfYJ5mAu Z716AKkd1gaq6rUSq2y6KZZxLTonySfTKXln2wSwtdYYFv_cGemg4juY63juZIvNDjyjQLEK9g08 mOpmB7sh5z467AY_I5nGr0fNlPbqvKB85wMJm3993IL4.paOwxAsrwggU3I0plo5VkiHiP_J1mU5 SCWF87xq9liRmFIs_QfbFMe_ZLpBVAAD0EwpaorgNIZ.FB5enMwJ_cN0c0RMUzBMI85wf3K_2Lw8 yUvST0GGXpQ7YfAwm._pHXr7VOThorvcBgdR68k8DPKPFc3UlS4cn5_C.vyoo9R50hLLvPQzOKgi sK_gKA1y3kHAlVdhP5A-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic304.consmr.mail.ir2.yahoo.com with HTTP; Sat, 23 Dec 2017 11:27:09 +0000 Received: from smtp168.mail.ir2.yahoo.com (EHLO [192.168.0.234]) ([46.228.39.35]) by smtp411.mail.ir2.yahoo.com (JAMES SMTP Server ) with ESMTPA ID 610dc6a953c7819174f3caaeb55d2690; Sat, 23 Dec 2017 11:27:05 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 11.1 \(3445.4.7\)) From: Mark Struberg In-Reply-To: Date: Sat, 23 Dec 2017 12:27:03 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: David Blevins , Anatole Tresch X-Mailer: Apple Mail (2.3445.4.7) Cc: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Dec 2017 11:27:11 -0000 Hi David and Anatole! Yes, you both are right. I agree with +1 for String taking precedence over CharSequence=20 txs and LieGrue, strub > Am 22.12.2017 um 20:48 schrieb David Blevins : >=20 > My vote would be for B with clear rules as to the order of preference = on which is chosen should there be both on the same class. I'd favor = string arg first.=20 >=20 >=20 > -David >=20 > On Fri, Dec 22, 2017 at 6:35 AM Mark Struberg = wrote: > Good evening! >=20 > In ticket #13 and spread out in microprofile-config we had a long = discussion about which conditions must be met to make a Class being = picked up with an implicit converter. >=20 > The following 3 options are on the table so far: >=20 > A.) The original idea: > * constructor(String); > * valueOf(String); > * parse(String); >=20 > B.) Basically A but also take CharSequence as parameter > * constructor with String of CharSequence parameter > * valueOf with String of CharSequence parameter > * parse with String of CharSequence parameter >=20 > C.) A mixed approach > * constructor(String); > * valueOf(String); > * parse(CharSequence); >=20 >=20 > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting. >=20 >=20 >=20 > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. = That means we realls should support CharSequence for parse. > Otoh there are many constructors, parse and valueOf with both String = but also CharSequence in the JDK and many highly used libraries like = Apache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of = some methods with String params and other methods with CharSequence = (option c) would imo lead to confusion for users. >=20 > txs and LieGrue, > strub >=20 >=20 > PS: adding all EG members to cc as I'm not 100% sure if the EG list = already works properly. > --=20 > Sent from Gmail Mobile From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Sat Dec 23 16:34:43 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) by mail.eclipse.org (Postfix) with ESMTP id B761F2DD069 for ; Sat, 23 Dec 2017 16:34:43 -0500 (EST) Received: by mail-wm0-f42.google.com with SMTP id i11so27114890wmf.4 for ; Sat, 23 Dec 2017 13:34:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:mime-version:to:cc:from:subject:date:importance :in-reply-to:references; bh=1dbIsFdSSyTsILQur8rUrwZ+/NmisdnaTJHhJdthRHk=; b=UI0fth3ut7VH40G6No9Lg8+e0KL5HnPAvPyCA0sS99PYnBAL0NbAtVnEnu/VRNkvIJ Nxe5+06j1rhtl16Wf2tRviG06VEuEiATYSKTcqZt76Di01Xd8OS9OqNVopzp7yX2crJ/ lMxEC1X0uMlvXdEg4LZmHBOTadRMfEhg1ufjTkIp404IOCduEq+wN4ePGikCjh00cmbL +rRnHFMsxmWMppJ+aZDaFoBs6vX/98MJgcSqpKynX+l13EV9A1cEaXc+mJIMFeuqEoLa DqZ5mqpN+cEYWUAmNNx89bW84YPoeSi52ngS9C/0jOyUFtjamzFoWaTYB9NSP6vjEklh 6ilg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:mime-version:to:cc:from:subject:date :importance:in-reply-to:references; bh=1dbIsFdSSyTsILQur8rUrwZ+/NmisdnaTJHhJdthRHk=; b=L9uhaUfi/zNwf0YQKumpXzJix85ZFN6BVaim63dkftCm9H2RK6IHuOWl0cMvlWi69r 3wzlWtddkQJZKiN0lrxHgGwt6r8gsX7dDwO10VoDMXCGSNFVlJF8Y3J/uQPt2DmVmjYO zv7NdA/hHKcYj7nljpU9qbIzL75Qm9r7RGIcHOmJHMZJfSsRK8XB7Pzi4DG3df5PxYNQ deAwabxm6S6Oaoc1r5ZkVM+76EmocMmKZR7qN9Zw8PiNnWSqa/A3fnwtPSkxjhcmhyRQ I4Z/1dK2W4zb3eUKTZ4qz9hz+GMTrjUwoSYeEmyHtJFh9vKphx/orCNrXb9TfHgTmm+K Zq9Q== X-Gm-Message-State: AKGB3mIucOuRyI29mZFqmCfyKwDwIWN/y9tYywsdW3RlaUqHAkIXiTYa GdJ8Rp9LHAneB3x7GPFL2K11GOTl X-Google-Smtp-Source: ACJfBovzvVivR9fNYmi4B1pGe66iPsfh/kt2cVtw9KMmkX/YZQVRmCeMxtgO/B6yZjZQO/LkM1196A== X-Received: by 10.28.111.15 with SMTP id k15mr15161573wmc.139.1514064882805; Sat, 23 Dec 2017 13:34:42 -0800 (PST) Received: from ?IPv6:2a02:61:a2::2e9? ([2a02:61:a2::2e9]) by smtp.gmail.com with ESMTPSA id t65sm6995406wmt.39.2017.12.23.13.34.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 23 Dec 2017 13:34:41 -0800 (PST) Message-ID: MIME-Version: 1.0 To: Anatole Tresch , Mark Struberg From: Werner Keil Date: Sat, 23 Dec 2017 22:34:42 +0100 Importance: normal X-Priority: 3 In-Reply-To: References: Content-Type: multipart/alternative; boundary="_43CB0960-A2E9-4A73-BF7B-2AE79288ED0A_" Cc: ConfigJSR expert discussions Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Dec 2017 21:34:44 -0000 --_43CB0960-A2E9-4A73-BF7B-2AE79288ED0A_ Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If String and CharSequence can be told apart and there is no signature clas= h, that would also be my preference. I replied to John's message last night but it seems the mailing list refuse= d parts or I got the wrong address on my mobile. Any thoughts on valueOf() vs just of()? Optional is one of the concerns Java8 classes which apply this pattern. Werner --_43CB0960-A2E9-4A73-BF7B-2AE79288ED0A_ Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8"

If String= and CharSequence can be told apart and there is no signature clash, that w= ould also be my preference.

I replied to John's message last night bu= t it seems the mailing list refused parts or I got the wrong address on my = mobile.

Any thoughts on valueOf() vs just of()?
Optional is one of= the concerns Java8 classes which apply this pattern.

Werner

 

= --_43CB0960-A2E9-4A73-BF7B-2AE79288ED0A_-- From UtlswAFHPlyAKawQ@RwKIriitWfeDKzz0 Sun Dec 24 10:13:59 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-ua0-f170.google.com (mail-ua0-f170.google.com [209.85.217.170]) by mail.eclipse.org (Postfix) with ESMTP id 692722DCEF7 for ; Sun, 24 Dec 2017 10:13:58 -0500 (EST) Received: by mail-ua0-f170.google.com with SMTP id q22so10541050uaa.9 for ; Sun, 24 Dec 2017 07:13:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rMfgtMEKKYtQu4ZjIGWjGQxujG0c4UYPF7wAdToutRE=; b=H5gQHI2xbewH715jxWk5eZqd07VBb9IRyFgiudA/x8JSDyGOSK9HlSZXM1lz6ggFyf k2gQnr54ddMHQQ7yBDzMzBbvDBVUOvzC2b4gp9wdIcAcZJs66bcV9AbB+SWlAkbY+VaQ sN82dCR2gE6gtV60nRDZvPnDdDQiQgmcUkFXHUzL0yOnklfbkC6iIUvzq//GxeIXFanK NzPmPOF+s4GOmiLwl4y1orEs6SB8UquK3LWFnrUXfC7s4r/VYpIHNuWKynjF45ACEww2 aFFjGE9DJwFDAEEbBjQIaIcv146JLqsmDC+mQKdmtMppPJrBN7wMeL1yDXDSAbh5MUyT 13ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rMfgtMEKKYtQu4ZjIGWjGQxujG0c4UYPF7wAdToutRE=; b=qDxmfk6Zgwm/vnd4fvCQ+Ba4ofwMUIcPY8OqKRl+HMtt0NiiglBa/KdnE9lZQvQ3ri B07azTf3UhHUooioMNe1dTVSYcEfGPy2hCJ+Yj/s3m/VC9DpVMyRyb8ejBt52GCCgXbE HM1M6e4cbXMm+7AoXuEKvoiv5d1d79TD8vktGM1ltNnUjhElVtoovM2ZIigfzsvSr8SX 10E1ldK3DOEDO7uyOFGJS/3CxEtFpY9UDbGHoRtixzTkB9YOZytzm9ZCb3ybpLKHaybm U+WSqePZtHfxa2wELc4DeFE7Su76DDJheHNniBShug99pza/fQH9i9dGiuFFUBNT5Xwm rbMw== X-Gm-Message-State: AKGB3mLbQJ4H2P1D9Nb+Vgx9zh3BxuJwUg8zB6WNdZuA93Vct4pOHOwh cf5iR9nYw22AujjzKA8UKSswL7tjV4UX2jEFv6E= X-Google-Smtp-Source: ACJfBov8xiKrumipYJZ8IW98MoiwuW5HD0rChiQGPjEa1y3ObRJiJoKeSpxOLE2GsLkUNPY+VbV19gIqmlHl/qNo2LI= X-Received: by 10.176.19.130 with SMTP id m2mr22338682uae.24.1514128437711; Sun, 24 Dec 2017 07:13:57 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: "John D. Ament" Date: Sun, 24 Dec 2017 15:13:47 +0000 Message-ID: To: Mark Struberg Content-Type: multipart/alternative; boundary="001a1145675eac99bc0561177fd2" Cc: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 15:13:59 -0000 --001a1145675eac99bc0561177fd2 Content-Type: text/plain; charset="UTF-8" So one more question, in B you say String of CharSequence parameter Is that supposed to be "String or CharSequence parameter"? On Sat, Dec 23, 2017 at 6:18 AM Mark Struberg wrote: > Hi John! > > TL;DR: only String and CharSequence are elegible types > > long version: > > Sebastian and I took a serious look into exactly that. > And when finally trying it out we figured that it's not worth it. > The simple reason is that we only get a String out of the ConfigSources. > And String only has the types {Object.class, CharSequence.class, > String.class}. > > If you would have a class > public class SomeFoo implements CharSequence {..} > > and a method > static T valueOf(SomeFoo); > > then how to create a SomeFoo instance to pass to valueOf? > We only have the String from ConfigSource.getValue(). > > Yea, it's kind of obvious, but Sebastian and I also only figured this on > the last meters so to say ;) > Actually when trying to implement it in geronimo-config. > > LieGrue, > strub > > > > Am 22.12.2017 um 23:03 schrieb John D. Ament : > > > > Mark, > > > > Could you clarify, for B) is it all methods that take String or > CharSequence? Or any method that can take an implementation of > CharSequence (e.g. StringBuilder/StringBuffer)? > > > > John > > > > On Fri, Dec 22, 2017 at 6:35 AM Mark Struberg wrote: > > Good evening! > > > > In ticket #13 and spread out in microprofile-config we had a long > discussion about which conditions must be met to make a Class being picked > up with an implicit converter. > > > > The following 3 options are on the table so far: > > > > A.) The original idea: > > * constructor(String); > > * valueOf(String); > > * parse(String); > > > > B.) Basically A but also take CharSequence as parameter > > * constructor with String of CharSequence parameter > > * valueOf with String of CharSequence parameter > > * parse with String of CharSequence parameter > > > > C.) A mixed approach > > * constructor(String); > > * valueOf(String); > > * parse(CharSequence); > > > > > > Please vote with the number and an explanation why it should be taken. > > We will tally the results on our next EG meeting. > > > > > > > > My personal VOTE is +1 for option B. > > Reason: We have tons of static T parse(CharSequence) in java.time. That > means we realls should support CharSequence for parse. > > Otoh there are many constructors, parse and valueOf with both String but > also CharSequence in the JDK and many highly used libraries like Apache > commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods > with String params and other methods with CharSequence (option c) would imo > lead to confusion for users. > > > > txs and LieGrue, > > strub > > > > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list > already works properly. > > --001a1145675eac99bc0561177fd2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
So one more question, in B you say

String of CharSequence param= eter

Is that supposed to be "String or CharSequence parame= ter"?

On Sat= , Dec 23, 2017 at 6:18 AM Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
Hi John!

TL;DR: only String and CharSequence are elegible types

long version:

Sebastian and I took a serious look into exactly that.
And when finally trying it out we figured that it's not worth it.
The simple reason is that we only get a String out of the ConfigSources. An= d String only has the types {Object.class, CharSequence.class, String.class= }.

If you would have a class
public class SomeFoo implements CharSequence {..}

and a method
static T valueOf(SomeFoo);

then how to create a SomeFoo instance to pass to valueOf?
We only have the String from ConfigSource.getValue().

Yea, it's kind of obvious, but Sebastian and I also only figured this o= n the last meters so to say ;)
Actually when trying to implement it in geronimo-config.

LieGrue,
strub


> Am 22.12.2017 um 23:03 schrieb John D. Ament <UtlswAFHPlyAKawQ@RwKIriitWfeDKzz0>:
>
> Mark,
>
> Could you clarify, for B) is it all methods that take String or CharSe= quence?=C2=A0 Or any method that can take an implementation of CharSequence= (e.g. StringBuilder/StringBuffer)?
>
> John
>
> On Fri, Dec 22, 2017 at 6:35 AM Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
>=C2=A0 * constructor(String);
>=C2=A0 * valueOf(String);
>=C2=A0 * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
>=C2=A0 * constructor with String of CharSequence parameter
>=C2=A0 * valueOf with String of CharSequence parameter
>=C2=A0 * parse with String of CharSequence parameter
>
> C.) A mixed approach
>=C2=A0 * constructor(String);
>=C2=A0 * valueOf(String);
>=C2=A0 * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--001a1145675eac99bc0561177fd2-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Sun Dec 24 12:54:39 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from sonic306-21.consmr.mail.ne1.yahoo.com (sonic306-21.consmr.mail.ne1.yahoo.com [66.163.189.83]) by mail.eclipse.org (Postfix) with ESMTP id 0672317D4A5 for ; Sun, 24 Dec 2017 12:54:37 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1514138077; bh=MSX5kXGIpU5lbT7OoN7RYHKZDvN+qtsyU28qnSLEmGM=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From:Subject; b=V1NuaZMqi+zRN1+8T+djPl7s6Y9Pzn7DZUO9TbBfJeDeh4LuScgc1YfpogY2Bk6Hgn+4VdCmwKWaRAhFmzwkRnG8FCPfjvRH3B0YfgOLwaju1ETNfjb/gPCePEer8O5CDltp7z8wtHO28kq4Sm3lfLN5poUxo6/37904lWoxtKO2fbRmy90UGoZtBADRWT7XfPTUK8jN2ClYuEJPSpftc553LLxxSPNuq/z6+VbkVUkpVDOmMY/37/KMhSQryUfBRJL0cj4XPIIKvqBpON1pL3LTflGWdPj0DTF0Q3MbpBeFyqOTzqVzwLqEgr+7vGkX9YTMPeKuiMovt0KxZ9ccLg== X-YMail-OSG: 87Ee09sVM1kvXT8IJ0G2hHqy90eIgqavg4ovDYCdyLkdWIii.sg.PYmB.AY.VeO SRTjsSbxXPjGphi9soGNEIn91pQpKkJmpTumq_hG0k_pHke2UtcRVhZdqGrbd2eUwj41.FM7FQpg o0KMOBaXQd0mUMG6.cihjpKhDhc_W4T6.wTlXOOl0lA7latzwtQYcXuafmy_MIrpPBaSPVwfZgXr yF1hJe.Hd9hliUh8IfvdQIT4U89VYNZ0xPhfGjZ.JM9wOSanirKh96aZNBF6F6xkoIWlXdFp2cfu HkBM1b3JDrMSqiB3W.Mt7OxihH62yM8oA0uqlqxPlTfzc..kDJrg8fXAnytC1ymyYcPHrELorI15 3J.p7dGKzLZkpHUL_JYlESvN5MOG8eNlklOPnrD75Dl_PZQGyTMSbxvvgVmCXcdC36y55nfoiLjI PGRLJr.1HByHsHYY_lNxcD0TjowflXF8Y2uExhSGyoZ2LlouVm1OyGu0hEChS9JD4M4uOJDBN_Z3 hOhTI3tfnUhkAgtjt8ZeOR691zz481g5.uAUh6MJN0_O9ICAitJnFvJRQZh3Y5DJMNxSwToInd6S N9bn0oKTcYCvfsf_WSA3w7JudZYGouNKbm1l2J2OvfBdC_A-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.ne1.yahoo.com with HTTP; Sun, 24 Dec 2017 17:54:37 +0000 Date: Sun, 24 Dec 2017 17:54:34 +0000 (UTC) From: Mark Struberg To: "John D. Ament" Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_4020085_233338280.1514138074169" X-Mailer: WebService/1.1.11051 YMailNorrin Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0 Cc: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 17:54:39 -0000 ------=_Part_4020085_233338280.1514138074169 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Yes you are right indeed. Was a copy&paste error on my side, sorry. Please see the current wording of the spec. This also reflects the ordering= in which the lookup is performed: https://github.com/eclipse/ConfigJSR/blob/master/api/src/main/java/javax/co= nfig/spi/Converter.java#L61 LieGrue,strub =20 On Sunday, 24 December 2017, 16:14:00 CET, John D. Ament wrote: =20 =20 So one more question, in B you say String of CharSequence parameter Is that supposed to be "String or CharSequence parameter"? On Sat, Dec 23, 2017 at 6:18 AM Mark Struberg wrote: Hi John! TL;DR: only String and CharSequence are elegible types long version: Sebastian and I took a serious look into exactly that. And when finally trying it out we figured that it's not worth it. The simple reason is that we only get a String out of the ConfigSources. An= d String only has the types {Object.class, CharSequence.class, String.class= }. If you would have a class public class SomeFoo implements CharSequence {..} and a method static T valueOf(SomeFoo); then how to create a SomeFoo instance to pass to valueOf? We only have the String from ConfigSource.getValue(). Yea, it's kind of obvious, but Sebastian and I also only figured this on th= e last meters so to say ;) Actually when trying to implement it in geronimo-config. LieGrue, strub > Am 22.12.2017 um 23:03 schrieb John D. Ament : > > Mark, > > Could you clarify, for B) is it all methods that take String or CharSeque= nce?=C2=A0 Or any method that can take an implementation of CharSequence (e= .g. StringBuilder/StringBuffer)? > > John > > On Fri, Dec 22, 2017 at 6:35 AM Mark Struberg wrote: > Good evening! > > In ticket #13 and spread out in microprofile-config we had a long discuss= ion about which conditions must be met to make a Class being picked up with= an implicit converter. > > The following 3 options are on the table so far: > > A.) The original idea: >=C2=A0 * constructor(String); >=C2=A0 * valueOf(String); >=C2=A0 * parse(String); > > B.) Basically A but also take CharSequence as parameter >=C2=A0 * constructor with String of CharSequence parameter >=C2=A0 * valueOf with String of CharSequence parameter >=C2=A0 * parse with String of CharSequence parameter > > C.) A mixed approach >=C2=A0 * constructor(String); >=C2=A0 * valueOf(String); >=C2=A0 * parse(CharSequence); > > > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting. > > > > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. That m= eans we realls should support CharSequence for parse. > Otoh there are many constructors, parse and valueOf with both String but = also CharSequence in the JDK and many highly used libraries like Apache com= mons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods wit= h String params and other methods with CharSequence (option c) would imo le= ad to confusion for users. > > txs and LieGrue, > strub > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list alrea= dy works properly. =20 ------=_Part_4020085_233338280.1514138074169 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit
Yes you are right indeed. Was a copy&paste error on my side, sorry.

Please see the current wording of the spec.
This also reflects the ordering in which the lookup is performed:



LieGrue,
strub



On Sunday, 24 December 2017, 16:14:00 CET, John D. Ament <UtlswAFHPlyAKawQ@RwKIriitWfeDKzz0> wrote:


So one more question, in B you say

String of CharSequence parameter

Is that supposed to be "String or CharSequence parameter"?

On Sat, Dec 23, 2017 at 6:18 AM Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
Hi John!

TL;DR: only String and CharSequence are elegible types

long version:

Sebastian and I took a serious look into exactly that.
And when finally trying it out we figured that it's not worth it.
The simple reason is that we only get a String out of the ConfigSources. And String only has the types {Object.class, CharSequence.class, String.class}.

If you would have a class
public class SomeFoo implements CharSequence {..}

and a method
static T valueOf(SomeFoo);

then how to create a SomeFoo instance to pass to valueOf?
We only have the String from ConfigSource.getValue().

Yea, it's kind of obvious, but Sebastian and I also only figured this on the last meters so to say ;)
Actually when trying to implement it in geronimo-config.

LieGrue,
strub


> Am 22.12.2017 um 23:03 schrieb John D. Ament <UtlswAFHPlyAKawQ@RwKIriitWfeDKzz0>:
>
> Mark,
>
> Could you clarify, for B) is it all methods that take String or CharSequence?  Or any method that can take an implementation of CharSequence (e.g. StringBuilder/StringBuffer)?
>
> John
>
> On Fri, Dec 22, 2017 at 6:35 AM Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long discussion about which conditions must be met to make a Class being picked up with an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
>  * constructor(String);
>  * valueOf(String);
>  * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
>  * constructor with String of CharSequence parameter
>  * valueOf with String of CharSequence parameter
>  * parse with String of CharSequence parameter
>
> C.) A mixed approach
>  * constructor(String);
>  * valueOf(String);
>  * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. That means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String but also CharSequence in the JDK and many highly used libraries like Apache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods with String params and other methods with CharSequence (option c) would imo lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG list already works properly.

------=_Part_4020085_233338280.1514138074169-- From Wxka4DL1ZBLfx4KF@LG/3Wit29ynM2tMK Mon Dec 25 07:30:21 2017 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mr25p46im-ztdg02111301.me.com (mr25p46im-ztdg02111301.me.com [17.111.255.92]) by mail.eclipse.org (Postfix) with ESMTP id 3DAED2DD00C for ; Mon, 25 Dec 2017 07:30:20 -0500 (EST) Received: from process-dkim-sign-daemon.mr25p46im-ztdg02111301.me.com by mr25p46im-ztdg02111301.me.com (Oracle Communications Messaging Server 8.0.1.2.20170607 64bit (built Jun 7 2017)) id for TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe; Mon, 25 Dec 2017 12:30:20 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=04042017; t=1514205020; bh=rqwLXvZ2xOcrQ86SmbwjU+navNh50VUHD74hZoyM09k=; h=Content-type:MIME-version:Subject:From:Date:Message-id:To; b=Kz1a0wKXofh9oO0i5O9tOw+nuRB8wpvW4CPRCAbv3lnCK9q+pfs7QwdCKmSKamlZ6 Aa4fzq1AZo5dz7UE40GpbQn3knWx5hV5I4qt+XAMKqB/DnCBj1pjGcaLAmtaF1czLZ IBn53m/N8kkny39YakqAFel4+GNL34fnnqcPpbVyk/ktzTYTVQXBa5EjJKAio3g60/ bjfUhaLNyhn2cXTllSdUjEl+UuGte2wZ449DntZMxXhf1DmKBRDUpp9lSu1RdqVGxe u67EZnmcM2j/TJOlcSxMfEgP58AhCq7kjirfhhdTLljEGtFNtgM8nTfuL84pW84LJn qSux3j9psN7wQ== Received: from icloud.com ([127.0.0.1]) by mr25p46im-ztdg02111301.me.com (Oracle Communications Messaging Server 8.0.1.2.20170607 64bit (built Jun 7 2017)) with ESMTPSA id ; Mon, 25 Dec 2017 12:30:20 +0000 (GMT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-12-25_09:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 clxscore=1011 suspectscore=2 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1712250174 Content-type: multipart/alternative; boundary=Apple-Mail-6CAFA4CF-4400-4EF2-AD9D-68A5DA903FA9 MIME-version: 1.0 (1.0) From: Hendrik Ebbers X-Mailer: iPhone Mail (15B202) In-reply-to: Date: Mon, 25 Dec 2017 13:30:16 +0100 Content-transfer-encoding: 7bit Message-id: References: To: ConfigJSR expert discussions Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Dec 2017 12:30:21 -0000 --Apple-Mail-6CAFA4CF-4400-4EF2-AD9D-68A5DA903FA9 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable B! In the same order as Anatole already described. Von meinem iPhone gesendet > Am 23.12.2017 um 22:34 schrieb Werner Keil : >=20 > If String and CharSequence can be told apart and there is no signature cla= sh, that would also be my preference. >=20 > I replied to John's message last night but it seems the mailing list refus= ed parts or I got the wrong address on my mobile. >=20 > Any thoughts on valueOf() vs just of()? > Optional is one of the concerns Java8 classes which apply this pattern. >=20 > Werner >=20 > =20 > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe fr= om this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --Apple-Mail-6CAFA4CF-4400-4EF2-AD9D-68A5DA903FA9 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable B!
In the same order as Anatole already= described.

Von meinem iPhone gesendet=

Am 23.12.2017 um 22:34 schrieb Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0>:

If String and CharSequence can be t= old apart and there is no signature clash, that would also be my preference.=

I replied to John's message last night but it seems the mailing list r= efused parts or I got the wrong address on my mobile.

Any thoughts on v= alueOf() vs just of()?
Optional is one of the concerns Java8 classes whic= h apply this pattern.

Werner

=  

_______________________________________________
Confi= gJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change y= our delivery options, retrieve your password, or unsubscribe from this list,= visit
https://dev.eclipse.org/mailman/listinfo/configjsr-experts=
= --Apple-Mail-6CAFA4CF-4400-4EF2-AD9D-68A5DA903FA9-- From ddGT1wYMfoBvU9fM@Q0W4M5u9yf+Cl+rM Mon Dec 25 07:02:29 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mgwkm01.jp.fujitsu.com (mgwkm01.jp.fujitsu.com [202.219.69.168]) by mail.eclipse.org (Postfix) with ESMTP id 47C802DCF79 for ; Mon, 25 Dec 2017 07:02:28 -0500 (EST) Received: from kw-mxauth.gw.nic.fujitsu.com (unknown [192.168.231.132]) by mgwkm01.jp.fujitsu.com with smtp id 5797_6272_269798ba_d20a_4b76_b994_e24e6f44a54a; Mon, 25 Dec 2017 21:02:24 +0900 Received: from m3051.s.css.fujitsu.com (m3051.s.css.fujitsu.com [10.134.21.209]) by kw-mxauth.gw.nic.fujitsu.com (Postfix) with ESMTP id 3C2D4AC0139 for ; Mon, 25 Dec 2017 21:02:23 +0900 (JST) Received: from localhost (unknown [10.124.48.234]) by m3051.s.css.fujitsu.com (Postfix) with ESMTP id D2F7A28B; Mon, 25 Dec 2017 21:02:22 +0900 (JST) X-SecurityPolicyCheck: OK by SHieldMailChecker v2.3.2 X-SHieldMailCheckerPolicyVersion: FJ-ISEC-20150223 X-SHieldMailCheckerMailID: b476a9ab1948468ca63ce03ad4fd5c02 Date: Mon, 25 Dec 2017 21:01:38 +0900 (JST) Message-Id: To: TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu From: Kenji Kazumura In-Reply-To: References: X-Mailer: Mew version 6.6 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Mailman-Approved-At: Tue, 26 Dec 2017 05:07:53 -0500 Cc: hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk, kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe, Wxka4DL1ZBLfx4KF@KVSEqjHU2hkznJyo, UL+efwNekpHoIVIo@PSpseNSHFB7ZptfE, bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC, DnTNmCv0oV6dhkwz@PSpseNSHFB7ZptfE, Id+FpquyTzppOPeC@Y45SF02wNnDqB7sJ Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Dec 2017 12:02:30 -0000 +1 for C I don't think there are a lot of codes using 'constructor(CharSequence)' and 'valueOf(CharSequence)'. To simplify API, C is minimum and enough set. In message [VOTE] List of Implicit Converter conditions Mark Struberg wrote: > Good evening! > > In ticket #13 and spread out in microprofile-config we had a long discussion about which conditions must be met to make a Class being picked up with an implicit converter. > > The following 3 options are on the table so far: > > A.) The original idea: > * constructor(String); > * valueOf(String); > * parse(String); > > B.) Basically A but also take CharSequence as parameter > * constructor with String of CharSequence parameter > * valueOf with String of CharSequence parameter > * parse with String of CharSequence parameter > > C.) A mixed approach > * constructor(String); > * valueOf(String); > * parse(CharSequence); > > > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting. > > > > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. That means we realls should support CharSequence for parse. > Otoh there are many constructors, parse and valueOf with both String but also CharSequence in the JDK and many highly used libraries like Apache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods with String params and other methods with CharSequence (option c) would imo lead to confusion for users. > > txs and LieGrue, > strub > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list already works properly. > From UtlswAFHPlyAKawQ@RwKIriitWfeDKzz0 Tue Dec 26 08:30:07 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-ua0-f172.google.com (mail-ua0-f172.google.com [209.85.217.172]) by mail.eclipse.org (Postfix) with ESMTP id 802422DD126 for ; Tue, 26 Dec 2017 08:30:06 -0500 (EST) Received: by mail-ua0-f172.google.com with SMTP id q22so12696533uaa.9 for ; Tue, 26 Dec 2017 05:30:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=HP1Btl+28SdLKzaJEvMzPj7mZjWLezL4Uf6XTCd4k/Q=; b=Fz9V6DmqDm7an2nqX7wsc2I9ChQWMUbGyAkMEyXLP/ZSU72YX38abJwnh26IQmZVxX 5E4bEU3wmY55xPRA/3qqednxWuRwkHXevC5RA1lrdOrf5jMBoFMSL+42eEVRcb5a4wee fl7/RpaAYY9euSaSm3Tz3o41l6BH+6cw2ok4E+a4JsEpGZd2JvqzZauX3lL+VWp4KPCD nSqWoKiV2EW07pdJBEAKVzrwezL0YCzJHTSJmdbSM7qfqTPvgWLD1i+D4/oj9a3qxvdb mYhCWoV8DT2vB2Wi/gpCGD6E0B9YRzu18FFaoyv3YMq0Yactsmj8D2EztQ+vsLHb/KEz QIlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=HP1Btl+28SdLKzaJEvMzPj7mZjWLezL4Uf6XTCd4k/Q=; b=Km04R2wHTUFwKzTUSJXIkfRlJ21sy9P2MVsIgBBGtjv/cFeW+353950fph0C55nxhg nGuWJJB55DMhRg3MQ/mQODN3JV9CeneE+4VtFr2B7yLkqG4rlG7cMp0N8KQdU42mfw1O 6+VmI9KY6hXZuiCApsYCplgjCUxCXoKQznasCqfK33K8GmNONn8yneMBj910GHAHMjG5 7t9z3HQW5zg9KS38+FWgNpt+XOUa4xDurIyMJktResFrDS9uMREqygrke+TBmgTQmo++ m90saiw/I2hzGFZoBqBrDWBSzPdQrJO1vuAwwfS5H29fjT3sqYwoPJ+RJAwRQD1aoOAk z3fQ== X-Gm-Message-State: AKGB3mKe2AdbBbPcvrtEpmqLj4UXQL9hePelmsJ3Ake84E+63KgYtk4v AUKpeIdKPNszlW0qNhyWCtPFZMOBNj1o/4WfN275Uw== X-Google-Smtp-Source: ACJfBouJZMrrr+TubzA9W6a1qjTEvyE+H4t6q+2+nqoS0LdGHhQPTtwTPbqnqCfaGbggvhIhT8ujrZ1b0znKP7DrPzs= X-Received: by 10.176.18.99 with SMTP id s35mr26580846uac.93.1514295006412; Tue, 26 Dec 2017 05:30:06 -0800 (PST) MIME-Version: 1.0 From: "John D. Ament" Date: Tue, 26 Dec 2017 13:29:56 +0000 Message-ID: To: "kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe" Content-Type: multipart/alternative; boundary="f403045ed840f1458005613e4757" Subject: [ConfigJSR-experts] The implications of Array converters X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Dec 2017 13:30:07 -0000 --f403045ed840f1458005613e4757 Content-Type: text/plain; charset="UTF-8" Mark & I were chatting about how to handle array converters in Geronimo Config, in the context of the MicroProfile impl. I figure its a discussion worth this group since many of us are working on both concurrently. I see an issue with how Array converters work today. It's not so much with the array side as it is with the List/Set support. Presently, we have to support the injection of List/Set objects via CDI, however there is no way to register a converter for them nor is there a way to do programmatic lookup of them. Furthermore, Mark was pointing out to me that it seems like the intention is that a user can register a custom converter for T[].class in addition to T. Now this makes sense to me, however it breaks a lot of performance implications for creating List/Set to the point where I'm almost thinking if a user creates a custom converter like this, they would almost certainly want to create a custom converter for List/Set as well. I have a few thoughts on how to support both. - Registering a converter should take a Type argument, rather than a Class argument. - Matching on converters should be on exact type or type arguments. E.g. if the type is a Class, only that class should be taken into account. However, if it is a ParameterizedType then we need to analyze the raw type and type arguments. - That, or we introduce the notion of a PluralConverter that is meant to convert array, set and list types within a single converter. - In which case, if the user wants a array, set or list type we seek out a PluralConverter of that type and use it to do the conversion, otherwise we fallback to the runtime provided "auto converter" that is mandated. As of right now, it is possible to define SomeConverter implements Converter> however it won't be registered properly (at least not in Geronimo Config) since we're assuming the type argument is a Class not a ParameterizedType. Please do let me know your thoughts John --f403045ed840f1458005613e4757 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Mark & I were chatting about how to handle array conve= rters in Geronimo Config, in the context of the MicroProfile impl.=C2=A0 I = figure its a discussion worth this group since many of us are working on bo= th concurrently.

I see an issue with how Array converter= s work today.=C2=A0 It's not so much with the array side as it is with = the List/Set support.=C2=A0 Presently, we have to support the injection of = List/Set objects via CDI, however there is no way to register a converter f= or them nor is there a way to do programmatic lookup of them.=C2=A0 Further= more, Mark was pointing out to me that it seems like the intention is that = a user can register a custom converter for T[].class in addition to T.=C2= =A0 Now this makes sense to me, however it breaks a lot of performance impl= ications for creating List/Set to the point where I'm almost thinking i= f a user creates a custom converter like this, they would almost certainly = want to create a custom converter for List/Set as well.

I have a few thoughts on how to support both.

- Registering a converter should take a Type argument, rather than a Clas= s argument.
- Matching on converters should be on exact type or t= ype arguments.=C2=A0 E.g. if the type is a Class, only that class should be= taken into account.=C2=A0 However, if it is a ParameterizedType then we ne= ed to analyze the raw type and type arguments.
- That, or we intr= oduce the notion of a PluralConverter that is meant to convert array, set a= nd list types within a single converter.
- In which case, if the = user wants a array, set or list type we seek out a PluralConverter of that = type and use it to do the conversion, otherwise we fallback to the runtime = provided "auto converter" that is mandated.

<= div>As of right now, it is possible to define SomeConverter implements Conv= erter<List<Something>> however it won't be registered prope= rly (at least not in Geronimo Config) since we're assuming the type arg= ument is a Class not a ParameterizedType.

Please d= o let me know your thoughts

John


--f403045ed840f1458005613e4757-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Tue Dec 26 12:30:35 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f54.google.com (mail-lf0-f54.google.com [209.85.215.54]) by mail.eclipse.org (Postfix) with ESMTP id DA21A17D455 for ; Tue, 26 Dec 2017 12:30:34 -0500 (EST) Received: by mail-lf0-f54.google.com with SMTP id a12so3890561lfe.13 for ; Tue, 26 Dec 2017 09:30:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=4HzOvMwMjbp+MToAjwnOkzAaK4JL2h0Ra7wkmLuNx4I=; b=pgtqQEZg+dK5VSuipAP/LrUqDutJV8Qem7TJWFiJrxLAxOZT/ikiPddPwFDC954ARf yL8/ybFydvRHE5RgYA8XOr2EKWmF/HB3P4ymzZIv3OVOTZ1kXseDtTU6/Yg1SCPDuyXF YZa1mq/vCRpOutD4ok+t0WETVFRHVlTBAcdaVifmzo4KNYnZh98mqKVkXjRnVXd+SqZ9 ZNhciJnaFEnYmnY50+9NIJitbls8F4uQNIaIv6nceXIGHpZo9dgvDyzYGCnh7wyneiYE Owb8YW27A2uL5YGNrVNksFLJMPC2BhcLNzMdMtpo7gRcMj8saqltvKbMCT0FTlRtZLhI Okbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=4HzOvMwMjbp+MToAjwnOkzAaK4JL2h0Ra7wkmLuNx4I=; b=THLadzb6alIjwF+Q7iLETxseo/g0YdSYnlUVeU/pGtfZ425ZZcXgyREzYv3tgjbHl7 2DfajvQAwBBWF4tSP1k4IpGCd88l+QiwdqbvEXRn/FPamkRy9i8obYkFEHvqZnCZnscE 03zFDNxnjXcYM5c64P9s7+s5+ZIUCu3UV9OrwQzgjD8O3DPoOgRxJk8/VKgeuzNFXGw9 MEtjo7aoFaH62vyMVGPXRzdTwfeJs8GCnDI6lWvJHY/rTLgJNYS2Ujj1+4iEforXA3A6 bDwC+p/gZ/HQWuxzzEktDy1aH8U+D0An3qLyPKIaMxGPNRf1rCGA/ymbYkcB2AxByvft nhbw== X-Gm-Message-State: AKGB3mKbV+Kkow6MApJ+02lFOnzxeMykWJssboaSEJeZpuqYXEEN52Ii yV7kZEnLlYz5Zz1+3pjK/+JxQ07FLSi2YyxB2z61Mg== X-Google-Smtp-Source: ACJfBovM54HOzmBtSemlEFt63BMhxOo0wpvn8iZjxswGPfRKunzTnYruTpR7aSjvlNY9Oh7/4JBaFWBTIZeC0nsHsl8= X-Received: by 10.46.2.17 with SMTP id 17mr14595516ljc.67.1514309432711; Tue, 26 Dec 2017 09:30:32 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.92.129 with HTTP; Tue, 26 Dec 2017 09:30:32 -0800 (PST) In-Reply-To: References: From: Werner Keil Date: Tue, 26 Dec 2017 18:30:32 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="94eb2c1a66c4d123fd056141a3be" Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Dec 2017 17:30:35 -0000 --94eb2c1a66c4d123fd056141a3be Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Going over the JSR 363 API in preparation of 385 parsing a CharSequence is also common there. While various different ofX() methods in Java.time almost seem a bit much, I=E2=80=99d like to repeat the question, whether we should use =E2=80=9Eold= School=E2=80=9C valueOf() or a slightly more practiced of() for the other factory method? The of() Version has been around for ages e.g. in Josh Bloch=E2=80=99s Enum= Set (even when he still encouraged other naming conventions in his book ;-) but Java 8 with Date/Time or other classes like Optional started using it more than valueOf(). Similar in some of the Java ME 8 Embedded JSRs like MEEP. Werner --94eb2c1a66c4d123fd056141a3be Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Going over the JSR 363 API in preparation of 385 parsing a = CharSequence is also common there.

While various different ofX() metho= ds in Java.time almost seem a bit much, I=E2=80=99d like to repeat the ques= tion, whether we should use =E2=80=9Eold School=E2=80=9C valueOf() or a sli= ghtly more practiced of() for the other factory method?

The of() Version = has been around for ages e.g. in Josh Bloch=E2=80=99s EnumSet (even = when he still encouraged other naming conventions in his book ;-) but Java = 8 with Date/Time or other classes like Optional started using it more than = valueOf(). Similar in some of the Java ME 8 Embedded JSRs like MEEP.

Werner

--94eb2c1a66c4d123fd056141a3be-- From UtlswAFHPlyAKawQ@RwKIriitWfeDKzz0 Tue Dec 26 08:16:32 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-ua0-f170.google.com (mail-ua0-f170.google.com [209.85.217.170]) by mail.eclipse.org (Postfix) with ESMTP id 197A92DD124 for ; Tue, 26 Dec 2017 08:16:31 -0500 (EST) Received: by mail-ua0-f170.google.com with SMTP id g4so17248916ual.10 for ; Tue, 26 Dec 2017 05:16:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=k9V9gFM+tf4f1GHT70TZa9TPd/BkPMWxiWnk5nvq974=; b=IWJlqcgTaghc3CFSwX94vOJmfhT05sL5M9brSu6eYDxukRL1zTPKHXsU6BAFqoFQHh cUOxJzSKMZkduBj1CGyufmdpnk/hIE82MWb4hZQs2QLCVyXR6LL2lOxGX7K0iqFIO27K t+JWmobtBi4GYqer/DhX1s7r1QNKEWoMym463yXd5TNkHzE3Zu0aGJCY2H52dCdm/5o7 CmVwnk5HQNwWeX2fy0TG3DC3MSpSl/YMMOtD64Mp3+zeJoFpUSGYBy6dUqzNz8fJb0bk hqbh9Vbk58SuMpDcMhb8mkMEXnFCszvPPD3ZYAmNPIVVU7vdWrJyErVwnRNPsFct+m7o nmNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=k9V9gFM+tf4f1GHT70TZa9TPd/BkPMWxiWnk5nvq974=; b=Qco5rnZf+mPmIOlMqEFrSBTgtrkTQ5v9u4nYdD5nWDh6onQ9UDhm8BVCx4PdHk8lQi Ac/40JQGP0KymmW2iFoapQlwgps1mz/QvvxTpgzxX2Z2eaOqUjDq8nTj7r6e3cCurWT4 7997KZH1e7AMg34p33cf9RdWvj2wmYNps61v3GA22e2bsanhN/Jvhngxc6/s8H8tRJ5g EGzsk+qRMqVC84/CCgfEXVLHXXW6baBYNYEbO3nIMRxsfKLzDBQrMbowdi/kzSJpV6Hd stEA3eW6Phj3u4b+Ke2w8N/sDcZT0C6NhkB6EFN58QUeSeOIxyuV8i4bX+27ugKyt1tj aWvg== X-Gm-Message-State: AKGB3mJVSfUochUIOKia7NWfTcIdo/vbo/b0iOeSiEgLUSGHU9Fi3DMY c8TTeUD4uBICR40RwM2auGWNitzNveAs+zboCow= X-Google-Smtp-Source: ACJfBos1tifdkAv24fnDOVxEZEhAgVWPYLqzMK8I2DX8efv8QEqS7qbikQjwpEj1SyFtQtMUc1QQeEKCd4TDg+jnHAY= X-Received: by 10.176.18.99 with SMTP id s35mr26547570uac.93.1514294191287; Tue, 26 Dec 2017 05:16:31 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: "John D. Ament" Date: Tue, 26 Dec 2017 13:16:20 +0000 Message-ID: To: Jean-Louis Monteiro Content-Type: multipart/alternative; boundary="f403045ed8405b727f05613e1770" X-Mailman-Approved-At: Wed, 27 Dec 2017 02:28:37 -0500 Cc: Emily Jiang , kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe, Hendrik Ebbers , "David Blevins \(Tomitribe\)" , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Dec 2017 13:16:32 -0000 --f403045ed8405b727f05613e1770 Content-Type: text/plain; charset="UTF-8" Here's what I'm gathering, from reading and thinking about it: - parse w/ CharSequence seem newer (e.g. the java.time package) and seem to follow the newer pattern of the JVM which is everything behind interface/abstract classes. - valueOf represents the legacy components (Numbers) and takes String I'm more inclined to say that C is the better route to take, with a preference for parse methods over valueOf methods based on the above. I'd probably even venture that the correct order should be parse -> valueOf -> Constructor. I think there would be no harm in doing B, but its something we may even want to get input from the JVM architects to understand long term goals and if from a language standpoint there's preferences. John On Tue, Dec 26, 2017 at 4:36 AM Jean-Louis Monteiro < UL+efwNekpHoIVIo@PSpseNSHFB7ZptfE> wrote: > +1 for B > > As we have discussed, C is dangerous as we can pick up totally unrelated > methods. There is too much of a magic in there. > Also agree with the comment Anatole did. We need a deterministic order. > > Jean-Louis > > -- > Jean-Louis Monteiro > http://twitter.com/jlouismonteiro > http://www.tomitribe.com > > On Mon, Dec 25, 2017 at 1:01 PM, Kenji Kazumura > wrote: > >> +1 for C >> >> I don't think there are a lot of codes using >> 'constructor(CharSequence)' and 'valueOf(CharSequence)'. >> To simplify API, C is minimum and enough set. >> >> >> In message >> [VOTE] List of Implicit Converter conditions >> Mark Struberg wrote: >> >> > Good evening! >> > >> > In ticket #13 and spread out in microprofile-config we had a long >> discussion about which conditions must be met to make a Class being picked >> up with an implicit converter. >> > >> > The following 3 options are on the table so far: >> > >> > A.) The original idea: >> > * constructor(String); >> > * valueOf(String); >> > * parse(String); >> > >> > B.) Basically A but also take CharSequence as parameter >> > * constructor with String of CharSequence parameter >> > * valueOf with String of CharSequence parameter >> > * parse with String of CharSequence parameter >> > >> > C.) A mixed approach >> > * constructor(String); >> > * valueOf(String); >> > * parse(CharSequence); >> > >> > >> > Please vote with the number and an explanation why it should be taken. >> > We will tally the results on our next EG meeting. >> > >> > >> > >> > My personal VOTE is +1 for option B. >> > Reason: We have tons of static T parse(CharSequence) in java.time. That >> means we realls should support CharSequence for parse. >> > Otoh there are many constructors, parse and valueOf with both String >> but also CharSequence in the JDK and many highly used libraries like Apache >> commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods >> with String params and other methods with CharSequence (option c) would imo >> lead to confusion for users. >> > >> > txs and LieGrue, >> > strub >> > >> > >> > PS: adding all EG members to cc as I'm not 100% sure if the EG list >> already works properly. >> > >> >> > --f403045ed8405b727f05613e1770 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Here's what I'm gathering, from reading and thinki= ng about it:

- parse w/ CharSequence seem newer (e.g. th= e java.time package) and seem to follow the newer pattern of the JVM which = is everything behind interface/abstract classes.
- valueOf repres= ents the legacy components (Numbers) and takes String

<= div>I'm more inclined to say that C is the better route to take, with a= preference for parse methods over valueOf methods based on the above.=C2= =A0 I'd probably even venture that the correct order should be parse -&= gt; valueOf -> Constructor.

I think there would= be no harm in doing B, but its something we may even want to get input fro= m the JVM architects to understand long term goals and if from a language s= tandpoint there's preferences.

John

On Tue, Dec 26, 2017 at 4:36 AM Je= an-Louis Monteiro <jlmonteir= AVtfPDT6RYgm5Tl2@PSpseNSHFB7ZptfE> wrote:
+1 for B

As we have discussed, C is dangero= us as we can pick up totally unrelated methods. There is too much of a magi= c in there.
Also agree with the comment Anatole did. We need a de= terministic order.

Jean-Louis

On Mon, Dec 25, 2017 at 1:01 PM, Kenji Kazum= ura <ddGT1wYMfoBvU9fM@Q0W4M5u9yf+Cl+rM> wrote:
+1 for C

I don't think there are a lot of codes using
'constructor(CharSequence)' and 'valueOf(CharSequence)'. To simplify API, C is minimum and enough set.


In message <OzG6zT5puMIxBNuU@XsDwRwvsbrFQN1Tu>= ;
=C2=A0 =C2=A0[VOTE] List of Implicit Converter conditions
=C2=A0 =C2=A0Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:

> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
>=C2=A0 * constructor(String);
>=C2=A0 * valueOf(String);
>=C2=A0 * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
>=C2=A0 * constructor with String of CharSequence parameter
>=C2=A0 * valueOf with String of CharSequence parameter
>=C2=A0 * parse with String of CharSequence parameter
>
> C.) A mixed approach
>=C2=A0 * constructor(String);
>=C2=A0 * valueOf(String);
>=C2=A0 * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.
>


--f403045ed8405b727f05613e1770-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Tue Dec 26 12:28:11 2017 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-wm0-f54.google.com (mail-wm0-f54.google.com [74.125.82.54]) by mail.eclipse.org (Postfix) with ESMTP id 4452017D455 for ; Tue, 26 Dec 2017 12:28:10 -0500 (EST) Received: by mail-wm0-f54.google.com with SMTP id t8so35872367wmc.3 for ; Tue, 26 Dec 2017 09:28:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:mime-version:to:cc:from:subject:date:importance :in-reply-to:references; bh=ketYpPDxjUzT0V5Fxcyq7IuN3nKYR0J+FIsOrJHuTPk=; b=jEj7p2EkuQh7lRfY/7CcbiGTNSC5QmJ1MKLMduudAfh0btYUB3zWvxVk+AXtIpBRk2 AsawoXgCyhpPj8lKaleI+8Yh5HWGMHWVZcAFlKWFrR3DhupXsgF9YhuK+N/seEa9MNgQ xrV9gE/WO7rZXcAA2EaUKsGvu7h4Ws1fuVHQixJNFWCKGSgLRKmoPm0FsXX9jw+wwSlz dEVu7ZqwwxIrLzyy4EEiuPNTqlf1ljoTU86haSsKXbyWRHThTiCtwVdSRwLTK+1rB1NH 7D024Yj/vtiNrWezrW+m9moK4XsJi33eDGeXWFMcUCvXYKicFD0YnFN3hlqONgWvIA0q T6zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:mime-version:to:cc:from:subject:date :importance:in-reply-to:references; bh=ketYpPDxjUzT0V5Fxcyq7IuN3nKYR0J+FIsOrJHuTPk=; b=CPpEI46nQE+xIpY1puSn+xsWRrHfFthRqy2HGh/uWUFHp4y1jRoDhQyp7cY4jyk5+x BRQiuxPiTTI83lkjux3y+HtIYA0qGKk2oJmLawW6GOFyZ5FLXGDYTk9Az6fhI0jqcjjC OjeN4dZF8333sYuBie2b7aiNN9pp3LU/p0vx10cMR4kekWvF7DFLq+iMiei5TokIoHub 9vi470ltoHesasoJA82aLqwxscD0f4bMyDA0ABgLNxxwlz++J1VzzBqbjeALypIqbGG3 C8qL7U5uqXLs3O5r0nh301Z5lztlVVAOQIPueyoQY06fClYdWEdQnGeKbn5clx1K8uIm NxwA== X-Gm-Message-State: AKGB3mKpLJWFH5kot8AvK/LoQn6+OhMp17q9USGkr9l0t2c6Jxv/je76 NgMTDbxFYRT+c+l22y8xXMo= X-Google-Smtp-Source: ACJfBov5hG/wbLN4zCK6AA3BBInVOi+iEY0yDYdpAvUANqxBq356NCd738gMVzjPj2voliaG5cyQ3w== X-Received: by 10.80.241.218 with SMTP id y26mr31414391edl.120.1514309289965; Tue, 26 Dec 2017 09:28:09 -0800 (PST) Received: from ?IPv6:2a02:61:a2::2e9? ([2a02:61:a2::2e9]) by smtp.gmail.com with ESMTPSA id d3sm26467495edc.15.2017.12.26.09.28.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Dec 2017 09:28:08 -0800 (PST) Message-ID: MIME-Version: 1.0 To: "John D. Ament" , Jean-Louis Monteiro From: Werner Keil Date: Tue, 26 Dec 2017 18:28:07 +0100 Importance: normal X-Priority: 3 In-Reply-To: References: Content-Type: multipart/alternative; boundary="_8DF512E4-D18A-410E-B730-9E1C7E3344C2_" X-Mailman-Approved-At: Wed, 27 Dec 2017 02:28:37 -0500 Cc: Emily Jiang , "kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe" , Hendrik Ebbers , "David Blevins \(Tomitribe\)" , "hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk" Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Dec 2017 17:28:11 -0000 --_8DF512E4-D18A-410E-B730-9E1C7E3344C2_ Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Going over the JSR 363 API in preparation of 385 parsing a CharSequence is = also common there.=20 While various different ofX() methods in Java.time almost seem a bit much, = I=E2=80=99d like to repeat the question, whether we should use =E2=80=9Eold= School=E2=80=9C valueOf() or a slightly more practiced of() for the other = factory method? The of() Version has been around for ages e.g. in Josh Bloch=E2=80=99s Enum= Set (even when he still encouraged other naming conventions in his book ;-)= but Java 8 with Date/Time or other classes like Optional started using it = more than valueOf(). Similar in some of the Java ME 8 Embedded JSRs like ME= EP. Werner Sent from Mail for Windows 10 From: John D. Ament Sent: Tuesday, December 26, 2017 14:16 To: Jean-Louis Monteiro Cc: Kenji Kazumura; Mark Struberg; kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe; Werner Ke= il; Sebastian Daschner; Anatole Tresch; David Blevins (Tomitribe); jmesnil@= redhat.com; Hendrik Ebbers; hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk; Emily Jiang; tilen= cjQwDYVjbvgnEq6P@LG/3Wit29ynM2tMK Subject: Re: [VOTE] List of Implicit Converter conditions Here's what I'm gathering, from reading and thinking about it: - parse w/ CharSequence seem newer (e.g. the java.time package) and seem to= follow the newer pattern of the JVM which is everything behind interface/a= bstract classes. - valueOf represents the legacy components (Numbers) and takes String I'm more inclined to say that C is the better route to take, with a prefere= nce for parse methods over valueOf methods based on the above.=C2=A0 I'd pr= obably even venture that the correct order should be parse -> valueOf -> Co= nstructor. I think there would be no harm in doing B, but its something we may even wa= nt to get input from the JVM architects to understand long term goals and i= f from a language standpoint there's preferences. John On Tue, Dec 26, 2017 at 4:36 AM Jean-Louis Monteiro wrote: +1 for B As we have discussed, C is dangerous as we can pick up totally unrelated me= thods. There is too much of a magic in there. Also agree with the comment Anatole did. We need a deterministic order. Jean-Louis -- Jean-Louis Monteiro http://twitter.com/jlouismonteiro http://www.tomitribe.com On Mon, Dec 25, 2017 at 1:01 PM, Kenji Kazumura wrote: +1 for C I don't think there are a lot of codes using 'constructor(CharSequence)' and 'valueOf(CharSequence)'. To simplify API, C is minimum and enough set. In message =C2=A0 =C2=A0[VOTE] List of Implicit Converter conditions =C2=A0 =C2=A0Mark Struberg wrote: > Good evening! > > In ticket #13 and spread out in microprofile-config we had a long discuss= ion about which conditions must be met to make a Class being picked up with= an implicit converter. > > The following 3 options are on the table so far: > > A.) The original idea: >=C2=A0 * constructor(String); >=C2=A0 * valueOf(String); >=C2=A0 * parse(String); > > B.) Basically A but also take CharSequence as parameter >=C2=A0 * constructor with String of CharSequence parameter >=C2=A0 * valueOf with String of CharSequence parameter >=C2=A0 * parse with String of CharSequence parameter > > C.) A mixed approach >=C2=A0 * constructor(String); >=C2=A0 * valueOf(String); >=C2=A0 * parse(CharSequence); > > > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting. > > > > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. That m= eans we realls should support CharSequence for parse. > Otoh there are many constructors, parse and valueOf with both String but = also CharSequence in the JDK and many highly used libraries like Apache com= mons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods wit= h String params and other methods with CharSequence (option c) would imo le= ad to confusion for users. > > txs and LieGrue, > strub > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list alrea= dy works properly. > --_8DF512E4-D18A-410E-B730-9E1C7E3344C2_ Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8"

Going over the JSR 3= 63 API in preparation of 385 parsing a CharSequence is also common there. <= o:p>

 =

While various different ofX= () methods in Java.time almost seem a bit much, I=E2=80=99d like to repeat = the question, whether we should use =E2=80=9Eold School=E2=80=9C valueOf() = or a slightly more practiced of() for the other factory method?<= /span>

 

=

The of() Version has been around for a= ges e.g. in Josh Bloch=E2=80=99s EnumSet (even when he still encoura= ged other naming conventions in his book ;-) but Java 8 with Date/Time or o= ther classes like Optional started using it more than valueOf(). Similar in= some of the Java ME 8 Embedded JSRs like MEEP.

 

Werner

=  

Sent from Mail for Windows 10

 

From: John D. Ament
Sent: Tuesday, December= 26, 2017 14:16
To: J= ean-Louis Monteiro
Cc: = Kenji Kazumura; Mark Struberg;= configJSR-experts@eclipse= .org; Werner Keil; Sebastian Daschner; Anatole Tresch; David Blevins (Tomitribe); WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr; He= ndrik Ebbers; hiromi_18_= SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk; Emily Ji= ang; ewC8D/aE5uhyyzgq@LG/3Wit29ynM2tMKSubject: Re: [VOTE] List of Implicit Converter conditions

 

Here's= what I'm gathering, from reading and thinking about it:

 

- parse w= / CharSequence seem newer (e.g. the java.time package) and seem to follow t= he newer pattern of the JVM which is everything behind interface/abstract c= lasses.

- valueOf represents the legacy = components (Numbers) and takes String

 

I'm more inclined to say= that C is the better route to take, with a preference for parse methods ov= er valueOf methods based on the above.  I'd probably even venture that= the correct order should be parse -> valueOf -> Constructor.

 

I think there would be no harm in doing B, but its something we may e= ven want to get input from the JVM architects to understand long term goals= and if from a language standpoint there's preferences.

 

John

On Tue, De= c 26, 2017 at 4:36 AM Jean-Louis Monteiro <UL+efwNekpHoIVIo@PSpseNSHFB7ZptfE> wrote:

+1 for B=

 

As we have discussed, C is dangerous as we can pick up totally unre= lated methods. There is too much of a magic in there.

Also agree with the comment Anatole did. We need a determinis= tic order.

 

Jean-Louis

 

On Mon, Dec 25, 2017 at 1:01 PM, Kenji Ka= zumura <ddGT1wYMfoBvU9fM@Mv7MVcZ6mdcFGMSo= ujitsu.com> wrote:

+1 for C

I don't think there are a lot of= codes using
'constructor(CharSequence)' and 'valueOf(CharSequence)'.To simplify API, C is minimum and enough set.


In message <OzG6zT5puMIxBNuU@XsDwRwvsbrFQN1Tu>
   = ;[VOTE] List of Implicit Converter conditions

   Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> w= rote:

> Good evening!
>
> In ticket #13 and spread ou= t in microprofile-config we had a long discussion about which conditions mu= st be met to make a Class being picked up with an implicit converter.
&g= t;
> The following 3 options are on the table so far:
>
>= A.) The original idea:
>  * constructor(String);
>  = * valueOf(String);
>  * parse(String);
>
> B.) Basic= ally A but also take CharSequence as parameter
>  * constructor = with String of CharSequence parameter
>  * valueOf with String o= f CharSequence parameter
>  * parse with String of CharSequence = parameter
>
> C.) A mixed approach
>  * constructor(= String);
>  * valueOf(String);
>  * parse(CharSequenc= e);
>
>
> Please vote with the number and an explanation = why it should be taken.
> We will tally the results on our next EG me= eting.
>
>
>
> My personal VOTE is +1 for option B.=
> Reason: We have tons of static T parse(CharSequence) in java.time.= That means we realls should support CharSequence for parse.
> Otoh t= here are many constructors, parse and valueOf with both String but also Cha= rSequence in the JDK and many highly used libraries like Apache commons, Gu= ava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods with String= params and other methods with CharSequence (option c) would imo lead to co= nfusion for users.
>
> txs and LieGrue,
> strub
>>
> PS: adding all EG members to cc as I'm not 100% sure if the = EG list already works properly.
>

<= /div>

 

 

= --_8DF512E4-D18A-410E-B730-9E1C7E3344C2_-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Fri Dec 29 03:30:29 2017 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from sonic302-19.consmr.mail.ir2.yahoo.com (sonic302-19.consmr.mail.ir2.yahoo.com [87.248.110.82]) by mail.eclipse.org (Postfix) with ESMTP id 13AB02DCD30 for ; Fri, 29 Dec 2017 03:30:28 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1514536228; bh=BZtn6ITZ5YF2OWkvmy83h6ypZMebzyQMnB+WTLvuoag=; h=From:Date:Subject:References:In-Reply-To:To:From:Subject; b=NjO5phbCVZnQtVidueTYWPpeqkxUUKaHj8Yf32usmpFWZQfe1oZtWk5HTbxQY1INJ5oPCyLwFjXqbunT0usryJrsA9z5gGegQAZ8FcbL8L80KGzQ9RaYg0QBD1M5Hun3Hvn3w9dlhNuzCjkZOLwojTVaqTsXF1ky5NX73Qwwqge9+Yz422PsB7wpIcS4JeCdl8Pef2+aO4x3bgWz9/pREm5kqbaGRA5n3WCcBlS82zxNZ521pySZerPx3Ql3Z0DDdhh5b3hogHUfjeCRLMmLoFt0j3iM18SC/BS0eBZKSmrOmDTuutvbvPrh2suruvmdBzfUeJJmPybMXCX6cqjOlA== X-YMail-OSG: XP75isQVM1lSz9h.vf9kQREy8X8yZ5vo0MDEt_5fNEq5vYz5V3iLw.7LXBhcouF F.TP139T3b2Ok7TwGCaE_NXuRvJWP7m_9zLcOkIWIKAVyrhLc3ddiMWDMYvrACQWBr_l66w7VVtU lt3GLeWM2EFp5B3ZeIFjBo5WLbbINuUShOgqnwOcBWGZb4QhHviMUd4cIOdy2TjeXHKTXh6UzDsK uVDaXHxrTjPscpkqhE9mGtavxFm6dM06FtvlGabdpX6uHtqUPPKtQRf7kBuZ7o3HI0fFIfNzxrbw NwpugAk_OrnuO9R8dAFutsHMea_47ABRL879pqT51bChRQhxobN6JweeWCSJDTj78am5M.nkXn3r DJceg2DSpWSrGD1dZq3Mt7o8bMP4upVMhJToHDBgYMkZfg_k0kgS.D5K2rarZiMnCUZ1Tl6qTEng xOt8EZZMRc3IoH6MTDD_cdj7V89Wv8jXJnNfAdqlAHm1xc43_nQlpWWDxhecYwbIkOuaeeA-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.ir2.yahoo.com with HTTP; Fri, 29 Dec 2017 08:30:28 +0000 Received: from smtp127-mob.biz.mail.ir2.yahoo.com (EHLO [192.168.0.45]) ([46.228.39.148]) by smtp409.mail.ir2.yahoo.com (JAMES SMTP Server ) with ESMTPA ID 2f0d2ac98bf9e14f30345154a9ddbed8 for ; Fri, 29 Dec 2017 08:30:26 +0000 (UTC) From: Mark Struberg Content-Type: multipart/alternative; boundary=Apple-Mail-0DD4536B-9722-4025-A927-63CF811B72FC Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (1.0) Date: Fri, 29 Dec 2017 09:30:25 +0100 Message-Id: References: In-Reply-To: To: ConfigJSR expert discussions X-Mailer: iPad Mail (15A432) Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 08:30:29 -0000 --Apple-Mail-0DD4536B-9722-4025-A927-63CF811B72FC Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Servus! Ich k=C3=B6nnt heute am sp=C3=A4teren NAchmittag in der Stadt sein. Bin n=C3=A4he Karlsplatz. 0664 608 444 1244 Liegrue, Strub > Am 26.12.2017 um 18:30 schrieb Werner Keil : >=20 > Going over the JSR 363 API in preparation of 385 parsing a CharSequence is= also common there. >=20 > While various different ofX() methods in Java.time almost seem a bit much,= I=E2=80=99d like to repeat the question, whether we should use =E2=80=9Eold= School=E2=80=9C valueOf() or a slightly more practiced of() for the other f= actory method? >=20 > The of() Version has been around for ages e.g. in Josh Bloch=E2=80=99s Enu= mSet (even when he still encouraged other naming conventions in his book ;-)= but Java 8 with Date/Time or other classes like Optional started using it m= ore than valueOf(). Similar in some of the Java ME 8 Embedded JSRs like MEEP= . >=20 > Werner >=20 > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe fr= om this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --Apple-Mail-0DD4536B-9722-4025-A927-63CF811B72FC Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Servus!

Ich k=C3=B6nnt heute am sp=C3=A4teren NAchmittag in der Stadt sein.
Bin n=C3=A4he Karlsplatz.

0664 608 444 1244=

Liegrue,
Strub

Am 26.12.20= 17 um 18:30 schrieb Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0>:

=

Going over the JSR 363 API in preparation of 385 parsing a Ch= arSequence is also common there.

While various different ofX() methods i= n Java.time almost seem a bit much, I=E2=80=99d like to repeat the question,= whether we should use =E2=80=9Eold School=E2=80=9C valueOf() or a slightly m= ore practiced of() for the other factory method?

The of() Version has been a= round for ages e.g. in Josh Bloch=E2=80=99s EnumSet (even when he sti= ll encouraged other naming conventions in his book ;-) but Java 8 with Date/= Time or other classes like Optional started using it more than valueOf(). Si= milar in some of the Java ME 8 Embedded JSRs like MEEP.

Werner

____________________= ___________________________
ConfigJSR-experts mailing list
ConfigJSR-ex= en8AriwiZEeUEenG@ElHQwbxuqmY1UZfe
To change your delivery options, retri= eve your password, or unsubscribe from this list, visit
https://d= ev.eclipse.org/mailman/listinfo/configjsr-experts
= --Apple-Mail-0DD4536B-9722-4025-A927-63CF811B72FC-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Fri Dec 29 05:09:15 2017 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from sonic311-30.consmr.mail.ir2.yahoo.com (sonic311-30.consmr.mail.ir2.yahoo.com [77.238.176.162]) by mail.eclipse.org (Postfix) with ESMTP id 39DC82DCD44 for ; Fri, 29 Dec 2017 05:09:14 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1514542154; bh=rT6klnw47nrXvFRGD2M4lsi4fVHa6sPpPmpgozF6/FU=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject; b=ZBU5CWwWrnlOOmkoQH94CSxAUettfLbE5RY7wv+8d21ZPBi+44xCWwdIaLWVi0Ygiv3lU3lfjh5yavdBSVRApVwJd2j2tMhtsJ8dKQA6Uqbhnz9ZSvKetYbxuVCh4aA9IxI6OhaCyu4lh6CTYWXcJE71USEhg1burAWrfgrSdF2Kz4wG+wFIMNLVxKPkhXwZQ7AVTubR4j+IDnwoN3NrmwEol8d9/dS3jQwE8iHi59Ov1r47mEgZthtHpSD4NZ+SBmHaooSqV7fLpq+ECWHkc2a9Lfwwv6hgl44SLZ8K39IjwoMycZnnb0X2S1MepTs/C+mFbiv3B/AIJA+fQ2GDxw== X-YMail-OSG: kCeAs2YVM1lHlqA1lXYw_MXbRJBIVhv_MEEXpHnYLpqn3oCqNEJtoFoXLBaQYN. v_csP5183rvY.dSTKS9IzBby3a_C5m1.U.EEpb4JdzxM4W7BAMe_PVndGza.eWPqpMANaeOffjKh 5idoOyj6HYZP_DwXGp5.cQlMafGSOykxjf7KPTF29vkbO4.4b8Ebu4LWzu9BZvmxhCnYwHdQWsXg BORBK4kM7xkG7AwPDMzBCecuoJtRQwh4b_VRCwUFZMwHoMc_2KmEbsF8ml5_xfyNG5rj08M3zYdb y.MwJZ9EPXiSq5rnhJVFFI28iRLpEiT0btRyHQMyRmb1uzZ7niXgGkwbzby2KVj8mEVCUbJbau7b LquC_0MBSk0795rR9TJZT1FOCrjRKCMHYZXcs76eCMTGmqjyoXWCC.VmUcpxrGB3cKhC2_1jiJ52 D8mPQSgtmm1pe51.g58it.BYni.LxSZ1l18i9O_APlxU85dgY5Id4zhPyxSAcYj_W.Xy.Cg-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.ir2.yahoo.com with HTTP; Fri, 29 Dec 2017 10:09:14 +0000 Received: from smtp170.mail.ir2.yahoo.com (EHLO [192.168.0.234]) ([46.228.39.37]) by smtp409.mail.ir2.yahoo.com (JAMES SMTP Server ) with ESMTPA ID 49e82d214ab665ea9bc0be67f6bb1c60; Fri, 29 Dec 2017 10:09:09 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) From: Mark Struberg In-Reply-To: Date: Fri, 29 Dec 2017 11:09:07 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: ConfigJSR expert discussions X-Mailer: Apple Mail (2.3445.5.20) Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 10:09:15 -0000 whoops sorry, should go to Werner only. Classical ipad fat-fingering ;) LieGrue, strub > Am 29.12.2017 um 09:30 schrieb Mark Struberg : >=20 > Servus! >=20 > Ich k=C3=B6nnt heute am sp=C3=A4teren NAchmittag in der Stadt sein. > Bin n=C3=A4he Karlsplatz. >=20 >=20 >=20 > Liegrue, > Strub >=20 > Am 26.12.2017 um 18:30 schrieb Werner Keil : >=20 >> Going over the JSR 363 API in preparation of 385 parsing a = CharSequence is also common there. >>=20 >> While various different ofX() methods in Java.time almost seem a bit = much, I=E2=80=99d like to repeat the question, whether we should use = =E2=80=9Eold School=E2=80=9C valueOf() or a slightly more practiced of() = for the other factory method? >>=20 >> The of() Version has been around for ages e.g. in Josh Bloch=E2=80=99s = EnumSet (even when he still encouraged other naming conventions in his = book ;-) but Java 8 with Date/Time or other classes like Optional = started using it more than valueOf(). Similar in some of the Java ME 8 = Embedded JSRs like MEEP. >>=20 >> Werner >>=20 >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or = unsubscribe from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts From UtlswAFHPlyAKawQ@RwKIriitWfeDKzz0 Thu Jan 4 09:49:47 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-ua0-f170.google.com (mail-ua0-f170.google.com [209.85.217.170]) by mail.eclipse.org (Postfix) with ESMTP id 02B642DD05E for ; Thu, 4 Jan 2018 09:49:46 -0500 (EST) Received: by mail-ua0-f170.google.com with SMTP id n6so1209374uak.0 for ; Thu, 04 Jan 2018 06:49:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=y/4L3C7NtY6SzauCjyWqbdzgWkRJGIYr+IdEh2mYbOQ=; b=RouJwnec317Q0Pm6hW2XtJ60sS/0wJncB4l9N8hIr+XU5MgRkpER9J8Sj5h+7hjf77 rmXUEAnhQ1unSUg+rCSasBlqdCPbZQKFdaam3KO1UmgYraO9b1tIPipaJ7G3PM2mSWxO B++RisIyCg2ytLQESs+vZTDdFTbKkotyausyIMIQDkKe7MdyPgDz8g0cneR7HNmD1uG+ 2u7OPVLVXa3cktiohm8917UYj91rJT7XI4haaRNErTCFJ6/ljH7AYGJ8oB8rU92+uhJ4 wysykpOZpNT9Hi6yKSAW6KFDb5NPiAJPKiyU970ci51yzP/POSKdr6fogKouFaEg5W6/ siWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=y/4L3C7NtY6SzauCjyWqbdzgWkRJGIYr+IdEh2mYbOQ=; b=HqmcEHAofvmcYrZ74b/Ky5rm4oYRA4wH6P5rpeSJWkBU3Rr3IE/0LyNDPSiTwLO8j5 678M3FPopVnWSkpLIy3CXKToilh0Ot/xN2jMKTjTGpVHSUVnO9kMFOs1MzRMsJ7brri3 Jz3mGuDEvotTP8O+6ELpOrpsPWBcBxwjEIS6ez8jBuA1B2y6zKuVhSXSFtYpFkmtTZMb X6jdN5ZvDFh65552mxvczjhIZKwuuPtFxNvJ5E4N1Yx+XmNBw2lIzjmkQiDFZqd9DmDu LLADLl91S82rePEInEYOKrtNBaXpKKOR4CL9YnGJjiH1q4K07LCv3lQagLDMIax6tF9O xEnw== X-Gm-Message-State: AKGB3mIPt5e0Pl4qpcZiXhDz6ZJlTYjRXbzfCNHiogXhGk64kvBM/kQL depopQfWigBYI3Sqj8mjO1anRaJtgnIds7aSWgt7xA== X-Google-Smtp-Source: ACJfBot0E9ZFDqjLhwedFUF7kAwTNaPz2nFEyxEG54QZuHI8rSwCamNIqbviXvHqO8lb1yYUC/dIZh0wWSdKKLtt1t4= X-Received: by 10.176.19.130 with SMTP id m2mr5219986uae.24.1515077386490; Thu, 04 Jan 2018 06:49:46 -0800 (PST) MIME-Version: 1.0 From: "John D. Ament" Date: Thu, 04 Jan 2018 14:49:36 +0000 Message-ID: To: "kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe" Content-Type: multipart/alternative; boundary="001a1145675e6dd9dc0561f471ad" Subject: [ConfigJSR-experts] Test X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jan 2018 14:49:47 -0000 --001a1145675e6dd9dc0561f471ad Content-Type: text/plain; charset="UTF-8" Testing an email. --001a1145675e6dd9dc0561f471ad Content-Type: text/html; charset="UTF-8"
Testing an email.
--001a1145675e6dd9dc0561f471ad-- From WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr Thu Jan 4 08:09:51 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-wr0-f178.google.com (mail-wr0-f178.google.com [209.85.128.178]) by mail.eclipse.org (Postfix) with ESMTP id EA8CA2DD02F for ; Thu, 4 Jan 2018 08:09:50 -0500 (EST) Received: by mail-wr0-f178.google.com with SMTP id 36so1441875wrh.1 for ; Thu, 04 Jan 2018 05:09:50 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=PZddN2y3VNhdy8augyH7b1xV+TY63GJepe67pV+s4r8=; b=jMMwz3juY+AU0mKpQDbWpGZThZNmaEoreO22eIA5siaxL1LoLLGT4b1flLU4yDzRJ9 diwr6mVxal+Dkq3+dteqJZYy+6QyfuzbdBNCUsfBx51DRnjriOESj/wMxyr29pEXs0fg wOm5rbA3dUcyBdGyOqcvJWmcdddg09g3Sp2yGh1LSh5UeVWSUUv8ixQ3sT/kSLfQkHod KbChohQtLJfK5eCc3yEMDloDMzEzKigo3b+z4oylBNsPQAxb1Tm3eq1/aJAK0mav1Yxr FAU1q3AAAw75SXxN7rWJOqML45LpmRBJoqLCQ9EtMrkcrB4npP4VsPheGsx+cdNzwsFO cjGg== X-Gm-Message-State: AKGB3mL8LS3vSOYEb/ohpNFAiZqtlnbMYzxysO58XDdmce4bWNXId28Z NLsWyNAycOHdrbcJTV7a5ynoSQ== X-Google-Smtp-Source: ACJfBov71bdbdewEgCuiUXMD18vX/rxxQibCO3ad/38zsH7XO+MN09mbqsdkMWxGIKC1NPVTY5GrYQ== X-Received: by 10.223.166.120 with SMTP id k111mr4542083wrc.125.1515071389695; Thu, 04 Jan 2018 05:09:49 -0800 (PST) Received: from [192.168.10.26] (rr238-1-78-246-245-28.fbx.proxad.net. [78.246.245.28]) by smtp.gmail.com with ESMTPSA id p29sm4824902wmf.20.2018.01.04.05.09.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jan 2018 05:09:48 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) From: Jeff Mesnil In-Reply-To: Date: Thu, 4 Jan 2018 14:09:46 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Mark Struberg X-Mailer: Apple Mail (2.3445.5.20) X-Mailman-Approved-At: Thu, 04 Jan 2018 18:03:10 -0500 Cc: Emily Jiang , kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe, Hendrik Ebbers , Jean-Louis Monteiro , David Blevins , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk, "John D. Ament" Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jan 2018 13:09:51 -0000 To give some context to this vote, I searched for static methods in Java = 9 javadoc index[1]: * 236 static methods named valueOf(String) * 0 for valueOf(CharSequence) * 6 for parse(String) * 12 for parse(CharSequence) and while I was at it: * 5 for of(String) * 0 for of(CharSequence) * 22 for fromString(String) (most of them in Java FX) * 0 for from(String) I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect = but I=E2=80=99m inclined to vote for C. [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.html > On 22 Dec 2017, at 12:35, Mark Struberg wrote: >=20 > Good evening! >=20 > In ticket #13 and spread out in microprofile-config we had a long = discussion about which conditions must be met to make a Class being = picked up with an implicit converter. >=20 > The following 3 options are on the table so far: >=20 > A.) The original idea: > * constructor(String); > * valueOf(String);=20 > * parse(String); >=20 > B.) Basically A but also take CharSequence as parameter > * constructor with String of CharSequence parameter > * valueOf with String of CharSequence parameter > * parse with String of CharSequence parameter >=20 > C.) A mixed approach > * constructor(String); > * valueOf(String);=20 > * parse(CharSequence); >=20 >=20 > Please vote with the number and an explanation why it should be taken. > We will tally the results on our next EG meeting.=20 >=20 >=20 >=20 > My personal VOTE is +1 for option B. > Reason: We have tons of static T parse(CharSequence) in java.time. = That means we realls should support CharSequence for parse.=20 > Otoh there are many constructors, parse and valueOf with both String = but also CharSequence in the JDK and many highly used libraries like = Apache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of = some methods with String params and other methods with CharSequence = (option c) would imo lead to confusion for users. >=20 > txs and LieGrue, > strub >=20 >=20 > PS: adding all EG members to cc as I'm not 100% sure if the EG list = already works properly. --=20 Jeff Mesnil JBoss, a division of Red Hat http://jmesnil.net/ From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Sun Jan 7 18:05:37 2018 Return-Path: X-Original-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Delivered-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Received: from mail-lf0-f47.google.com (mail-lf0-f47.google.com [209.85.215.47]) by mail.eclipse.org (Postfix) with ESMTP id C1F5E2DCD0F for ; Sun, 7 Jan 2018 18:05:36 -0500 (EST) Received: by mail-lf0-f47.google.com with SMTP id u84so10324034lff.7 for ; Sun, 07 Jan 2018 15:05:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=I3nheoDqhOG7YX8EvSRhb8znP/PvQil/jeOre1kauiY=; b=OsVOzaGp0bAx+xDbhtFEWFkIfDqeR9nv6ie9y2tcj/5/LrDDRVwlEYPocRp6RjwjsQ vTGmZrJ3sEXvCTyyNN1VY5Gd4wYBn2FGhHZy4P0C0ehciCNbfp+AQHWlHfRLyD0Z7f4Q Z/2IyR+e7ietfBhygMYNahl3RowGYlRive0UfoTikydbmmOo6j3uztGhdE5JFA1uwMq2 tLHReKDs+sSIszM4M55vhNbg6qGOKYZtJ+6Um+5vN27rbmQaOe68EExq6UZESKkaGcB/ avce/mPRRTVWSx/HCi9DSK9wOfPHKgIHK4QUhJpOHoNuxbA2aoclMWRKV3oeyWAGc097 R16g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=I3nheoDqhOG7YX8EvSRhb8znP/PvQil/jeOre1kauiY=; b=UzlZ4bomcEjiwGq57PDDmN8GLoUNWvA0ErGFeWKVZWRC94nAIKY68NWCTF0IwNmYvh otNpkRTuHZauT43yAfWN8sqEIIMXcrywNtf0MtiRt7Ag7QK9B0/jCfJYdjZ+Agoe0tjv Boe0qgFK3crn+w5k/0Rj8VYp5N0G0lla013PvNUM+6TzsehkxiDh/aIUeJ/oc9LU2Azu h6kLGDHI0f9MLIsZugvymBoBydxPCyO59+r1n4cR8HmYU8c2vCZK9fOSwwGAr+KIJmFO P1YS48epJoyFeQq3Wrf/Nup+wXtUdRLRDsVQXVtcTjBpKrL10wq7cwbm3V9y9gZoWA8E 8pMw== X-Gm-Message-State: AKwxytf2QuhxqKTNcBnO7FyJ3qXilF173q2MU7zwQheRhjGmAJdtYDUd UbTtxDCfjHY5csL4Ipt1dLr3qrhDBTjVSV0Xreo= X-Google-Smtp-Source: ACJfBot7awPHB5XceW8j7h6ulePITkuOw2tiS3rt9TWSEJCD6dvNRa9m0VbHFXw5fMvHhQnUmbHrH/vyZvkU7umOY/E= X-Received: by 10.25.147.139 with SMTP id w11mr1321828lfk.58.1515366335903; Sun, 07 Jan 2018 15:05:35 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Sun, 7 Jan 2018 15:05:35 -0800 (PST) From: Emily Jiang Date: Sun, 7 Jan 2018 23:05:35 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="f403045f50c8280017056237b870" Subject: [ConfigJSR-experts] test X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jan 2018 23:05:37 -0000 --f403045f50c8280017056237b870 Content-Type: text/plain; charset="UTF-8" test -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --f403045f50c8280017056237b870 Content-Type: text/html; charset="UTF-8"
test
--
Thanks
Emily
=================
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--f403045f50c8280017056237b870-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Sun Jan 7 18:13:41 2018 Return-Path: X-Original-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Delivered-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Received: from mail-lf0-f53.google.com (mail-lf0-f53.google.com [209.85.215.53]) by mail.eclipse.org (Postfix) with ESMTP id 8EB232DCD0F for ; Sun, 7 Jan 2018 18:13:41 -0500 (EST) Received: by mail-lf0-f53.google.com with SMTP id e27so10301171lfb.9 for ; Sun, 07 Jan 2018 15:13:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=z18wTdgM3rswJ4V9w6yA76SJZ+KvAA32IcmULwqj9sk=; b=I5ugUZsCp6k8IeB30BNedxIdopzHagVAXgqWogcOFQ3XZoQ70pfCnor2Pv3gL81EWP zGkBrE6OpwxmGoSxrfwnna2bLZxF9+uPmDzLrP8IMOtKwwLzrgFAxbUNixF6izLr3nNC 93jkX2FeVvtWPVozxmEmtKimik/OHMUjgd028qMN0H0/5MRZNBbbbv3EqvyRFsIb2oOB AoTlmTcxGXYSaVF8ykB07I0Ftsjm0QW++G+Cx0wq0zFPUN4uJbSES7G2BC+Qehzq34Od 1Qo5+1qDGH759ZBQp3RyVLkSTXVAsdlR6b6w2asjW1/i2NCNuVgTkjSEo6xf2O7f+1IJ ISgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=z18wTdgM3rswJ4V9w6yA76SJZ+KvAA32IcmULwqj9sk=; b=nQ8liQlghZnxzoaqeJTiKlOveWOJKhVnXBoRA0tbLgXvpa51FVTAlxFTRxsbMErMy+ I4HY+h6hky05f9C7msQfVKeDSVdOCA7YIzEM23ejXJmuww+2ixJC1PXIfc7AHmXsCT4A yFv83aXb2oKKRP1nMPBmQcDxn8j4fKKdd2RfGU46EY6cyNjiF+6nSr66E3c55/DZmAW3 gGGlFRRJXX/dlyDtwQcS3GXpr7PDlCADUBeWUZX4O6qngSRzCjNbeLRr3kN1dJh3nG7k 08SAI99ueFLHF+2fr8581ttGQO3Q7uROLzHpzPVbAMRoHkwwdQnX4sDbEbYA7EQy+Am7 xMuw== X-Gm-Message-State: AKGB3mImZ1LAcAvjZcMlS3ucpV7E4/CCw+xLSj2w2n3KX+KwBm7DDxWs afzNFj+jk1zePH0NRfytSn31kIiyKkcc6G4c1yc= X-Google-Smtp-Source: ACJfBosT2pGnjqdYWpxbP/cB7bY0qLRqxZ1VVomOValmAuFDHWDTGHevkFSlbjt3YNKVi/85zXq5sex+ucOQnVA4YAM= X-Received: by 10.46.43.211 with SMTP id r80mr5141439ljr.90.1515366821006; Sun, 07 Jan 2018 15:13:41 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Sun, 7 Jan 2018 15:13:40 -0800 (PST) In-Reply-To: References: From: Emily Jiang Date: Sun, 7 Jan 2018 23:13:40 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="94eb2c1a68e4121038056237d511" Subject: Re: [ConfigJSR-experts] test X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jan 2018 23:13:41 -0000 --94eb2c1a68e4121038056237d511 Content-Type: text/plain; charset="UTF-8" another test On Sun, Jan 7, 2018 at 11:05 PM, Emily Jiang wrote: > test > -- > Thanks > Emily > ================= > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --94eb2c1a68e4121038056237d511 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
another test

On Sun, Jan 7, 2018 at 11:05 PM, Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
test=
--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



--
Thanks
Emily
=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--94eb2c1a68e4121038056237d511-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Sun Jan 7 18:26:04 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f54.google.com (mail-lf0-f54.google.com [209.85.215.54]) by mail.eclipse.org (Postfix) with ESMTP id 897732DCCA0 for ; Sun, 7 Jan 2018 18:26:04 -0500 (EST) Received: by mail-lf0-f54.google.com with SMTP id a12so10325440lfe.13 for ; Sun, 07 Jan 2018 15:26:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=4IT36DhYbxVtl4yjnI6QGMCTGLZA6L5NOMh3QyjxDoM=; b=OuoKjju4SaoJomnpSglsCiUQxWXImsWpXWO8c+MLIG34sBuP8z4ulZdY0FP+atxFYu kp3ol40ev5jCDs+JUNVJ07rrDHM1QLHeyptJHYq4Qhik7t87P1FXzIuTwKTZB2WumS4/ n4ArJx6cmfhdQOohBEpXaQ4BVgQUfnoByRMiFKvVN8trLClXrx3Z7P+clcvUQ2fCPkWA B+/PWg7uXKy5KV3ku4plLqdhN3MwxdY2s2TyJ8FIWDhpxT2yngI05w/aEz26rfWyFHnU JBdPJZB6gj6vYpadd/qGMRXWAFQedVQ9AIH5+jxTm5c0hT91DP1gxv1goyt8zFL2bigT ilTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=4IT36DhYbxVtl4yjnI6QGMCTGLZA6L5NOMh3QyjxDoM=; b=j1nxCpabKv1kZi3sjVDxbcwoY3JsCbFGHt0Kh8u0ZYDC+rgOgH9II4Tz6Ku0cCyOoS FgjAP2UK8GNopz1EN6m+KIoBPezNlVDYI3YjDGwVNliu5tv/RenuTGWbenYyz1jaH01X 65ZxHDFVIP7UUEQ9KSLYNFLCNdxfbLqqmuSFyoCnDBHbxfShqXCryouD92jUgJsNu615 SEqRlhYFWCjcIQcIUjMZzVBOLaz1keXKtvfRfJkzBdfZGKUY5Bu6s49JIZCFC6l2jz57 zG2r5s9KA2XD78467QJi2CApuEaSAUSbFUDySyksknbQVcnPD6513OOBaUaY7qL34A5t ndFg== X-Gm-Message-State: AKGB3mJ/1jKruSV1oe/u4fLgXN7oX8PudYvnNYAF1YDfN5vhPBkUX5PW cW/RCsPVOfj764lBVCXeQM2omiEU9pDtSDCmTfg= X-Google-Smtp-Source: ACJfBouBbs1xXoWKNdZ1V8rqCxqInn3RsUgGf9Z5+WTe5qRfyp54ecNCxV424jdEm7XodYGXHK80iPQI1fsSk21MOAM= X-Received: by 10.46.32.148 with SMTP id g20mr799833lji.133.1515367564361; Sun, 07 Jan 2018 15:26:04 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Sun, 7 Jan 2018 15:26:03 -0800 (PST) In-Reply-To: References: From: Emily Jiang Date: Sun, 7 Jan 2018 23:26:03 +0000 Message-ID: To: Jeff Mesnil Content-Type: multipart/alternative; boundary="001a1142b52260c51d05623801cd" X-Mailman-Approved-At: Mon, 08 Jan 2018 08:48:57 -0500 Cc: ConfigJSR expert discussions , Hendrik Ebbers , Jean-Louis Monteiro , David Blevins , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk, "John D. Ament" Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jan 2018 23:26:04 -0000 --001a1142b52260c51d05623801cd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable +1 Jeff! I have contacted a JVM Architect but he is on vacation. I'll report back as soon as I get any confirmation. Thanks Emily On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil wrote: > To give some context to this vote, I searched for static methods in Java = 9 > javadoc index[1]: > > * 236 static methods named valueOf(String) > * 0 for valueOf(CharSequence) > * 6 for parse(String) > * 12 for parse(CharSequence) > > and while I was at it: > > * 5 for of(String) > * 0 for of(CharSequence) > * 22 for fromString(String) (most of them in Java FX) > * 0 for from(String) > > I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect b= ut I=E2=80=99m inclined > to vote for C. > > [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.html > > > On 22 Dec 2017, at 12:35, Mark Struberg wrote: > > > > Good evening! > > > > In ticket #13 and spread out in microprofile-config we had a long > discussion about which conditions must be met to make a Class being picke= d > up with an implicit converter. > > > > The following 3 options are on the table so far: > > > > A.) The original idea: > > * constructor(String); > > * valueOf(String); > > * parse(String); > > > > B.) Basically A but also take CharSequence as parameter > > * constructor with String of CharSequence parameter > > * valueOf with String of CharSequence parameter > > * parse with String of CharSequence parameter > > > > C.) A mixed approach > > * constructor(String); > > * valueOf(String); > > * parse(CharSequence); > > > > > > Please vote with the number and an explanation why it should be taken. > > We will tally the results on our next EG meeting. > > > > > > > > My personal VOTE is +1 for option B. > > Reason: We have tons of static T parse(CharSequence) in java.time. That > means we realls should support CharSequence for parse. > > Otoh there are many constructors, parse and valueOf with both String bu= t > also CharSequence in the JDK and many highly used libraries like Apache > commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some method= s > with String params and other methods with CharSequence (option c) would i= mo > lead to confusion for users. > > > > txs and LieGrue, > > strub > > > > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list > already works properly. > > -- > Jeff Mesnil > JBoss, a division of Red Hat > http://jmesnil.net/ > > --=20 Thanks Emily =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --001a1142b52260c51d05623801cd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
+1 Jeff!

I have contacted a J= VM Architect but he is on vacation. I'll report back as soon as I get a= ny confirmation.


Thanks
Emily

On Thu, Jan 4, 2018 at 1:09= PM, Jeff Mesnil <WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr> wrote:
To give some context to this vote, I searched for stati= c methods in Java 9 javadoc index[1]:

* 236 static methods named valueOf(String)
* 0 for valueOf(CharSequence)
* 6 for parse(String)
* 12 for parse(CharSequence)

and while I was at it:

* 5 for of(String)
* 0 for of(CharSequence)
* 22 for fromString(String) (most of them in Java FX)
* 0 for from(String)

I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect but= I=E2=80=99m inclined to vote for C.

[1] https://docs.oracle.com/j= avase/9/docs/api/index-files/index-1.html

> On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
>
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
> * constructor(String);
> * valueOf(String);
> * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
> * constructor with String of CharSequence parameter
> * valueOf with String of CharSequence parameter
> * parse with String of CharSequence parameter
>
> C.) A mixed approach
> * constructor(String);
> * valueOf(String);
> * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--
Jeff Mesnil
JBoss, a division of Red Hat
http:/= /jmesnil.net/




--
Thanks
Emily=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--001a1142b52260c51d05623801cd-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Sun Jan 7 20:25:49 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f44.google.com (mail-lf0-f44.google.com [209.85.215.44]) by mail.eclipse.org (Postfix) with ESMTP id 68E562DCD2F for ; Sun, 7 Jan 2018 20:25:48 -0500 (EST) Received: by mail-lf0-f44.google.com with SMTP id w23so328585lfd.11 for ; Sun, 07 Jan 2018 17:25:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=/DgjlF7Zx8UQjzKsrHcdB+6qEn9O9i0lavUKzKAoDuM=; b=REOGXdkMhe1UKTRu1FI3hDZ7RbRqY3ZNte7vWc8xBadWPD1Usgsis/2tWjGHYqnyEK ADhtHDNUTmv+O174IXCPRt7IINBtN8VyorH2GXgKMBevWlYO5Q9Ih1a13Tj6uvgakkTe vTB5NroITcaMl0ylaZBJ+ZpvtfslNtOjjeu0A9csUSEur5KG0id+ST0L2xNBshUSyMfp SYsTkA1FgkVa4HsrsbYLLzRXoVfiV7+FF0KocL4r5OszAbBwajGmvpScdThht0sw3rdU asVx8eZastLp+brJ6a3IKG7InJOqdZdAGBvchbq5x6M23dg8meAvLdkb+d19RIgHMmdQ oUWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=/DgjlF7Zx8UQjzKsrHcdB+6qEn9O9i0lavUKzKAoDuM=; b=V65uflX2fEuAWKkGixnb6ZQx5I9m7kr/VnN839pAjoGfJWALKr8P+K4iIRognmHpjS WTMVXO6WIl7OgCvvVhfmtyPt3GPiHYatjA7qdi++myx6z5Ih+zrUHQVkwuLZ4Xoj/nEb arCHm9POWJMkDZagRGQ0biqWjIwWAcFfBaCnJPnEvgSQ0JFwsfdQ8Drm1IUNfufc1s7a WBy8yvhQXVryD0wtFBxq8w1hLH+iJn0rz3VPDgmRB+HnVC1IMH6Cj1TtQ/F/j0miTQj5 k3aJ0xDFnOGlRuA3VQrSbsgZC9ugAYWu6Bo4doHX44LGqPSYknTPTk7wZqDfT0TeTXPD BFRg== X-Gm-Message-State: AKGB3mL13YIz2rLJf5CfUxYuCEHOoHi+GVdWUqfHNzNXSp7gRDFCNX2L JVSX5oRwB6gQ690JzrtDE3Syd6bT81x2PdNIkXA= X-Google-Smtp-Source: ACJfBovLn1i3K1wpVMaTqYZe3WgjIZJSiqEUCBQrFBZxMMrhZCQnI0HbMjC7+eePzWziXTGmgRSFItwiMoRqXcmfyA0= X-Received: by 10.46.54.26 with SMTP id d26mr5657964lja.104.1515374748800; Sun, 07 Jan 2018 17:25:48 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.92.129 with HTTP; Sun, 7 Jan 2018 17:25:46 -0800 (PST) Received: by 10.25.92.129 with HTTP; Sun, 7 Jan 2018 17:25:46 -0800 (PST) In-Reply-To: References: From: Werner Keil Date: Mon, 8 Jan 2018 02:25:46 +0100 Message-ID: To: Emily Jiang Content-Type: multipart/alternative; boundary="f4f5e8094ce49aa029056239ad1a" X-Mailman-Approved-At: Mon, 08 Jan 2018 08:48:57 -0500 Cc: ConfigJSR expert discussions , Hendrik Ebbers , Jean-Louis Monteiro , David Blevins , "John D. Ament" , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jan 2018 01:25:49 -0000 --f4f5e8094ce49aa029056239ad1a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks! Am 08.01.2018 00:26 schrieb "Emily Jiang" : > +1 Jeff! > > I have contacted a JVM Architect but he is on vacation. I'll report back > as soon as I get any confirmation. > > > Thanks > Emily > > On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil wrote: > >> To give some context to this vote, I searched for static methods in Java >> 9 javadoc index[1]: >> >> * 236 static methods named valueOf(String) >> * 0 for valueOf(CharSequence) >> * 6 for parse(String) >> * 12 for parse(CharSequence) >> >> and while I was at it: >> >> * 5 for of(String) >> * 0 for of(CharSequence) >> * 22 for fromString(String) (most of them in Java FX) >> * 0 for from(String) >> >> I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect = but I=E2=80=99m inclined >> to vote for C. >> >> [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.html >> >> > On 22 Dec 2017, at 12:35, Mark Struberg wrote: >> > >> > Good evening! >> > >> > In ticket #13 and spread out in microprofile-config we had a long >> discussion about which conditions must be met to make a Class being pick= ed >> up with an implicit converter. >> > >> > The following 3 options are on the table so far: >> > >> > A.) The original idea: >> > * constructor(String); >> > * valueOf(String); >> > * parse(String); >> > >> > B.) Basically A but also take CharSequence as parameter >> > * constructor with String of CharSequence parameter >> > * valueOf with String of CharSequence parameter >> > * parse with String of CharSequence parameter >> > >> > C.) A mixed approach >> > * constructor(String); >> > * valueOf(String); >> > * parse(CharSequence); >> > >> > >> > Please vote with the number and an explanation why it should be taken. >> > We will tally the results on our next EG meeting. >> > >> > >> > >> > My personal VOTE is +1 for option B. >> > Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t >> means we realls should support CharSequence for parse. >> > Otoh there are many constructors, parse and valueOf with both String >> but also CharSequence in the JDK and many highly used libraries like Apa= che >> commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some metho= ds >> with String params and other methods with CharSequence (option c) would = imo >> lead to confusion for users. >> > >> > txs and LieGrue, >> > strub >> > >> > >> > PS: adding all EG members to cc as I'm not 100% sure if the EG list >> already works properly. >> >> -- >> Jeff Mesnil >> JBoss, a division of Red Hat >> http://jmesnil.net/ >> >> > > > -- > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > --f4f5e8094ce49aa029056239ad1a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks!=C2=A0

Am 08.01.2018 00:26 schrieb "Emily Jiang" <= ;bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC&g= t;:
+1 Jeff!

I have contacted a JVM Architect but= he is on vacation. I'll report back as soon as I get any confirmation.=


Thanks
Emily

On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil= <WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr> wrote:
To give some context to this vote, I searched for static methods in Jav= a 9 javadoc index[1]:

* 236 static methods named valueOf(String)
* 0 for valueOf(CharSequence)
* 6 for parse(String)
* 12 for parse(CharSequence)

and while I was at it:

* 5 for of(String)
* 0 for of(CharSequence)
* 22 for fromString(String) (most of them in Java FX)
* 0 for from(String)

I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect but= I=E2=80=99m inclined to vote for C.

[1] https://docs.oracle.com/javase= /9/docs/api/index-files/index-1.html

> On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
>
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
> * constructor(String);
> * valueOf(String);
> * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
> * constructor with String of CharSequence parameter
> * valueOf with String of CharSequence parameter
> * parse with String of CharSequence parameter
>
> C.) A mixed approach
> * constructor(String);
> * valueOf(String);
> * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--
Jeff Mesnil
JBoss, a division of Red Hat
http:/= /jmesnil.net/




--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DEmily Jiang
eji= CP/HTWanzfL651MW@Y45SF02wNnDqB7sJ
--f4f5e8094ce49aa029056239ad1a-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Tue Jan 9 17:42:58 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f51.google.com (mail-lf0-f51.google.com [209.85.215.51]) by mail.eclipse.org (Postfix) with ESMTP id 98D4B2DCCF9 for ; Tue, 9 Jan 2018 17:42:58 -0500 (EST) Received: by mail-lf0-f51.google.com with SMTP id y71so17648953lfd.12 for ; Tue, 09 Jan 2018 14:42:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=uw+gBN0FjkbmvsnfigZv09lTj2f0iqOjvLcejMPaPfg=; b=simja1S1hZbChyuPNt+mp0eOkEMLQpEWlHbeHGm364SVenETx+sByPTf33uay03PJM 9FZkFoeGPTmQrwkJ2YiA3uMpGv7DIhOCmYZxjOqRdEk21tQX6RUM1MRjt36/0zN+P3Am LMFAdBHDG64JAveSOKGsOsb8uCgFDk7GGRsF8SjpmXWYQ+SyLnvB/ycHyRS+JC0qe48v AC4ZVN1NOIFtaIxeKN214wfN/afLJWle86yfJF3S4Q2kzRBzdFO5K6xhuypKgVkDsT8U Sywswmbo0N7yToQ7dL1xNgZURpeuHNXeSWHsYQldy/kYGCss6TSm1TRdmEvq7jLHtvbe sdtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=uw+gBN0FjkbmvsnfigZv09lTj2f0iqOjvLcejMPaPfg=; b=mmtlCQK99osvAw5onIFlE8nRHSQH0LIqUoJmtbSU0f05MJiiKUL5DEDOiqc6MyNAD+ bd8mY9F3bP5mpCuZSF5vz2naZuSjFNhLv4EgMsGKe+xa90WPyPnPVhhnKI+/VKXoOHnF F67MermHls3SDHjVEw13ifHKf+N5wzPyctKy/9KdrsK8MbjcHikbMI8iRx2p/bpHUl8d Ag2m41n2GS8/NnGptoZKtnS0lVR4DhKrq2WZGm+66UjKG920MAIQuVEPEPjrsKVUtdBt w8Ea2Szab2NjefY1+pyqPMsnuOGXQ070RmIyRQ4JJgsyLFtlz+MV0++ZFhc0sJJwZmvh xr2w== X-Gm-Message-State: AKwxyte9UyYjD5iHpYn4Ub0Ex7ez0dCVxzll3DzNDB+2VM8FaLtg0uOK 8CRaU/JpxLp46IRcj3vKhAdxSuHP5oD1anvJH0o= X-Google-Smtp-Source: ACJfBosOQxNoVtWMdeIlpqOtqeQaow44WpjuXMKejcpy8ZgKOldKQ52pkKBPOtpb/zj7FNfr1aXEyIyHQ+yEM52H51I= X-Received: by 10.25.171.10 with SMTP id u10mr7757494lfe.12.1515537777909; Tue, 09 Jan 2018 14:42:57 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.92.129 with HTTP; Tue, 9 Jan 2018 14:42:56 -0800 (PST) In-Reply-To: References: From: Werner Keil Date: Tue, 9 Jan 2018 23:42:56 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="94eb2c1cd70ce567d805625fa24f" Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jan 2018 22:42:59 -0000 --94eb2c1cd70ce567d805625fa24f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Emily, Thanks for the update. of(String) is a short form for valueOf(String) so from what I know of other JSRs or APIs, only one of these factories should be there. In addition to maybe parse(CharSequence) and a constructor if needed. Regards, Werner On Tue, Jan 9, 2018 at 11:38 PM, Emily Jiang wrote: > As promised, I have finally got hold of a JVM SME. The recommended and > much used pattern will be of(String). Therefore, I think we should revisi= t > our plan: > > constructor(string) > of(String) > valueOf(String) > parse(CharSequence) > > > Thoughts? > > @Anatole, what type of combination does Tamaya support right now? > > Emily > > On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil wrote= : > >> Thanks! >> >> Am 08.01.2018 00:26 schrieb "Emily Jiang" : >> >>> +1 Jeff! >>> >>> I have contacted a JVM Architect but he is on vacation. I'll report bac= k >>> as soon as I get any confirmation. >>> >>> >>> Thanks >>> Emily >>> >>> On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil wrote: >>> >>>> To give some context to this vote, I searched for static methods in >>>> Java 9 javadoc index[1]: >>>> >>>> * 236 static methods named valueOf(String) >>>> * 0 for valueOf(CharSequence) >>>> * 6 for parse(String) >>>> * 12 for parse(CharSequence) >>>> >>>> and while I was at it: >>>> >>>> * 5 for of(String) >>>> * 0 for of(CharSequence) >>>> * 22 for fromString(String) (most of them in Java FX) >>>> * 0 for from(String) >>>> >>>> I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architec= t but I=E2=80=99m >>>> inclined to vote for C. >>>> >>>> [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.html >>>> >>>> > On 22 Dec 2017, at 12:35, Mark Struberg wrote: >>>> > >>>> > Good evening! >>>> > >>>> > In ticket #13 and spread out in microprofile-config we had a long >>>> discussion about which conditions must be met to make a Class being pi= cked >>>> up with an implicit converter. >>>> > >>>> > The following 3 options are on the table so far: >>>> > >>>> > A.) The original idea: >>>> > * constructor(String); >>>> > * valueOf(String); >>>> > * parse(String); >>>> > >>>> > B.) Basically A but also take CharSequence as parameter >>>> > * constructor with String of CharSequence parameter >>>> > * valueOf with String of CharSequence parameter >>>> > * parse with String of CharSequence parameter >>>> > >>>> > C.) A mixed approach >>>> > * constructor(String); >>>> > * valueOf(String); >>>> > * parse(CharSequence); >>>> > >>>> > >>>> > Please vote with the number and an explanation why it should be take= n. >>>> > We will tally the results on our next EG meeting. >>>> > >>>> > >>>> > >>>> > My personal VOTE is +1 for option B. >>>> > Reason: We have tons of static T parse(CharSequence) in java.time. >>>> That means we realls should support CharSequence for parse. >>>> > Otoh there are many constructors, parse and valueOf with both String >>>> but also CharSequence in the JDK and many highly used libraries like A= pache >>>> commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some met= hods >>>> with String params and other methods with CharSequence (option c) woul= d imo >>>> lead to confusion for users. >>>> > >>>> > txs and LieGrue, >>>> > strub >>>> > >>>> > >>>> > PS: adding all EG members to cc as I'm not 100% sure if the EG list >>>> already works properly. >>>> >>>> -- >>>> Jeff Mesnil >>>> JBoss, a division of Red Hat >>>> http://jmesnil.net/ >>>> >>>> >>> >>> >>> -- >>> Thanks >>> Emily >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> Emily Jiang >>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>> >> > > > -- > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > --94eb2c1cd70ce567d805625fa24f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Emily,

Thanks for the update.=C2=A0
of(String)=C2=A0
is a short form for=C2=A0
value= Of(String)=C2=A0

so from what I know of other JSRs= or APIs, only one of these factories should be there.=C2=A0
In a= ddition to maybe parse(CharSequence) and a constructor if needed.

Regards,
Werner
<= div>



On Tue, Jan 9, 2018 at 11:38 PM, Emily Jiang= <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
As pr= omised, I have finally got hold of a JVM SME. The recommended and much used= pattern will be of(String). Therefore, I think we should revisit our plan:=

constructor(string)
of(String)
valueOf(Stri= ng)
parse(CharSequence)


Thoughts?

@A= natole, what type of combination does Tamaya support right now?

Emily

On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil = <werner.keil@= gmail.com> wrote:
Thanks!=C2=A0

Am 08.01.2018 00:26 schrieb "Emily Jiang" <emijiang6@googl= email.com>:
<= div dir=3D"ltr">
+1 Jeff!

I have contacted a JV= M Architect but he is on vacation. I'll report back as soon as I get an= y confirmation.


Thanks
Emily

On Thu, Jan 4, 2018 at 1:09= PM, Jeff Mesnil <WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr> wrote:
To give some context to this vote, I searched for stati= c methods in Java 9 javadoc index[1]:

* 236 static methods named valueOf(String)
* 0 for valueOf(CharSequence)
* 6 for parse(String)
* 12 for parse(CharSequence)

and while I was at it:

* 5 for of(String)
* 0 for of(CharSequence)
* 22 for fromString(String) (most of them in Java FX)
* 0 for from(String)

I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect but= I=E2=80=99m inclined to vote for C.

[1] https://docs.oracle.com/javase= /9/docs/api/index-files/index-1.html

> On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
>
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
> * constructor(String);
> * valueOf(String);
> * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
> * constructor with String of CharSequence parameter
> * valueOf with String of CharSequence parameter
> * parse with String of CharSequence parameter
>
> C.) A mixed approach
> * constructor(String);
> * valueOf(String);
> * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--
Jeff Mesnil
JBoss, a division of Red Hat
http:/= /jmesnil.net/




--
Thanks
Emily
=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
= Emily Jiang
ejian= PBgbw1UnLaJy4OUQ@Y45SF02wNnDqB7sJ

--94eb2c1cd70ce567d805625fa24f-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Wed Jan 10 04:49:07 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f49.google.com (mail-lf0-f49.google.com [209.85.215.49]) by mail.eclipse.org (Postfix) with ESMTP id E7B6D2DCE75 for ; Wed, 10 Jan 2018 04:49:06 -0500 (EST) Received: by mail-lf0-f49.google.com with SMTP id m8so13022193lfc.6 for ; Wed, 10 Jan 2018 01:49:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=QMaQ/QOQMrEcvG2H0twwmNTCsvLWLDQhKsDio13mhZQ=; b=SaY0eEf0I8idh78WPC5FP0dmjMSRzY0HwRzBhy9jFj+eJhS04/AqxmJbQUJAQjGS3k jyOvb62RMXIQSqTAW/puJltcZGe4vMKtguoZo2amelIfeELS/gyJJQtTR+hhyq91/Lax OhBPW2pl71wvs34DDozLIGwvCJdHTBw9JJ3F6ER0Ax0AdX16fmlk4snOusHG3jQuzGiV Gl6REIxgVaXQGCcjY2hndGFeaVEHKlyRgRgb0OGy3lIZ+8xB3EjrK97G0MZXeKLIkv5v 5P8Mkb6K1hXwiRwQHbv+Vkj9OJQHacbJButoGCFVu8g1Kp/82AcDy9UWeCXxJrGaAfmR bXJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=QMaQ/QOQMrEcvG2H0twwmNTCsvLWLDQhKsDio13mhZQ=; b=J5tW6nGiuFV7CyMegnjSNjR+xmpNnjU7uRYrctSx7O0itkI0exbPkLmBcujlMmA2Il CHg9amKOMAsO7T70RcnIY7sOLUcBWFOJiOr5FJXk6JDrBSR+IDgWSzcZQVPAebbsW72p hZH3EVuspIQa+Om3LrqfwXHGTAndqgX8/zsMrQPWDE1svgC0RUufftC5aFlfGvcBIv6u onirX45PctOc2irnWYhkK9Qn2eXlErcWUqcAry/g+ZvRz6Vz+rpu2jaH1aMGLJwqEke3 lLowbcYrpV5wOpD1ZZHTSshyCPrig5jwgy2T08lLc8v/Wt7YfRPS6uKTtE5t5yHP2Gtb wfpQ== X-Gm-Message-State: AKwxytdnRSX9tVVoYz7TXEHUxojPwqQCZpeVavygKBXtkMGDy34j7lCM 3+Ez9mf6XmrFxejmkRKWNlpVWnE75Owog2MH0tQ= X-Google-Smtp-Source: ACJfBosGeJuufGLFAkIEulTSmVL1/u3aUcQFo6Uce92r3KieyAMJOSyisIQpQUb9lEhPaf1iX9yIQvIG23ohhRH7JUM= X-Received: by 10.46.31.17 with SMTP id f17mr1006323ljf.103.1515577746499; Wed, 10 Jan 2018 01:49:06 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Wed, 10 Jan 2018 01:49:05 -0800 (PST) In-Reply-To: References: From: Emily Jiang Date: Wed, 10 Jan 2018 09:49:05 +0000 Message-ID: To: Werner Keil Content-Type: multipart/alternative; boundary="f40304398f9c35ae49056268f1bf" Cc: ConfigJSR expert discussions Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 09:49:07 -0000 --f40304398f9c35ae49056268f1bf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Werner, For some old Java classes, there is no of(String) though. Including both will cover old and new classes. Emily On Tue, Jan 9, 2018 at 10:42 PM, Werner Keil wrote: > Emily, > > Thanks for the update. > of(String) > is a short form for > valueOf(String) > > so from what I know of other JSRs or APIs, only one of these factories > should be there. > In addition to maybe parse(CharSequence) and a constructor if needed. > > Regards, > Werner > > > > On Tue, Jan 9, 2018 at 11:38 PM, Emily Jiang > wrote: > >> As promised, I have finally got hold of a JVM SME. The recommended and >> much used pattern will be of(String). Therefore, I think we should revis= it >> our plan: >> >> constructor(string) >> of(String) >> valueOf(String) >> parse(CharSequence) >> >> >> Thoughts? >> >> @Anatole, what type of combination does Tamaya support right now? >> >> Emily >> >> On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil >> wrote: >> >>> Thanks! >>> >>> Am 08.01.2018 00:26 schrieb "Emily Jiang" : >>> >>>> +1 Jeff! >>>> >>>> I have contacted a JVM Architect but he is on vacation. I'll report >>>> back as soon as I get any confirmation. >>>> >>>> >>>> Thanks >>>> Emily >>>> >>>> On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil wrote= : >>>> >>>>> To give some context to this vote, I searched for static methods in >>>>> Java 9 javadoc index[1]: >>>>> >>>>> * 236 static methods named valueOf(String) >>>>> * 0 for valueOf(CharSequence) >>>>> * 6 for parse(String) >>>>> * 12 for parse(CharSequence) >>>>> >>>>> and while I was at it: >>>>> >>>>> * 5 for of(String) >>>>> * 0 for of(CharSequence) >>>>> * 22 for fromString(String) (most of them in Java FX) >>>>> * 0 for from(String) >>>>> >>>>> I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM archite= ct but I=E2=80=99m >>>>> inclined to vote for C. >>>>> >>>>> [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.htm= l >>>>> >>>>> > On 22 Dec 2017, at 12:35, Mark Struberg wrote: >>>>> > >>>>> > Good evening! >>>>> > >>>>> > In ticket #13 and spread out in microprofile-config we had a long >>>>> discussion about which conditions must be met to make a Class being p= icked >>>>> up with an implicit converter. >>>>> > >>>>> > The following 3 options are on the table so far: >>>>> > >>>>> > A.) The original idea: >>>>> > * constructor(String); >>>>> > * valueOf(String); >>>>> > * parse(String); >>>>> > >>>>> > B.) Basically A but also take CharSequence as parameter >>>>> > * constructor with String of CharSequence parameter >>>>> > * valueOf with String of CharSequence parameter >>>>> > * parse with String of CharSequence parameter >>>>> > >>>>> > C.) A mixed approach >>>>> > * constructor(String); >>>>> > * valueOf(String); >>>>> > * parse(CharSequence); >>>>> > >>>>> > >>>>> > Please vote with the number and an explanation why it should be >>>>> taken. >>>>> > We will tally the results on our next EG meeting. >>>>> > >>>>> > >>>>> > >>>>> > My personal VOTE is +1 for option B. >>>>> > Reason: We have tons of static T parse(CharSequence) in java.time. >>>>> That means we realls should support CharSequence for parse. >>>>> > Otoh there are many constructors, parse and valueOf with both Strin= g >>>>> but also CharSequence in the JDK and many highly used libraries like = Apache >>>>> commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some me= thods >>>>> with String params and other methods with CharSequence (option c) wou= ld imo >>>>> lead to confusion for users. >>>>> > >>>>> > txs and LieGrue, >>>>> > strub >>>>> > >>>>> > >>>>> > PS: adding all EG members to cc as I'm not 100% sure if the EG list >>>>> already works properly. >>>>> >>>>> -- >>>>> Jeff Mesnil >>>>> JBoss, a division of Red Hat >>>>> http://jmesnil.net/ >>>>> >>>>> >>>> >>>> >>>> -- >>>> Thanks >>>> Emily >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>> Emily Jiang >>>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>>> >>> >> >> >> -- >> Thanks >> Emily >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Emily Jiang >> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >> > > --=20 Thanks Emily =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --f40304398f9c35ae49056268f1bf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Werner,

For some old Java classes, = there is no of(String) though. Including both will cover old and new classe= s.

Emily

On Tue, Jan 9, 2018 at 10:42 PM, Werner Keil <werner.kei= Uh5N0OTYcPnBZNdJ@RwKIriitWfeDKzz0> wrote:
Emily,

Thanks for the update.=C2=A0
= of(String)=C2=A0
is a short form for=C2=A0
valueOf(Stri= ng)=C2=A0

so from what I know of other JSRs or API= s, only one of these factories should be there.=C2=A0
In addition= to maybe parse(CharSequence) and a constructor if needed.

Regards,
Werner


=

On Tue, Jan 9, 2018 at 11:38 PM, Emily Jiang= <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
As pr= omised, I have finally got hold of a JVM SME. The recommended and much used= pattern will be of(String). Therefore, I think we should revisit our plan:=

constructor(string)
of(String)
valueOf(Stri= ng)
parse(CharSequence)


Thoughts?

@A= natole, what type of combination does Tamaya support right now?

Emily
=

On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil <wer= fvqeApBRu4AFieN+@RwKIriitWfeDKzz0> wrote:
=
Thanks!=C2=A0

Am 08.01= .2018 00:26 schrieb "Emily Jiang" <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
+1 Jeff!

I have contacted a JVM Architect but he is on = vacation. I'll report back as soon as I get any confirmation.

Thanks
Emily

On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil <jmesni= Uh5N0OTYcPnBZNdJ@C5xsf/ykoT0kqTJr> wrote:
To giv= e some context to this vote, I searched for static methods in Java 9 javado= c index[1]:

* 236 static methods named valueOf(String)
* 0 for valueOf(CharSequence)
* 6 for parse(String)
* 12 for parse(CharSequence)

and while I was at it:

* 5 for of(String)
* 0 for of(CharSequence)
* 22 for fromString(String) (most of them in Java FX)
* 0 for from(String)

I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect but= I=E2=80=99m inclined to vote for C.

[1] https://docs.oracle.com/javase= /9/docs/api/index-files/index-1.html

> On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
>
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
> * constructor(String);
> * valueOf(String);
> * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
> * constructor with String of CharSequence parameter
> * valueOf with String of CharSequence parameter
> * parse with String of CharSequence parameter
>
> C.) A mixed approach
> * constructor(String);
> * valueOf(String);
> * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--
Jeff Mesnil
JBoss, a division of Red Hat
http:/= /jmesnil.net/




--
Thanks
= Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang=
Yjp73Ee8XrnVIEPw@EFJ/7HNempu21N95= g



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ




--
Thanks
Emily
=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--f40304398f9c35ae49056268f1bf-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Wed Jan 10 04:50:54 2018 Return-Path: X-Original-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Delivered-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Received: from mail-lf0-f44.google.com (mail-lf0-f44.google.com [209.85.215.44]) by mail.eclipse.org (Postfix) with ESMTP id E49972DCD4B for ; Wed, 10 Jan 2018 04:50:52 -0500 (EST) Received: by mail-lf0-f44.google.com with SMTP id y71so19067198lfd.12 for ; Wed, 10 Jan 2018 01:50:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=gviLyB7yN1EB20AZG7APpqfOMKjascPJ5GW92TRrW0w=; b=JuXi06nHRPDWebVwwySz2PWiDuiLNqi2QlDn/GZNwdbfvkeGOLB0kKCaP/vMmfb8wa F3f0btNt0ygxg1Xp7lp9FZAO4lp5JaLdIt6I4S8cHgfDNH4o3DX11Zd8cOD6W+9U4hHx Ku6zq/rSR708mJAcCqbbWA6R1JA2LHPoBsqXV2nlR+WQA+uXhk6wObwFim7UOHbWw/7l Q0vo5xsH/RyTcvppKnI47zM900jYO7D7DDFq9jByxk78X+0AwCTudXfXWISGPzYhEokN f2UP5i20GJBElfY2azO9n0VoDBAgNkBFANTAhHwmEeTfyBdb+YxWGHiCi4DtGmjzjcBV 0l5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=gviLyB7yN1EB20AZG7APpqfOMKjascPJ5GW92TRrW0w=; b=WEicR6X7KoS6KY0WomUwlT6+xa6Tv/AtSiUJditxuRFwGCJBQWB0cipm7K/Cb53d6g QJkFdUf6V1PaO8m+22111Fx0rt22Zb25QGOvNhjmIXL2LpgDhUWn+ToBpOFPBIKQZGrF 75nPa8igBRMvlKM3hlZmWas3Tx2VyeJM0JO6qylq6MR7+cDba7vDR8MnyMUyimXvu87s pVxSgjZa1WA5K0EsQIEAANPzxty2GRBFumcyeFca7RKHEnbbbJHflIAtvyakXBjO/Jzk MSczrWJ4Ztsx3W48L/ggD7eyOy73/c8FZ9Tfx+KHANAjupQu1C+3Lr3lF5uVZAscPg8F EYcQ== X-Gm-Message-State: AKwxytcNCBowKDGF1BpyB+I+M8qerbhp7WpZ2PfVdIWE9r0K9RDkCEcv Ag/JSOS025uk3w217sYWDyD+rzvIXKAJmrd2sW49aA== X-Google-Smtp-Source: ACJfBosYKcTB3TRJ4zPN4tvCtSsHK23/Y8f9+a5mWxei2p6jSHLl7vASv++ewaEKF2yoNthzeNggH3gBQyPh9DoIH2M= X-Received: by 10.25.33.85 with SMTP id h82mr6244701lfh.128.1515577852204; Wed, 10 Jan 2018 01:50:52 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Wed, 10 Jan 2018 01:50:39 -0800 (PST) From: Emily Jiang Date: Wed, 10 Jan 2018 09:50:39 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="001a11411656829d6d056268f7c3" Subject: [ConfigJSR-experts] test X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 09:50:54 -0000 --001a11411656829d6d056268f7c3 Content-Type: text/plain; charset="UTF-8" pls reply if this email hits your email box. -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --001a11411656829d6d056268f7c3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
pls reply if this email hits your email box.

--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--001a11411656829d6d056268f7c3-- From Di5JOAgaGMajQ7RX@iguBx6V4wYlUCuIg Wed Jan 10 04:51:39 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53]) by mail.eclipse.org (Postfix) with ESMTP id 729992DCD4B for ; Wed, 10 Jan 2018 04:51:38 -0500 (EST) Received: by mail-wm0-f53.google.com with SMTP id i11so25752387wmf.4 for ; Wed, 10 Jan 2018 01:51:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sebastian-daschner-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=DM5m0GRT8kTQCykCJxV2vYWlR2adDXIwY/7vAmQC2X8=; b=kqVr+VjfxWDCZ2nf8daxZ1i9nMTzGz9E0kYPRfdHriRXiQ4O8WE2DAUILWdOh1ZRuW GXtqFg4topPsHMSK315098HiHcNX1wxKYacqXio9S8SDi4crlFMKAb7RAmEaors1HRkX vgOxlb1s9nDuLmCiUmlqdnsHyepephkIT34SZximh1PcR0CnDtvSFZMjukyj8uMJZb0T 9QFcjY1W6u7CGbASYe3UVa9WG/l9h+TxEMcmP4w+L2N19npT1/wV8YaAOxh98JUTZ1Yo 7mTw3/FHpTeP5i8AeaVfAUqz+E23Qt5XsTlOh3ZIM3kRozRySZYw3m9W914QbHAidyZL u1gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=DM5m0GRT8kTQCykCJxV2vYWlR2adDXIwY/7vAmQC2X8=; b=mVwmW6E6pW499QXJRvgmeVTZhw19B4ifQVnSOhI5rqv6Tg6xmA/23TM1Yo7iBg+HQE 1fGccX0SFuldln1mVk8KOP5Z3osbIaiBrHlr8r3xrJeZxhWZ2hBKAl3z9IhqE/Qq3wbu VpVxEWBz0CIscov3B10XwxB3rCrhOiMTvCaZDr31SbniJWOBNhZewK0g5r1CJaRRlwXY VkbLttI9EvkoYPff95uK8LvFlswrslh3zSJca8kR4viqPqnncilZ/e2x36jnzU3cDRtK 84MZRCXpG1ExTo/fm48J+rf0ViKnJAEaAiWolz5GFy9f4RxRbsEl8K+G8DOJYT9pm5zn 55xg== X-Gm-Message-State: AKGB3mK0YJYp4lvubZgAbbIIhi90rIBuM0kLKR73V3+uS5CcJ96xC6UX zHzscjV3GN4R2mFzUr3+LOAVHUWMx0M= X-Google-Smtp-Source: ACJfBouOFUBYXJRSWrcsEpDd+lkP86NQ3kjYAQ6fSIdJ89jpJVEAsyv/G7sWDz+YK9kqjH5pd7WLvQ== X-Received: by 10.80.186.161 with SMTP id x30mr25198631ede.138.1515577898993; Wed, 10 Jan 2018 01:51:38 -0800 (PST) Received: from [192.168.1.100] (aftr-185-17-207-131.dynamic.mnet-online.de. [185.17.207.131]) by smtp.gmail.com with ESMTPSA id f16sm9840402edj.65.2018.01.10.01.51.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 10 Jan 2018 01:51:38 -0800 (PST) To: ConfigJSR expert discussions , Emily Jiang References: From: Sebastian Daschner Message-ID: Date: Wed, 10 Jan 2018 10:51:37 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------5CED13CD7B6EB250F2D75E32" Content-Language: en-US Subject: Re: [ConfigJSR-experts] test X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 09:51:39 -0000 This is a multi-part message in MIME format. --------------5CED13CD7B6EB250F2D75E32 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Reply On 01/10/2018 10:50 AM, Emily Jiang wrote: > pls reply if this email hits your email box. > > -- > Thanks > Emily > ================= > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --------------5CED13CD7B6EB250F2D75E32 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit

Reply


On 01/10/2018 10:50 AM, Emily Jiang wrote:
pls reply if this email hits your email box.

--
Thanks
Emily
=================
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ


_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/configjsr-experts

--------------5CED13CD7B6EB250F2D75E32-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Wed Jan 10 05:03:41 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-lf0-f51.google.com (mail-lf0-f51.google.com [209.85.215.51]) by mail.eclipse.org (Postfix) with ESMTP id 96C902DCE4E for ; Wed, 10 Jan 2018 05:03:40 -0500 (EST) Received: by mail-lf0-f51.google.com with SMTP id h5so19142590lfj.2 for ; Wed, 10 Jan 2018 02:03:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=CkilE4uCZB0my51no9H/mBiBn0C6eBwCs20Uz9LDwAw=; b=IFmg4f/G9MXtlu7/rD4KZygW+/C6FarqD4cOCN/xtwsCD7cX09jE+8S4QguOuDBX0Z 1dfJsO4X5c75fYcqqSZtVxfD9P8bYvrUwCqvsd3kYtgtWoxDnjrUCw6s7OYwQhHiqZ6v rSxjG+Lg+vKuKPilobFLaNOGzGhrzJ1OLcM6nUPfcNkIWj1mwQydFEJAw/ZKNXXlmDop jwzFm390mTIZBieYkOHc1mGJtmeoV2BasxLdPU9KtTwA36PmqOAakBBKEbuzuuAZmDaP n6BbabmKWOt9wtE9PUPyFELU8uKNtRcXWnXZreruF3/xgpJpw9XkRwqy6aXVuUUZOJQc aSdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=CkilE4uCZB0my51no9H/mBiBn0C6eBwCs20Uz9LDwAw=; b=U2oOvHImj0K70yR0akWwxHq7q1qhz+23OUnsZ7J0MUMewPa4LYps5aSIxRdpcrEpG9 bx2g0Zgwrp6MgZRkCGsVWs4XTZGu98wohxcX8gtwHKZ5fPKRbym5x9DEhdhszJNmyBGQ utCbQ/EivJf5QEecZg0fdI+C0cfuGUl4pyU1Xe5p8m1PBqSFKSToKlHpsHJsz/2WKV0U /JI3zcAYQ95kCJLapjK3OJAV5HJ7lq84XOoXs3TtMvnUSG9PA4zb05weNRp2QPiVCd75 ZaPNJ2vJhyrMFLMrICWVdT6r4eyLUtNBYBsuL2TY7UtoYgTA99X6jA/zIcumBvAq3Wfi FMQg== X-Gm-Message-State: AKGB3mL4b2SYsAkornQdQYNJUfRdKXSaWHo7EollRqCX8Itbjwai0YKq DLqoPi92plUIQgEmKAJ5u8o2OAxZXSjN2MuPtxrfeg== X-Google-Smtp-Source: ACJfBotT/4be+5lyX4UQO9bIg9LS8431IJxm7rN1v2/exYNx7f4rEJ4EKBFCQaV+Z/VkLQszZ1WXDpHI2/KgiKHlAvA= X-Received: by 10.46.54.26 with SMTP id d26mr10850422lja.104.1515578621160; Wed, 10 Jan 2018 02:03:41 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Wed, 10 Jan 2018 02:03:40 -0800 (PST) In-Reply-To: References: From: Emily Jiang Date: Wed, 10 Jan 2018 10:03:40 +0000 Message-ID: To: Sebastian Daschner Content-Type: multipart/alternative; boundary="f4f5e8094ce457f0a605626925bb" Cc: ConfigJSR expert discussions Subject: Re: [ConfigJSR-experts] test X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 10:03:41 -0000 --f4f5e8094ce457f0a605626925bb Content-Type: text/plain; charset="UTF-8" Thanks Sebastain! Finally.... On Wed, Jan 10, 2018 at 9:51 AM, Sebastian Daschner < Di5JOAgaGMajQ7RX@iguBx6V4wYlUCuIg> wrote: > Reply > > On 01/10/2018 10:50 AM, Emily Jiang wrote: > > pls reply if this email hits your email box. > > -- > Thanks > Emily > ================= > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > > _______________________________________________ > ConfigJSR-experts mailing ilR/dGhkt06VO4aQ@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe from this list, visithttps://dev.eclipse.org/mailman/listinfo/configjsr-experts > > > -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --f4f5e8094ce457f0a605626925bb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks Sebastain! Finally....


= --f4f5e8094ce457f0a605626925bb-- From X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0 Wed Jan 10 05:33:21 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-it0-f52.google.com (mail-it0-f52.google.com [209.85.214.52]) by mail.eclipse.org (Postfix) with ESMTP id DF5762DCE8B for ; Wed, 10 Jan 2018 05:33:19 -0500 (EST) Received: by mail-it0-f52.google.com with SMTP id p124so8314238ite.1 for ; Wed, 10 Jan 2018 02:33:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=6tkuriV20Xvot8nZMgsaWTAy0C1TIhGSDx74az3XwFQ=; b=fLA1vk3qD7jGAUW5SSi1YJqN+fFx13ugxqPwKnU9HWeSS5GU6mgHZyz/QswgaIBVza bt6++p5JlillLhPct64MRf7iCeNXaBwuj29eXuFayko7h3rJKRPodR8pp+SSPO2Jgn2+ BzB4n7yDD60c5jONd9gbiJjJKOFSvBzniq5idMB3WG3JnAq8wH5iVGCasYQlvkL2CRFi EutSv+Ykt01AXCs8usSVsxxw6Nm8xNvWIthS2RWezX937DnYD+bpTuIri+xpdgtCdcD5 y2vRUWCz85/AzSqTYbOQ3NQmVLpXgfFBjOvhwKFeNi1U0u4uZLjivrQJjXT28GETgRxX LlPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=6tkuriV20Xvot8nZMgsaWTAy0C1TIhGSDx74az3XwFQ=; b=GF8OtHUnVAmQ8J6j0x+3784BEOUo4Brp+IjUIxfmpXJhs5i8IMHmryjkRs8axecVrV rH4ecvNWMRFg/KglOsgfenlbpvMgQF819hHmrlTUaRNVRZti8B0mFA8FW1FkHkafF55H MqrVHzikTHg2Usg06UIAgMCMDFWp0bmvZevw1ZTPj0lKGrVNNMGCqhBoNOegk8gk1wF1 u/dcXkG8wJ/pKFAUp7y9yCfNKdFwpUc3JAdfKFuN/NekHDhKi6Ggtbr8FBH0jg0b+0BH nfzS6U8Cn5MbOdWYlPppC4xN5YRlF3yS7jJc+P29q8CcVpUaqTqLGgS6fc3KXUcNEO+Z m7EA== X-Gm-Message-State: AKwxytdeZKxZeQndoLiYN801Sg7hy29g8Mb9iSQVnsRr5sheP2ecTjxP LCFPJEAEha4DVCjPsJvTK/tMpL/p228OGCRhVfs= X-Google-Smtp-Source: ACJfBot6upq5zGwsmxNKVpOaK/rZw9OVdaoUodjjaSN8Tj5YnUTQ+uCW/r145N+mDkfBfHiYg4TknjUY2LfWO+Y1lzE= X-Received: by 10.36.22.130 with SMTP id a124mr72976ita.12.1515580400136; Wed, 10 Jan 2018 02:33:20 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.143.13 with HTTP; Wed, 10 Jan 2018 02:32:39 -0800 (PST) In-Reply-To: References: From: Anatole Tresch Date: Wed, 10 Jan 2018 11:32:39 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="001a114453c260f67d0562698f3d" Subject: Re: [ConfigJSR-experts] test X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 10:33:21 -0000 --001a114453c260f67d0562698f3d Content-Type: text/plain; charset="UTF-8" Works fine. 2018-01-10 10:50 GMT+01:00 Emily Jiang : > pls reply if this email hits your email box. > > -- > Thanks > Emily > ================= > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > -- *Anatole Tresch* PPMC Member Apache Tamaya JCP Star Spec Lead *Switzerland, Europe Zurich, GMT+1* *maketechsimple.wordpress.com * *Twitter: @atsticks, @tamayaconf* *Speaking at:* [image: JSD_Speaker_2017][image: J-Con 2017 logo][image: JVM Con] --001a114453c260f67d0562698f3d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Wor= ks fine.

2018-01-10 10:50 GMT+01:00 Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC= >:
pls rep= ly if this email hits your email box.

--
Thanks
Emily
= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
=

_______________________________________________
ConfigJSR-experts mailing list
ConfigJSR-experts@eclipse.= org
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts



--
=
= Anatole Tresch
PPMC Member Apache Tamaya
JCP Star Spec= Lead
Switzerland,=C2=A0Europe Zurich, GMT+1
make= techsimple.wordpress.com=C2=A0
Twitter: =C2=A0@ats= ticks, @tamayaconf

Speaking at:<= /div>

=C2=A0=C2=A03D"JSD_Speaker_=3D"J-Con3D"JVM
--001a114453c260f67d0562698f3d-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Wed Jan 10 05:38:44 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f53.google.com (mail-lf0-f53.google.com [209.85.215.53]) by mail.eclipse.org (Postfix) with ESMTP id D00852DCD8E for ; Wed, 10 Jan 2018 05:38:43 -0500 (EST) Received: by mail-lf0-f53.google.com with SMTP id h140so19266496lfg.1 for ; Wed, 10 Jan 2018 02:38:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=u3YzS46kOJmqcpTc9jiQQ+YDtJIB7kItfzKpv6Nw5n8=; b=ujdvSEDCUk1FI7ysjL/YRQ+BKVqF09ZqWubOn6TmyeiVKuYsbF12Vi46VVoP3PxwV0 epV8VhseIbd569+qa6IF5U3McpedDlCg0EXoCLB1B5wk6GpqKG8EZSTJFj3/V4f9NVrA p191y1qfs5zS15D7Q91u67WSuwkSvHd6JjgvBWkC86OgX/VoqVwEPYoDRGp//NWbydg0 3x+61H6M90C1o5/vdFJhCS6upvDXqCUFpghMXjp/KAdo7KcN98kgFhhuB7H5FQ6cTH5J boHOzM66phFv/Kno+DtDVOizsukDvNIiwXsuCP6uJzIiZHVhYrR+GGBFmYaw/n8S9d1r lyWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=u3YzS46kOJmqcpTc9jiQQ+YDtJIB7kItfzKpv6Nw5n8=; b=RkkH3cqI/DnaXTvfZAWkLNZLYbB5pf9nH5lqZQc0nh5jhFTo7y4qA1XXrYHt0rEDCm hTy0ZsFjdZ7cXFv+Nk0CWKG2wsa0X6CUCeTEQMf9vqQ+Ddg7zzgL8VyWuVmVFc4OLj+K 0+O7hzVsU39dvg61/Ea0+InO/8amaVzGz54pHwHP8vHhx6Qi1fEs+KtjmH6Cy4Ap+9Rp b5ldp6B7BgZ+xBmg7YpR0fBluaGtScBMGw68NhLOSF7MvS5v+6AxxCsUat6SDRXCCOa2 0H5YBGf4JcRiM/RPVKPQfGbly/OPbF3y0ySH6ifFgl7afhJrRN6rJMVcEqa9AU8aF1iy 8s0w== X-Gm-Message-State: AKGB3mICgHVpq2LIMeA6pNjS7uhgek0jUbhEypmv/dSL+SeI/yhMBLFS LGHI0lr+HKZm4y0/8745XQdkgcIGo3tQbjdLNeU= X-Google-Smtp-Source: ACJfBos2phENq94m1ufwsicQCgfb0ak5nT0+hINkL8i4uPIAUV2arcSyRdJN6DGJbn8UKlWbs39SbdHlrRax6jqpa3g= X-Received: by 10.46.68.205 with SMTP id b74mr10251730ljf.100.1515580723236; Wed, 10 Jan 2018 02:38:43 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.92.129 with HTTP; Wed, 10 Jan 2018 02:38:42 -0800 (PST) In-Reply-To: References: From: Werner Keil Date: Wed, 10 Jan 2018 11:38:42 +0100 Message-ID: To: Emily Jiang , ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="94eb2c1ce076a31428056269a2a3" Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 10:38:44 -0000 --94eb2c1ce076a31428056269a2a3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Emily, Do we realy need all variations for some reason like reflection/CDI? I know, e.g. String etc. uses valueOf() others like EnumSet used the of() style, and most of the new (Java SE 8+) tend to use of() because it's shorter, although many IDEs offer auto-completion now anyway. Werner On Wed, Jan 10, 2018 at 10:49 AM, Emily Jiang wrote: > Werner, > > For some old Java classes, there is no of(String) though. Including both > will cover old and new classes. > > Emily > > On Tue, Jan 9, 2018 at 10:42 PM, Werner Keil > wrote: > >> Emily, >> >> Thanks for the update. >> of(String) >> is a short form for >> valueOf(String) >> >> so from what I know of other JSRs or APIs, only one of these factories >> should be there. >> In addition to maybe parse(CharSequence) and a constructor if needed. >> >> Regards, >> Werner >> >> >> >> On Tue, Jan 9, 2018 at 11:38 PM, Emily Jiang >> wrote: >> >>> As promised, I have finally got hold of a JVM SME. The recommended and >>> much used pattern will be of(String). Therefore, I think we should revi= sit >>> our plan: >>> >>> constructor(string) >>> of(String) >>> valueOf(String) >>> parse(CharSequence) >>> >>> >>> Thoughts? >>> >>> @Anatole, what type of combination does Tamaya support right now? >>> >>> Emily >>> >>> On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil >>> wrote: >>> >>>> Thanks! >>>> >>>> Am 08.01.2018 00:26 schrieb "Emily Jiang" : >>>> >>>>> +1 Jeff! >>>>> >>>>> I have contacted a JVM Architect but he is on vacation. I'll report >>>>> back as soon as I get any confirmation. >>>>> >>>>> >>>>> Thanks >>>>> Emily >>>>> >>>>> On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil >>>>> wrote: >>>>> >>>>>> To give some context to this vote, I searched for static methods in >>>>>> Java 9 javadoc index[1]: >>>>>> >>>>>> * 236 static methods named valueOf(String) >>>>>> * 0 for valueOf(CharSequence) >>>>>> * 6 for parse(String) >>>>>> * 12 for parse(CharSequence) >>>>>> >>>>>> and while I was at it: >>>>>> >>>>>> * 5 for of(String) >>>>>> * 0 for of(CharSequence) >>>>>> * 22 for fromString(String) (most of them in Java FX) >>>>>> * 0 for from(String) >>>>>> >>>>>> I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM archit= ect but I=E2=80=99m >>>>>> inclined to vote for C. >>>>>> >>>>>> [1] https://docs.oracle.com/javase/9/docs/api/index-files/index- >>>>>> 1.html >>>>>> >>>>>> > On 22 Dec 2017, at 12:35, Mark Struberg wrote: >>>>>> > >>>>>> > Good evening! >>>>>> > >>>>>> > In ticket #13 and spread out in microprofile-config we had a long >>>>>> discussion about which conditions must be met to make a Class being = picked >>>>>> up with an implicit converter. >>>>>> > >>>>>> > The following 3 options are on the table so far: >>>>>> > >>>>>> > A.) The original idea: >>>>>> > * constructor(String); >>>>>> > * valueOf(String); >>>>>> > * parse(String); >>>>>> > >>>>>> > B.) Basically A but also take CharSequence as parameter >>>>>> > * constructor with String of CharSequence parameter >>>>>> > * valueOf with String of CharSequence parameter >>>>>> > * parse with String of CharSequence parameter >>>>>> > >>>>>> > C.) A mixed approach >>>>>> > * constructor(String); >>>>>> > * valueOf(String); >>>>>> > * parse(CharSequence); >>>>>> > >>>>>> > >>>>>> > Please vote with the number and an explanation why it should be >>>>>> taken. >>>>>> > We will tally the results on our next EG meeting. >>>>>> > >>>>>> > >>>>>> > >>>>>> > My personal VOTE is +1 for option B. >>>>>> > Reason: We have tons of static T parse(CharSequence) in java.time. >>>>>> That means we realls should support CharSequence for parse. >>>>>> > Otoh there are many constructors, parse and valueOf with both >>>>>> String but also CharSequence in the JDK and many highly used librari= es like >>>>>> Apache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of= some >>>>>> methods with String params and other methods with CharSequence (opti= on c) >>>>>> would imo lead to confusion for users. >>>>>> > >>>>>> > txs and LieGrue, >>>>>> > strub >>>>>> > >>>>>> > >>>>>> > PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t >>>>>> already works properly. >>>>>> >>>>>> -- >>>>>> Jeff Mesnil >>>>>> JBoss, a division of Red Hat >>>>>> http://jmesnil.net/ >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Thanks >>>>> Emily >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>>> Emily Jiang >>>>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>>>> >>>> >>> >>> >>> -- >>> Thanks >>> Emily >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> Emily Jiang >>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>> >> >> > > > -- > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > --94eb2c1ce076a31428056269a2a3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Emily,

Do we realy need all variations = for some reason like reflection/CDI?

I know, e.g. = String etc. uses valueOf() others like EnumSet used the of() style, and mos= t of the new (Java SE 8+) tend to use of() because it's shorter, althou= gh many IDEs offer auto-completion now anyway.

=

Werner=C2=A0


=

On Wed, Jan 10, 2018 at 10:49 AM, Emily Jian= g <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
Werner,

For some = old Java classes, there is no of(String) though. Including both will cover = old and new classes.

=
Emily

On Tue, Jan 9, 2018 at 10:42 PM= , Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrote:
Emily,

Thanks fo= r the update.=C2=A0
of(String)=C2=A0
is a short form fo= r=C2=A0
valueOf(String)=C2=A0

so from wh= at I know of other JSRs or APIs, only one of these factories should be ther= e.=C2=A0
In addition to maybe parse(CharSequence) and a construct= or if needed.

Regards,
Werner
=


<= /div>

On Tue, Jan 9, 2018 at 11:38 PM, Emily Jiang= <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
As pr= omised, I have finally got hold of a JVM SME. The recommended and much used= pattern will be of(String). Therefore, I think we should revisit our plan:=

constructor(string)
of(String)
valueOf(Stri= ng)
parse(CharSequence)


Thoughts?

@A= natole, what type of combination does Tamaya support right now?

Emily

On Mon, Jan 8, 2018 at 1:25 AM, Werner K= eil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrote:
Thanks!=C2=A0

Am 08.01.2018 00:26 schr= ieb "Emily Jiang" <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
+1 Jeff! <= br>
I have contacted a JVM Architect but he is on vacation. I'= ll report back as soon as I get any confirmation.


Thanks
Emily

On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil <WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr= > wrote:
To give some context t= o this vote, I searched for static methods in Java 9 javadoc index[1]:

* 236 static methods named valueOf(String)
* 0 for valueOf(CharSequence)
* 6 for parse(String)
* 12 for parse(CharSequence)

and while I was at it:

* 5 for of(String)
* 0 for of(CharSequence)
* 22 for fromString(String) (most of them in Java FX)
* 0 for from(String)

I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect but= I=E2=80=99m inclined to vote for C.

[1] https://docs.oracle.com/javase= /9/docs/api/index-files/index-1.html

> On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
>
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
> * constructor(String);
> * valueOf(String);
> * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
> * constructor with String of CharSequence parameter
> * valueOf with String of CharSequence parameter
> * parse with String of CharSequence parameter
>
> C.) A mixed approach
> * constructor(String);
> * valueOf(String);
> * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--
Jeff Mesnil
JBoss, a division of Red Hat
http:/= /jmesnil.net/




--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



--
Thanks
Emily
=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ




--
Thanks
= Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang=
Yjp73Ee8XrnVIEPw@EFJ/7HNempu21N95= g

--94eb2c1ce076a31428056269a2a3-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Tue Jan 9 17:38:35 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f41.google.com (mail-lf0-f41.google.com [209.85.215.41]) by mail.eclipse.org (Postfix) with ESMTP id 2DBCE2DCCFF for ; Tue, 9 Jan 2018 17:38:34 -0500 (EST) Received: by mail-lf0-f41.google.com with SMTP id y71so17639967lfd.12 for ; Tue, 09 Jan 2018 14:38:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=7cM/dm+I8EGFUxA+xE022gR0AUED1BNApVDG10qpeFA=; b=LrHiKTe2W4fXk4MCout9z5N2dMQrcPNwIWDERRwY/f1LPIW5lDZDkrg3n5fMDmyvsp gyaetmtkyfOxxxJZ9AQ07pq7pax98BllrMvPn5ugpo5QSPcOzRIQgUD5SFjqPXClcp84 pHEtkxEDQxJm/tc7FbLIT3e/uNY8CsRd+ji4hZtlubRUlu9ynCSsXL1dlqFT4txhWqcD /uGxtFmt1J2VWoSvS0sroOwtPNHVrhk3G+t5lUQE+Cn2flCdJToTOs9Ej8hovbDiU2SL HCHya0RT1UqAnKvs4kwjrxEkMBl0o5Zq1VM1lsZWwqEFtExeNkdp1JhGORxCKVqTfYM6 6vXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=7cM/dm+I8EGFUxA+xE022gR0AUED1BNApVDG10qpeFA=; b=dotF1LmaIPqGId/vYAmbEZNMolRNhMQUs3rMo4kJRnj7iMilwkhaszSRZFuGzQYJpY LrxHjfQukPTHv/GztqGC3n2zv0xeNaBSphukGDcNp8Ewyy0hkPLmYo7Z5GjfCKSzcdTJ C2Ct/gSnuj7ZD+dpVYKkIbFB+mWd7PvZDM+jfnSXNUkFhIvhgenpQrXIQLeV7/zg/i3a c7OOOBZxPD+74EMbMup8YZ5fD+uRXQ5iOLf/EDX79W+xM+rMuEvW6YbpCBCeqQF5caNN BNAtQZc+7QIJ7YPtrXbp8vNZdSr3K3xeSXDua5QrGwPFPQyGjNmMX9VrcTpDK3QUihIF brog== X-Gm-Message-State: AKGB3mL6nAIu6WNOeVGjJR8rlQaGDz35EtWtdSAr+7upWjm0QDaC6l5D qyJNBpUydIwu1IxcO8iiG5xuR2R0wuZUxnl1n051Yw== X-Google-Smtp-Source: ACJfBouzAf2v2xrlVS5bOhtoXMSFwf+WBgs27IBeeWu4rDB925ZYDALBoJmUI0j+nzUHrgtK5XccE6/7cRuvgnWHXrM= X-Received: by 10.46.32.148 with SMTP id g20mr5095733lji.133.1515537514607; Tue, 09 Jan 2018 14:38:34 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Tue, 9 Jan 2018 14:38:33 -0800 (PST) In-Reply-To: References: From: Emily Jiang Date: Tue, 9 Jan 2018 22:38:33 +0000 Message-ID: To: Werner Keil Content-Type: multipart/alternative; boundary="001a1142b52233b8ca05625f9395" X-Mailman-Approved-At: Wed, 10 Jan 2018 11:23:39 -0500 Cc: ConfigJSR expert discussions , Hendrik Ebbers , Jean-Louis Monteiro , David Blevins , "John D. Ament" , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jan 2018 22:38:35 -0000 --001a1142b52233b8ca05625f9395 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable As promised, I have finally got hold of a JVM SME. The recommended and much used pattern will be of(String). Therefore, I think we should revisit our plan: constructor(string) of(String) valueOf(String) parse(CharSequence) Thoughts? @Anatole, what type of combination does Tamaya support right now? Emily On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil wrote: > Thanks! > > Am 08.01.2018 00:26 schrieb "Emily Jiang" : > >> +1 Jeff! >> >> I have contacted a JVM Architect but he is on vacation. I'll report back >> as soon as I get any confirmation. >> >> >> Thanks >> Emily >> >> On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil wrote: >> >>> To give some context to this vote, I searched for static methods in Jav= a >>> 9 javadoc index[1]: >>> >>> * 236 static methods named valueOf(String) >>> * 0 for valueOf(CharSequence) >>> * 6 for parse(String) >>> * 12 for parse(CharSequence) >>> >>> and while I was at it: >>> >>> * 5 for of(String) >>> * 0 for of(CharSequence) >>> * 22 for fromString(String) (most of them in Java FX) >>> * 0 for from(String) >>> >>> I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect= but I=E2=80=99m inclined >>> to vote for C. >>> >>> [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.html >>> >>> > On 22 Dec 2017, at 12:35, Mark Struberg wrote: >>> > >>> > Good evening! >>> > >>> > In ticket #13 and spread out in microprofile-config we had a long >>> discussion about which conditions must be met to make a Class being pic= ked >>> up with an implicit converter. >>> > >>> > The following 3 options are on the table so far: >>> > >>> > A.) The original idea: >>> > * constructor(String); >>> > * valueOf(String); >>> > * parse(String); >>> > >>> > B.) Basically A but also take CharSequence as parameter >>> > * constructor with String of CharSequence parameter >>> > * valueOf with String of CharSequence parameter >>> > * parse with String of CharSequence parameter >>> > >>> > C.) A mixed approach >>> > * constructor(String); >>> > * valueOf(String); >>> > * parse(CharSequence); >>> > >>> > >>> > Please vote with the number and an explanation why it should be taken= . >>> > We will tally the results on our next EG meeting. >>> > >>> > >>> > >>> > My personal VOTE is +1 for option B. >>> > Reason: We have tons of static T parse(CharSequence) in java.time. >>> That means we realls should support CharSequence for parse. >>> > Otoh there are many constructors, parse and valueOf with both String >>> but also CharSequence in the JDK and many highly used libraries like Ap= ache >>> commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some meth= ods >>> with String params and other methods with CharSequence (option c) would= imo >>> lead to confusion for users. >>> > >>> > txs and LieGrue, >>> > strub >>> > >>> > >>> > PS: adding all EG members to cc as I'm not 100% sure if the EG list >>> already works properly. >>> >>> -- >>> Jeff Mesnil >>> JBoss, a division of Red Hat >>> http://jmesnil.net/ >>> >>> >> >> >> -- >> Thanks >> Emily >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Emily Jiang >> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >> > --=20 Thanks Emily =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --001a1142b52233b8ca05625f9395 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
As promised, I have fin= ally got hold of a JVM SME. The recommended and much used pattern will be o= f(String). Therefore, I think we should revisit our plan:

cons= tructor(string)
of(String)
valueOf(String)
parse= (CharSequence)


Thoughts?

@Anatole, what type = of combination does Tamaya support right now?

Emily
<= div class=3D"gmail_extra">
On Mon, Jan 8, 201= 8 at 1:25 AM, Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrote:=
Thanks!=C2=A0

Am 08.01.2018 00:26 schrieb "Emily Jiang" <= ;emijiang6@go= oglemail.com>:
+1 Jeff!

I have contacted a= JVM Architect but he is on vacation. I'll report back as soon as I get= any confirmation.


Thanks
Emily

On Thu, Jan 4, 2018 at 1:= 09 PM, Jeff Mesnil <WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr> wrote:
To give some context to this vote, I searched for sta= tic methods in Java 9 javadoc index[1]:

* 236 static methods named valueOf(String)
* 0 for valueOf(CharSequence)
* 6 for parse(String)
* 12 for parse(CharSequence)

and while I was at it:

* 5 for of(String)
* 0 for of(CharSequence)
* 22 for fromString(String) (most of them in Java FX)
* 0 for from(String)

I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect but= I=E2=80=99m inclined to vote for C.

[1] https://docs.oracle.com/javase= /9/docs/api/index-files/index-1.html

> On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
>
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
> * constructor(String);
> * valueOf(String);
> * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
> * constructor with String of CharSequence parameter
> * valueOf with String of CharSequence parameter
> * parse with String of CharSequence parameter
>
> C.) A mixed approach
> * constructor(String);
> * valueOf(String);
> * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--
Jeff Mesnil
JBoss, a division of Red Hat
http:/= /jmesnil.net/




--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



--
Thanks
Emily
= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
=
--001a1142b52233b8ca05625f9395-- From X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0 Wed Jan 10 05:54:11 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-io0-f181.google.com (mail-io0-f181.google.com [209.85.223.181]) by mail.eclipse.org (Postfix) with ESMTP id 0939D2DCE70 for ; Wed, 10 Jan 2018 05:54:10 -0500 (EST) Received: by mail-io0-f181.google.com with SMTP id t63so21988394iod.0 for ; Wed, 10 Jan 2018 02:54:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=YsNxXhvAaAkx/KqjOYzEXOB1LHCDK5XFs/XE39wQKfI=; b=a4hdzyNdhwgGfe/7g6pOnCMYeHyTZN7hkCi2gOzphDmEf053feLfIGo3LlxJR8TuHC DgcOlEkvPwbFq3daTzc+9q1dvIfNtb9w1Alhxr3pBVSRz8o7hQ62eDBVkg1LKsi+8+Y9 y0tC3JhS1Vpia2VB1mr8acbuuuoZ0P+UpxtIlsHOwFQccZBjJAXJqowyl5sBvVf/HgYU pWDjr+THy7Y/wZGJqpgmOWQUdtN2nen1plWF5Q5jZK+OsqTzdj26PVRvc7QxVwSgZnje 5ROmAx4YaBfpAjw1os2pt9dAbYA59vYxmpAaiJIPaTwj7AxUg9DCcMs9BxQ8MXRcX/X8 wJKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=YsNxXhvAaAkx/KqjOYzEXOB1LHCDK5XFs/XE39wQKfI=; b=bbM/EVPy4Amkw60bVLq7taQrt6c22v771/5W7yjiYhYhAhl4Sx+gvPB+VDO4oidJxv bEGA/H5w7UBjOQV0EDeg0pd27gZMexqGopWuw3FXoDeT7ql6N7NVyv0/Sp8d3KwlbcDa kWNvNzf4fAs+ElioCfmCHQyoGB3oLRm+8ktygLyN7swdnMK6Xyb/lh1gGyj82bFa7yzo 2td0vMFl6cJ5AhOlDi6pIf61yr5C7r9VMxe9Lvys9PoPmpZSy91ASFxAmhUQmBDu3hsi Zh8R4kURxdsTEcI7uXebdGW3LveAyhMSGhnkgv+3Po9H/rztNw7/ecwktF+RbNoWB0py IlLw== X-Gm-Message-State: AKGB3mJPOE1wny25ZgX/jrS9JhMQK4cTA9+85jFbaBEPce9nPGm8B3GB bVA/5Tt4ClOmHYs5qh/nZYQvJJ+y4EvPr3hAhek= X-Google-Smtp-Source: ACJfBovyEISi7URxS5dMcOWcreFIqDsyg80gxKY934U/fxS1tPUg7wlXqoqGoHE8RCctA328TG+KZ2rjWwN0BayKkxk= X-Received: by 10.107.112.17 with SMTP id l17mr17224205ioc.110.1515581650773; Wed, 10 Jan 2018 02:54:10 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.143.13 with HTTP; Wed, 10 Jan 2018 02:53:30 -0800 (PST) In-Reply-To: References: From: Anatole Tresch Date: Wed, 10 Jan 2018 11:53:30 +0100 Message-ID: To: Emily Jiang Content-Type: multipart/alternative; boundary="089e082d1d5cec2d1d056269d901" X-Mailman-Approved-At: Wed, 10 Jan 2018 11:23:39 -0500 Cc: ConfigJSR expert discussions , Hendrik Ebbers , Jean-Louis Monteiro , David Blevins , "John D. Ament" , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 10:54:11 -0000 --089e082d1d5cec2d1d056269d901 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Tamaya currently uses only: *of(String) *valueOf(String)instanceOf(String)getInstance(String)from(String)fromString= (String)parse(String) 2018-01-09 23:38 GMT+01:00 Emily Jiang : > As promised, I have finally got hold of a JVM SME. The recommended and > much used pattern will be of(String). Therefore, I think we should revisi= t > our plan: > > constructor(string) > of(String) > valueOf(String) > parse(CharSequence) > > > Thoughts? > > @Anatole, what type of combination does Tamaya support right now? > > Emily > > On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil wrote= : > >> Thanks! >> >> Am 08.01.2018 00:26 schrieb "Emily Jiang" : >> >>> +1 Jeff! >>> >>> I have contacted a JVM Architect but he is on vacation. I'll report bac= k >>> as soon as I get any confirmation. >>> >>> >>> Thanks >>> Emily >>> >>> On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil wrote: >>> >>>> To give some context to this vote, I searched for static methods in >>>> Java 9 javadoc index[1]: >>>> >>>> * 236 static methods named valueOf(String) >>>> * 0 for valueOf(CharSequence) >>>> * 6 for parse(String) >>>> * 12 for parse(CharSequence) >>>> >>>> and while I was at it: >>>> >>>> * 5 for of(String) >>>> * 0 for of(CharSequence) >>>> * 22 for fromString(String) (most of them in Java FX) >>>> * 0 for from(String) >>>> >>>> I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architec= t but I=E2=80=99m >>>> inclined to vote for C. >>>> >>>> [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.html >>>> >>>> > On 22 Dec 2017, at 12:35, Mark Struberg wrote: >>>> > >>>> > Good evening! >>>> > >>>> > In ticket #13 and spread out in microprofile-config we had a long >>>> discussion about which conditions must be met to make a Class being pi= cked >>>> up with an implicit converter. >>>> > >>>> > The following 3 options are on the table so far: >>>> > >>>> > A.) The original idea: >>>> > * constructor(String); >>>> > * valueOf(String); >>>> > * parse(String); >>>> > >>>> > B.) Basically A but also take CharSequence as parameter >>>> > * constructor with String of CharSequence parameter >>>> > * valueOf with String of CharSequence parameter >>>> > * parse with String of CharSequence parameter >>>> > >>>> > C.) A mixed approach >>>> > * constructor(String); >>>> > * valueOf(String); >>>> > * parse(CharSequence); >>>> > >>>> > >>>> > Please vote with the number and an explanation why it should be take= n. >>>> > We will tally the results on our next EG meeting. >>>> > >>>> > >>>> > >>>> > My personal VOTE is +1 for option B. >>>> > Reason: We have tons of static T parse(CharSequence) in java.time. >>>> That means we realls should support CharSequence for parse. >>>> > Otoh there are many constructors, parse and valueOf with both String >>>> but also CharSequence in the JDK and many highly used libraries like A= pache >>>> commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some met= hods >>>> with String params and other methods with CharSequence (option c) woul= d imo >>>> lead to confusion for users. >>>> > >>>> > txs and LieGrue, >>>> > strub >>>> > >>>> > >>>> > PS: adding all EG members to cc as I'm not 100% sure if the EG list >>>> already works properly. >>>> >>>> -- >>>> Jeff Mesnil >>>> JBoss, a division of Red Hat >>>> http://jmesnil.net/ >>>> >>>> >>> >>> >>> -- >>> Thanks >>> Emily >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> Emily Jiang >>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>> >> > > > -- > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > --=20 *Anatole Tresch* PPMC Member Apache Tamaya JCP Star Spec Lead *Switzerland, Europe Zurich, GMT+1* *maketechsimple.wordpress.com * *Twitter: @atsticks, @tamayaconf* *Speaking at:* [image: JSD_Speaker_2017][image: J-Con 2017 logo][image: JVM Con] --089e082d1d5cec2d1d056269d901 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Tam= aya currently uses only:

=
of(String)
valueOf(String)
instanceOf(String)
getInstance(String)
from(St=
ring)
fromString(String)
parse(String)<=
/span>

2018-01-09 23:38 GMT+01:00 Emily Jiang <emijiang6@googlemail= .com>:
As promised, I have finally got hold of a J= VM SME. The recommended and much used pattern will be of(String). Therefore= , I think we should revisit our plan:

constructor(string)
<= /div>of(String)
valueOf(String)
parse(CharSequence)

Thoughts?

@Anatole, what type of combination does = Tamaya support right now?
Emi= ly

On Mon, Jan 8, 2018 at 1:2= 5 AM, Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrote:
Thanks!=C2=A0

Am 08.01.2018 00:26 = schrieb "Emily Jiang" <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
+1 Jef= f!

I have contacted a JVM Architect but he is on vacation. I&= #39;ll report back as soon as I get any confirmation.


Than= ks
Emily

On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil <= ;WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr= > wrote:
To give some conte= xt to this vote, I searched for static methods in Java 9 javadoc index[1]:<= br>
* 236 static methods named valueOf(String)
* 0 for valueOf(CharSequence)
* 6 for parse(String)
* 12 for parse(CharSequence)

and while I was at it:

* 5 for of(String)
* 0 for of(CharSequence)
* 22 for fromString(String) (most of them in Java FX)
* 0 for from(String)

I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect but= I=E2=80=99m inclined to vote for C.

[1] https://docs.oracle.com/javase= /9/docs/api/index-files/index-1.html

> On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
>
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
> * constructor(String);
> * valueOf(String);
> * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
> * constructor with String of CharSequence parameter
> * valueOf with String of CharSequence parameter
> * parse with String of CharSequence parameter
>
> C.) A mixed approach
> * constructor(String);
> * valueOf(String);
> * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--
Jeff Mesnil
JBoss, a division of Red Hat
http:/= /jmesnil.net/




--
Thanks
Emily
=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DEmily Jiang
ejia= VwnKEJI6UvzgKuap@Y45SF02wNnDqB7sJ



--
=
=
Anatole TreschPPMC Member Apache Tamaya
JCP Star Spec Lead
= Switzerland,=C2=A0Europe Zurich, GMT+1
Twitter: =C2=A0@atsticks, @tamayaconf<= /div>

Speaking at:

=C2=A0=C2=A03D"JSD_Speaker_2017"3D"J-Con3D"JVM

--089e082d1d5cec2d1d056269d901-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Wed Jan 10 06:44:47 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f68.google.com (mail-lf0-f68.google.com [209.85.215.68]) by mail.eclipse.org (Postfix) with ESMTP id 2EEB72DCE9F for ; Wed, 10 Jan 2018 06:44:46 -0500 (EST) Received: by mail-lf0-f68.google.com with SMTP id e27so19479139lfb.9 for ; Wed, 10 Jan 2018 03:44:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=LM7WbqZcMLQ0V6Mwf5JtshX/9zPgQB1W0n7NdDq0LOs=; b=ZX6fPFOx3FY4mFa5rjYgrvruLLRL3rcs9NjBGOtWfgWvsAywOO8JJtNnJebo5tRJcw Sx5BigQ1myWMQnybeMUTJwtpWEn/qYpia8/WeU/sVtsCtLniIv2P9ub1MUQsgOvUjGhF Jv6+UaPmgE8DXVdFZzvs5byp/PhyFrMjarBiWKZF3iJLcNZ/2Y4ryUSnE8i7eqB2fRDa OBuT5MkEwEFOIJh+n/TeIc7lwqkxr9PKnqJkl9IfbLbFam4IApINpIzLdPkHP5T6/HFL r7/MA2UH/ebAtAVD1Ij6NCH9LkSu+8FiUXPcyvcN0K5MoQthSuki1keFkNYMng8D8MtO 0eEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=LM7WbqZcMLQ0V6Mwf5JtshX/9zPgQB1W0n7NdDq0LOs=; b=Dy/uKG1Onen/BoLgRIk3FtfZlontJOvtN4UfHf/RmWS0KyNfBo/edDhs/SMity96wT tCMHgKLIF8AMEV+pl3G3pCsAI6nCmkftA3qyZ/hBTJaazi4EycK4cNHqEGDOmiGhPJUm akdRD6pQ5A/Koh2vXT0h78LqGSLggQoxJPBbE0kqtDXNjDzIuNOyeCsMqKJRiBwDtDT4 I/M+nkepJOUzQS5NrNIAKTOW30EjkKhuMBK1dMTzy2RCjn6EWyncTzhWe7GAID7ma3qg Xso6Q/cJKWDQZCMmDzrPF/PBt9OOxqsVl3ehEnLY2HUkMekKTL+VeQf59MrxSE+gPp/z LXyg== X-Gm-Message-State: AKGB3mLSc1qXlypxW3pf+XRJbKqagxDJvlp3JpNdA3OVxplARiZ+NIgi 2AW8UrRCLRBJ5D0xT7mnPiMzOGwh2rmDhppMTHY= X-Google-Smtp-Source: ACJfBov10n2XxHxQVzf82EcTQovHM72HyYwvN3/kAO4XCyshEwKqd6jSvMMfIfpbC9KSD0ieAUnWK4Y/ZwJSX8WmdYs= X-Received: by 10.46.91.19 with SMTP id p19mr11025914ljb.52.1515584686680; Wed, 10 Jan 2018 03:44:46 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Wed, 10 Jan 2018 03:44:45 -0800 (PST) In-Reply-To: References: From: Emily Jiang Date: Wed, 10 Jan 2018 11:44:45 +0000 Message-ID: To: Anatole Tresch Content-Type: multipart/alternative; boundary="001a114b269ae070d505626a8ebc" X-Mailman-Approved-At: Wed, 10 Jan 2018 11:23:39 -0500 Cc: ConfigJSR expert discussions , Hendrik Ebbers , Jean-Louis Monteiro , David Blevins , "John D. Ament" , hiromi_18_SGbV9GO8UlXaG99r@A0IEdHWwtc5zl7rk Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 11:44:47 -0000 --001a114b269ae070d505626a8ebc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks Anatole! As per your email, it seems Tamaya does not support valueOf(CharSequence) nor constructor with (CharSequence). Was there a request for such a support? If not, why should we bother to do the useless support? By the way, Archaius does not support valueOf(CharSequence) nor constructor with (CharSequence). Emily On Wed, Jan 10, 2018 at 10:53 AM, Anatole Tresch wrote= : > Tamaya currently uses only: > > *of(String) > *valueOf(String)instanceOf(String)getInstance(String)from(String)fromStri= ng(String)parse(String) > > > 2018-01-09 23:38 GMT+01:00 Emily Jiang : > >> As promised, I have finally got hold of a JVM SME. The recommended and >> much used pattern will be of(String). Therefore, I think we should revis= it >> our plan: >> >> constructor(string) >> of(String) >> valueOf(String) >> parse(CharSequence) >> >> >> Thoughts? >> >> @Anatole, what type of combination does Tamaya support right now? >> >> Emily >> >> On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil >> wrote: >> >>> Thanks! >>> >>> Am 08.01.2018 00:26 schrieb "Emily Jiang" : >>> >>>> +1 Jeff! >>>> >>>> I have contacted a JVM Architect but he is on vacation. I'll report >>>> back as soon as I get any confirmation. >>>> >>>> >>>> Thanks >>>> Emily >>>> >>>> On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil wrote= : >>>> >>>>> To give some context to this vote, I searched for static methods in >>>>> Java 9 javadoc index[1]: >>>>> >>>>> * 236 static methods named valueOf(String) >>>>> * 0 for valueOf(CharSequence) >>>>> * 6 for parse(String) >>>>> * 12 for parse(CharSequence) >>>>> >>>>> and while I was at it: >>>>> >>>>> * 5 for of(String) >>>>> * 0 for of(CharSequence) >>>>> * 22 for fromString(String) (most of them in Java FX) >>>>> * 0 for from(String) >>>>> >>>>> I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM archite= ct but I=E2=80=99m >>>>> inclined to vote for C. >>>>> >>>>> [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.htm= l >>>>> >>>>> > On 22 Dec 2017, at 12:35, Mark Struberg wrote: >>>>> > >>>>> > Good evening! >>>>> > >>>>> > In ticket #13 and spread out in microprofile-config we had a long >>>>> discussion about which conditions must be met to make a Class being p= icked >>>>> up with an implicit converter. >>>>> > >>>>> > The following 3 options are on the table so far: >>>>> > >>>>> > A.) The original idea: >>>>> > * constructor(String); >>>>> > * valueOf(String); >>>>> > * parse(String); >>>>> > >>>>> > B.) Basically A but also take CharSequence as parameter >>>>> > * constructor with String of CharSequence parameter >>>>> > * valueOf with String of CharSequence parameter >>>>> > * parse with String of CharSequence parameter >>>>> > >>>>> > C.) A mixed approach >>>>> > * constructor(String); >>>>> > * valueOf(String); >>>>> > * parse(CharSequence); >>>>> > >>>>> > >>>>> > Please vote with the number and an explanation why it should be >>>>> taken. >>>>> > We will tally the results on our next EG meeting. >>>>> > >>>>> > >>>>> > >>>>> > My personal VOTE is +1 for option B. >>>>> > Reason: We have tons of static T parse(CharSequence) in java.time. >>>>> That means we realls should support CharSequence for parse. >>>>> > Otoh there are many constructors, parse and valueOf with both Strin= g >>>>> but also CharSequence in the JDK and many highly used libraries like = Apache >>>>> commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some me= thods >>>>> with String params and other methods with CharSequence (option c) wou= ld imo >>>>> lead to confusion for users. >>>>> > >>>>> > txs and LieGrue, >>>>> > strub >>>>> > >>>>> > >>>>> > PS: adding all EG members to cc as I'm not 100% sure if the EG list >>>>> already works properly. >>>>> >>>>> -- >>>>> Jeff Mesnil >>>>> JBoss, a division of Red Hat >>>>> http://jmesnil.net/ >>>>> >>>>> >>>> >>>> >>>> -- >>>> Thanks >>>> Emily >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>> Emily Jiang >>>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>>> >>> >> >> >> -- >> Thanks >> Emily >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Emily Jiang >> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >> > > > > -- > *Anatole Tresch* > PPMC Member Apache Tamaya > JCP Star Spec Lead > *Switzerland, Europe Zurich, GMT+1* > *maketechsimple.wordpress.com * > *Twitter: @atsticks, @tamayaconf* > > *Speaking at:* > > [image: JSD_Speaker_2017][image: J-Con 2017 logo][image: JVM Con] > > --=20 Thanks Emily =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --001a114b269ae070d505626a8ebc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks Anatole! As per your email, it seems Tama= ya does not support valueOf(CharSequence) nor constructor=20 with (CharSequence). Was there a request for such a support? If not, why should we bother to do the useless support? By the way, Archaius does=20 not support valueOf(CharSequence) nor constructor with (CharSequence).
=


Emily


On Wed, Jan 10, 2018 at 10:53 AM, A= natole Tresch <X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0> wrote:
Tamaya currently uses only:

of(String)
valueOf(String)
instanceOf(String)
getInstance(String)
from(St=
ring)
fromString(String)
parse(String)<=
/span>
<= br>
2018-01-09 23:38 GMT+01:00 Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
As promised, I have = finally got hold of a JVM SME. The recommended and much used pattern will b= e of(String). Therefore, I think we should revisit our plan:

c= onstructor(string)
of(String)
valueOf(String)
pa= rse(CharSequence)


Thoughts?

@Anatole, what ty= pe of combination does Tamaya support right now?

Emily

On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil <dpwNbw5hVeSjRhh9@Pv31rhQxnskvXW1z= om> wrote:
Thanks!=C2=A0

Am 08.01.2018 00:26 sc= hrieb "Emily Jiang" <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
+1 Jeff!=

I have contacted a JVM Architect but he is on vacation. I= 9;ll report back as soon as I get any confirmation.


Thanks=
Emily

On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil <<= a href=3D"mailto:WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr" target=3D"_blank">WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr> wrote:
To give some context= to this vote, I searched for static methods in Java 9 javadoc index[1]:
* 236 static methods named valueOf(String)
* 0 for valueOf(CharSequence)
* 6 for parse(String)
* 12 for parse(CharSequence)

and while I was at it:

* 5 for of(String)
* 0 for of(CharSequence)
* 22 for fromString(String) (most of them in Java FX)
* 0 for from(String)

I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect but= I=E2=80=99m inclined to vote for C.

[1] https://docs.oracle.com/javase= /9/docs/api/index-files/index-1.html

> On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
>
> Good evening!
>
> In ticket #13 and spread out in microprofile-config we had a long disc= ussion about which conditions must be met to make a Class being picked up w= ith an implicit converter.
>
> The following 3 options are on the table so far:
>
> A.) The original idea:
> * constructor(String);
> * valueOf(String);
> * parse(String);
>
> B.) Basically A but also take CharSequence as parameter
> * constructor with String of CharSequence parameter
> * valueOf with String of CharSequence parameter
> * parse with String of CharSequence parameter
>
> C.) A mixed approach
> * constructor(String);
> * valueOf(String);
> * parse(CharSequence);
>
>
> Please vote with the number and an explanation why it should be taken.=
> We will tally the results on our next EG meeting.
>
>
>
> My personal VOTE is +1 for option B.
> Reason: We have tons of static T parse(CharSequence) in java.time. Tha= t means we realls should support CharSequence for parse.
> Otoh there are many constructors, parse and valueOf with both String b= ut also CharSequence in the JDK and many highly used libraries like Apache = commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some methods = with String params and other methods with CharSequence (option c) would imo= lead to confusion for users.
>
> txs and LieGrue,
> strub
>
>
> PS: adding all EG members to cc as I'm not 100% sure if the EG lis= t already works properly.

--
Jeff Mesnil
JBoss, a division of Red Hat
http:/= /jmesnil.net/




--
ThanksEmily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jian= g
Yjp73Ee8XrnVIEPw@d6MLk1IRhq1XnCjF= rg



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



<= /div>--
Anatole Tresch
PPMC Member Apache Tama= ya
JCP Star Spec Lead
Switzerland,=C2=A0Europe Z= urich, GMT+1
<= div>Twitter: =C2=A0@atsticks, @tamayaconf

Speaking at:

=C2=A0=C2=A03D"JSD_Speaker_2017"3D"J-Con3D"JVM

=



--
Thanks
Emily
=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--001a114b269ae070d505626a8ebc-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Wed Jan 10 13:55:08 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from sonic308-19.consmr.mail.ir2.yahoo.com (sonic308-19.consmr.mail.ir2.yahoo.com [77.238.178.147]) by mail.eclipse.org (Postfix) with ESMTP id 88A0817D451 for ; Wed, 10 Jan 2018 13:55:07 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1515610507; bh=JY9yR8zbaEtzpbyadp92tn3ex1505kLFtVEPqd2RSeA=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject; b=Q1e8fsRrw0sIBRw38h4S5DFcvsoUmSSw+dmWMWm0R5dmiopDOhzE6gggwDNFeOfltCx03595EosT/sj8QztKQ/g/1QKUGJ/300hCGJ96Fd4QpL9yMzW5Fn+x7etiX5qDvevwstbdBJZPCEV/8uf15RHqsuf+vHV7cb27vTYzHmx3kwOnY/8+6DjK56WAa5gV0CZuqi1uaZLcpPfTPI05X1WfNZPEfvQAUiXU9aflPrst9ghi3+U8TAb4mmyWFMn+iQV8QjWrA26ix1gbplZW70RR5p07XGPJiY+ljIKLKISQaeyCOPnOb2ZhqdswTETZTi9kZOg7Ua+Fvv9s2iAmsg== X-YMail-OSG: yg0CI08VM1l_l5h0kOIBBMtNxRtpezI2xiGZfGdLToStMpvnvV6OE.Y1k8MpL7A eLZPIKFzaO1d_mtmPZcG0iQj7a99HHaKxa798jAq6kuFCETq9DNswWfkp0.oCJg5aKVQwteKTS5j uI5VgtkHVKg7j8hf7U7zSp37iYsF3.RrxDr4nIncAkjn5Aq.TA6yBif6QRH59oSg0EOuoIjbH5nj ESSQJbF9GiGsUYZqa27n1vznuCTH8O1XBniTws2AT6UwG75i8uLmcOlfyB.A0S9ArPgGQDl_SQ5F CXGwBQjdKyCWBx46KJeWfZQZ.MiQJaBaXVl2LgGoJ_d6E7Uws9_8AEHpyS3F2zl5TrJVABgrY36i QxPyt9k2.biPQoXQQuuqpwoFh3_imlFjiU1L7M66Tt16za_tvNvKCrfInysIHvDDhioJImiREv.s yHHod8DKn9uxqfvenybkJKcv1QebSOhGWNtIII0fKyzVrelaSir6_LJD960UMs9rXqfIymPtn Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.ir2.yahoo.com with HTTP; Wed, 10 Jan 2018 18:55:07 +0000 Received: from smtp165.mail.ir2.yahoo.com (EHLO [192.168.0.234]) ([46.228.39.32]) by smtp414.mail.ir2.yahoo.com (JAMES SMTP Server ) with ESMTPA ID e1fccf9cec1c7e850c6fa80c7f126864; Wed, 10 Jan 2018 18:55:04 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) From: Mark Struberg In-Reply-To: Date: Wed, 10 Jan 2018 19:55:02 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Emily Jiang , ConfigJSR expert discussions X-Mailer: Apple Mail (2.3445.5.20) Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jan 2018 18:55:08 -0000 But it seems that Tamyay ONLY supports String. So also no = parse(CharSequence). That means it cannot deal with all the Java8 Date classes etc. In other words: CharSequence support has to be added to Tamaya anyhow. LieGrue, strub > Am 10.01.2018 um 12:44 schrieb Emily Jiang : >=20 > Thanks Anatole! As per your email, it seems Tamaya does not support = valueOf(CharSequence) nor constructor with (CharSequence). Was there a = request for such a support? If not, why should we bother to do the = useless support? By the way, Archaius does not support = valueOf(CharSequence) nor constructor with (CharSequence).=20 >=20 >=20 > Emily >=20 >=20 > On Wed, Jan 10, 2018 at 10:53 AM, Anatole Tresch = wrote: > Tamaya currently uses only: >=20 > of(String) >=20 > valueOf > (String) >=20 > instanceOf > (String) >=20 > getInstance > (String) >=20 > from > (String) >=20 > fromString > (String) >=20 > parse(String) >=20 > 2018-01-09 23:38 GMT+01:00 Emily Jiang : > As promised, I have finally got hold of a JVM SME. The recommended and = much used pattern will be of(String). Therefore, I think we should = revisit our plan: >=20 > constructor(string) > of(String) > valueOf(String) > parse(CharSequence) >=20 >=20 > Thoughts? >=20 > @Anatole, what type of combination does Tamaya support right now? >=20 > Emily >=20 > On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil = wrote: > Thanks!=20 >=20 > Am 08.01.2018 00:26 schrieb "Emily Jiang" : > +1 Jeff!=20 >=20 > I have contacted a JVM Architect but he is on vacation. I'll report = back as soon as I get any confirmation. >=20 >=20 > Thanks > Emily >=20 > On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil = wrote: > To give some context to this vote, I searched for static methods in = Java 9 javadoc index[1]: >=20 > * 236 static methods named valueOf(String) > * 0 for valueOf(CharSequence) > * 6 for parse(String) > * 12 for parse(CharSequence) >=20 > and while I was at it: >=20 > * 5 for of(String) > * 0 for of(CharSequence) > * 22 for fromString(String) (most of them in Java FX) > * 0 for from(String) >=20 > I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM = architect but I=E2=80=99m inclined to vote for C. >=20 > [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.html >=20 > > On 22 Dec 2017, at 12:35, Mark Struberg wrote: > > > > Good evening! > > > > In ticket #13 and spread out in microprofile-config we had a long = discussion about which conditions must be met to make a Class being = picked up with an implicit converter. > > > > The following 3 options are on the table so far: > > > > A.) The original idea: > > * constructor(String); > > * valueOf(String); > > * parse(String); > > > > B.) Basically A but also take CharSequence as parameter > > * constructor with String of CharSequence parameter > > * valueOf with String of CharSequence parameter > > * parse with String of CharSequence parameter > > > > C.) A mixed approach > > * constructor(String); > > * valueOf(String); > > * parse(CharSequence); > > > > > > Please vote with the number and an explanation why it should be = taken. > > We will tally the results on our next EG meeting. > > > > > > > > My personal VOTE is +1 for option B. > > Reason: We have tons of static T parse(CharSequence) in java.time. = That means we realls should support CharSequence for parse. > > Otoh there are many constructors, parse and valueOf with both String = but also CharSequence in the JDK and many highly used libraries like = Apache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of = some methods with String params and other methods with CharSequence = (option c) would imo lead to confusion for users. > > > > txs and LieGrue, > > strub > > > > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list = already works properly. >=20 > -- > Jeff Mesnil > JBoss, a division of Red Hat > http://jmesnil.net/ >=20 >=20 >=20 >=20 > --=20 > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >=20 >=20 >=20 > --=20 > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >=20 >=20 >=20 > --=20 > Anatole Tresch > PPMC Member Apache Tamaya > JCP Star Spec Lead > Switzerland, Europe Zurich, GMT+1 > maketechsimple.wordpress.com=20 > Twitter: @atsticks, @tamayaconf >=20 > Speaking at: >=20 > =20 >=20 >=20 >=20 >=20 > --=20 > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Thu Jan 11 09:49:45 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-lf0-f53.google.com (mail-lf0-f53.google.com [209.85.215.53]) by mail.eclipse.org (Postfix) with ESMTP id 510EA2DCDD3 for ; Thu, 11 Jan 2018 09:49:44 -0500 (EST) Received: by mail-lf0-f53.google.com with SMTP id a12so3052888lfe.13 for ; Thu, 11 Jan 2018 06:49:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ymevDHmCuOXnFIhZHYqZ8DGBCOWKbEUBN5zDwOSCGUA=; b=WkD/zYOdGfV+Yr58+ln07HwXr5GpLVdFcfMJQidnply05Pa/HSGFlHu0kD7nPHRMAX GP2VKTT9kuMo1PJPW/JdOsdzW8VIFHnccNgvEGTLhcMj+M/Gmu7NHQLiplEskni+M3dp Ooqu7iQPyMVuKRSUPx8GIplQkXUDq8Yxt16OlggArrt29OjP74bNNGZ9X2bwhnvnZU48 eS4ZWroiR9WxLKjsNGrDav9WAZAprffgoBGXntBTZEY3mvd60+s2Yu6jmI9dBg/nKtj6 DwFlBMS/P33YX+bLgXcTM3s0ZqrHRPLg0Tf+AAXS/D/7nS22Wn8yyLRrYWlVsoHb9XvA K4Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ymevDHmCuOXnFIhZHYqZ8DGBCOWKbEUBN5zDwOSCGUA=; b=rLg4Dua+1JmgvCIqjQlPEE7O5BANnzyWHLC6SMcCCdMSzRgHO2XDpDSB5mWTFZB6XC I2BiIVChk4VCEgbF+/US/aCge6Lsr1ciQwQME3z1MKHJ7hZaFWZS1G+Z3pP6f3+4qjuc ZCLY2p2pp+g/eLEgrWjZ3SjyLTVmPgKtdZHmGqwZL8JYYFgI+rMJ0tUKEaWRvAAFXqv5 KdC9zjk0Y6ApxDNlWEbI2MtmQJ3PnNCkwnZ1ynFwdv14ycg1o7IYRPaeTfRl8PMA7zBp QjVX51hQGLl9EAAVa6UYqTriYOIJg57L3uphdtyQNWP9wpQBU2ZVNqazkSS22GZAmbKg Ktdg== X-Gm-Message-State: AKwxytdtt/nI7ZlIzO6J0yYOpypRqjx+JeiyAEarOiueGtKIWfdehL1d 3fZy6rdCpGOfbrtxrbOXJrRN/9ElWWP4ikoFqVc= X-Google-Smtp-Source: ACJfBovtIzDb1iFjDh9Jko24jULZebFDkedW0WYwZ9RbJEG8uGu3fmMXxZb/J6EGdOuLwnykdEn3eKt1+dpC1W7np/w= X-Received: by 10.46.101.217 with SMTP id e86mr1415737ljf.5.1515682183813; Thu, 11 Jan 2018 06:49:43 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.2.136 with HTTP; Thu, 11 Jan 2018 06:49:42 -0800 (PST) In-Reply-To: References: From: Emily Jiang Date: Thu, 11 Jan 2018 14:49:42 +0000 Message-ID: To: Mark Struberg Content-Type: multipart/alternative; boundary="001a114b056228a00a05628142db" Cc: ConfigJSR expert discussions Subject: Re: [ConfigJSR-experts] [VOTE] List of Implicit Converter conditions X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jan 2018 14:49:45 -0000 --001a114b056228a00a05628142db Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Mark. parse(CharSequence) is brought in for java.time packages, which is valid use case. Symmetric should not play a significant role here. Jean-Louise, there is a balance on what you said. If it is a limitation, we can add it. I am not a fun to add too much while no one ever uses the functionality. Stay lean and grow only when it is necessary. @Werner, I think you misunderstood what we are trying to achieve. We are discussing a class can be served as a converter automatically with the need to create a dedicated converter, if the class has the valueOf, of, constructor with String or parse(CharSequence). We are not proposing to add of(String) to the Config api. Emily On Wed, Jan 10, 2018 at 6:55 PM, Mark Struberg wrote: > But it seems that Tamyay ONLY supports String. So also no > parse(CharSequence). > That means it cannot deal with all the Java8 Date classes etc. > > In other words: CharSequence support has to be added to Tamaya anyhow. > > LieGrue, > strub > > > Am 10.01.2018 um 12:44 schrieb Emily Jiang : > > > > Thanks Anatole! As per your email, it seems Tamaya does not support > valueOf(CharSequence) nor constructor with (CharSequence). Was there a > request for such a support? If not, why should we bother to do the useles= s > support? By the way, Archaius does not support valueOf(CharSequence) nor > constructor with (CharSequence). > > > > > > Emily > > > > > > On Wed, Jan 10, 2018 at 10:53 AM, Anatole Tresch > wrote: > > Tamaya currently uses only: > > > > of(String) > > > > valueOf > > (String) > > > > instanceOf > > (String) > > > > getInstance > > (String) > > > > from > > (String) > > > > fromString > > (String) > > > > parse(String) > > > > 2018-01-09 23:38 GMT+01:00 Emily Jiang : > > As promised, I have finally got hold of a JVM SME. The recommended and > much used pattern will be of(String). Therefore, I think we should revisi= t > our plan: > > > > constructor(string) > > of(String) > > valueOf(String) > > parse(CharSequence) > > > > > > Thoughts? > > > > @Anatole, what type of combination does Tamaya support right now? > > > > Emily > > > > On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil > wrote: > > Thanks! > > > > Am 08.01.2018 00:26 schrieb "Emily Jiang" : > > +1 Jeff! > > > > I have contacted a JVM Architect but he is on vacation. I'll report bac= k > as soon as I get any confirmation. > > > > > > Thanks > > Emily > > > > On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil wrote: > > To give some context to this vote, I searched for static methods in Jav= a > 9 javadoc index[1]: > > > > * 236 static methods named valueOf(String) > > * 0 for valueOf(CharSequence) > > * 6 for parse(String) > > * 12 for parse(CharSequence) > > > > and while I was at it: > > > > * 5 for of(String) > > * 0 for of(CharSequence) > > * 22 for fromString(String) (most of them in Java FX) > > * 0 for from(String) > > > > I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architect= but I=E2=80=99m inclined > to vote for C. > > > > [1] https://docs.oracle.com/javase/9/docs/api/index-files/index-1.html > > > > > On 22 Dec 2017, at 12:35, Mark Struberg wrote: > > > > > > Good evening! > > > > > > In ticket #13 and spread out in microprofile-config we had a long > discussion about which conditions must be met to make a Class being picke= d > up with an implicit converter. > > > > > > The following 3 options are on the table so far: > > > > > > A.) The original idea: > > > * constructor(String); > > > * valueOf(String); > > > * parse(String); > > > > > > B.) Basically A but also take CharSequence as parameter > > > * constructor with String of CharSequence parameter > > > * valueOf with String of CharSequence parameter > > > * parse with String of CharSequence parameter > > > > > > C.) A mixed approach > > > * constructor(String); > > > * valueOf(String); > > > * parse(CharSequence); > > > > > > > > > Please vote with the number and an explanation why it should be taken= . > > > We will tally the results on our next EG meeting. > > > > > > > > > > > > My personal VOTE is +1 for option B. > > > Reason: We have tons of static T parse(CharSequence) in java.time. > That means we realls should support CharSequence for parse. > > > Otoh there are many constructors, parse and valueOf with both String > but also CharSequence in the JDK and many highly used libraries like Apac= he > commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some method= s > with String params and other methods with CharSequence (option c) would i= mo > lead to confusion for users. > > > > > > txs and LieGrue, > > > strub > > > > > > > > > PS: adding all EG members to cc as I'm not 100% sure if the EG list > already works properly. > > > > -- > > Jeff Mesnil > > JBoss, a division of Red Hat > > http://jmesnil.net/ > > > > > > > > > > -- > > Thanks > > Emily > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Emily Jiang > > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > > > > > > > -- > > Thanks > > Emily > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Emily Jiang > > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > > > > > > > -- > > Anatole Tresch > > PPMC Member Apache Tamaya > > JCP Star Spec Lead > > Switzerland, Europe Zurich, GMT+1 > > maketechsimple.wordpress.com > > Twitter: @atsticks, @tamayaconf > > > > Speaking at: > > > > > > > > > > > > > > -- > > Thanks > > Emily > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Emily Jiang > > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > --=20 Thanks Emily =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --001a114b056228a00a05628142db Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Mark. parse(CharSequence) is brought in for java= .time packages, which is valid use case. Symmetric should not play a signif= icant role here.
Jean-Louise, there is a balance on what you = said. If it is a limitation, we can add it. I am not a fun to add too much = while no one ever uses the functionality. Stay lean and grow only when it i= s necessary.


@Werner, I think you misunderstood what we ar= e trying to achieve. We are discussing a class can be served as a converter= automatically with the need to create a dedicated converter, if the class = has the valueOf, of, constructor with String or parse(CharSequence). We are= not proposing to add of(String) to the Config api.

Emily
<= /div>

On Wed, Jan = 10, 2018 at 6:55 PM, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote= :
But it seems that Tamyay ONLY supports = String. So also no parse(CharSequence).
That means it cannot deal with all the Java8 Date classes etc.

In other words: CharSequence support has to be added to Tamaya anyhow.

LieGrue,
strub

> Am 10.01.2018 um 12:44 schrieb Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
>
> Thanks Anatole! As per your email, it seems Tamaya does not support va= lueOf(CharSequence) nor constructor with (CharSequence). Was there a reques= t for such a support? If not, why should we bother to do the useless suppor= t? By the way, Archaius does not support valueOf(CharSequence) nor construc= tor with (CharSequence).
>
>
> Emily
>
>
> On Wed, Jan 10, 2018 at 10:53 AM, Anatole Tresch <X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0> wrote:
> Tamaya currently uses only:
>
> of(String)
>
> valueOf
> (String)
>
> instanceOf
> (String)
>
> getInstance
> (String)
>
> from
> (String)
>
> fromString
> (String)
>
> parse(String)
>
> 2018-01-09 23:38 GMT+01:00 Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
> As promised, I have finally got hold of a JVM SME. The recommended and= much used pattern will be of(String). Therefore, I think we should revisit= our plan:
>
> constructor(string)
> of(String)
> valueOf(String)
> parse(CharSequence)
>
>
> Thoughts?
>
> @Anatole, what type of combination does Tamaya support right now?
>
> Emily
>
> On Mon, Jan 8, 2018 at 1:25 AM, Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrote:
> Thanks!
>
> Am 08.01.2018 00:26 schrieb "Emily Jiang" <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
> +1 Jeff!
>
> I have contacted a JVM Architect but he is on vacation. I'll repor= t back as soon as I get any confirmation.
>
>
> Thanks
> Emily
>
> On Thu, Jan 4, 2018 at 1:09 PM, Jeff Mesnil <WgruWS/Mbr2haagR@C5xsf/ykoT0kqTJr> wrote:
> To give some context to this vote, I searched for static methods in Ja= va 9 javadoc index[1]:
>
> * 236 static methods named valueOf(String)
> * 0 for valueOf(CharSequence)
> * 6 for parse(String)
> * 12 for parse(CharSequence)
>
> and while I was at it:
>
> * 5 for of(String)
> * 0 for of(CharSequence)
> * 22 for fromString(String) (most of them in Java FX)
> * 0 for from(String)
>
> I=E2=80=99m waiting for Emily=E2=80=99s feedback from the JVM architec= t but I=E2=80=99m inclined to vote for C.
>
> [1] https://docs.oracle.com/<= wbr>javase/9/docs/api/index-files/index-1.html
>
> > On 22 Dec 2017, at 12:35, Mark Struberg <TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu> wrote:
> >
> > Good evening!
> >
> > In ticket #13 and spread out in microprofile-config we had a long= discussion about which conditions must be met to make a Class being picked= up with an implicit converter.
> >
> > The following 3 options are on the table so far:
> >
> > A.) The original idea:
> > * constructor(String);
> > * valueOf(String);
> > * parse(String);
> >
> > B.) Basically A but also take CharSequence as parameter
> > * constructor with String of CharSequence parameter
> > * valueOf with String of CharSequence parameter
> > * parse with String of CharSequence parameter
> >
> > C.) A mixed approach
> > * constructor(String);
> > * valueOf(String);
> > * parse(CharSequence);
> >
> >
> > Please vote with the number and an explanation why it should be t= aken.
> > We will tally the results on our next EG meeting.
> >
> >
> >
> > My personal VOTE is +1 for option B.
> > Reason: We have tons of static T parse(CharSequence) in java.time= . That means we realls should support CharSequence for parse.
> > Otoh there are many constructors, parse and valueOf with both Str= ing but also CharSequence in the JDK and many highly used libraries like Ap= ache commons, Guava, Vaadin, ops4j, etc. Having a mixed ruleset of some met= hods with String params and other methods with CharSequence (option c) woul= d imo lead to confusion for users.
> >
> > txs and LieGrue,
> > strub
> >
> >
> > PS: adding all EG members to cc as I'm not 100% sure if the E= G list already works properly.
>
> --
> Jeff Mesnil
> JBoss, a division of Red Hat
> h= ttp://jmesnil.net/
>
>
>
>
> --
> Thanks
> Emily
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> Emily Jiang
> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
>
>
>
> --
> Thanks
> Emily
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> Emily Jiang
> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
>
>
>
> --
> Anatole Tresch
> PPMC Member Apache Tamaya
> JCP Star Spec Lead
> Switzerland, Europe Zurich, GMT+1
> maketechsimple.wordpress.com
> Twitter:=C2=A0 @atsticks, @tamayaconf
>
> Speaking at:
>
>
>
>
>
>
> --
> Thanks
> Emily
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> Emily Jiang
> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ




--
Thanks
Emily
= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
=
--001a114b056228a00a05628142db-- From DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX Fri Jan 19 04:54:48 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from nelson.canoo.com (gate0.canoo.com [195.141.68.118]) by mail.eclipse.org (Postfix) with SMTP id 8F93117D49C for ; Fri, 19 Jan 2018 04:54:47 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by nelson.canoo.com (Postfix) with ESMTP id B8978860A42 for ; Fri, 19 Jan 2018 10:54:23 +0100 (CET) Received: from nelson.canoo.com ([127.0.0.1]) by localhost (nelson.canoo.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ltQPD94E9W4f for ; Fri, 19 Jan 2018 10:54:22 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by nelson.canoo.com (Postfix) with ESMTP id 7BFCE86DA6A for ; Fri, 19 Jan 2018 10:54:22 +0100 (CET) X-Virus-Scanned: amavisd-new at canoo.com Received: from nelson.canoo.com ([127.0.0.1]) by localhost (nelson.canoo.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id t_5mKl02n5iV for ; Fri, 19 Jan 2018 10:54:22 +0100 (CET) Received: from [10.8.0.38] (slave.canoo.com [192.168.0.60]) by nelson.canoo.com (Postfix) with ESMTPSA id 3E98C860A42 for ; Fri, 19 Jan 2018 10:54:22 +0100 (CET) From: Andres Almiray Content-Type: multipart/alternative; boundary="Apple-Mail=_685D1135-F294-4D8B-A9DD-A5995CC6BD76" Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Message-Id: Date: Fri, 19 Jan 2018 10:54:44 +0100 To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailer: Apple Mail (2.3273) Subject: [ConfigJSR-experts] JSR377 as consumer X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jan 2018 09:54:49 -0000 --Apple-Mail=_685D1135-F294-4D8B-A9DD-A5995CC6BD76 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii *cross posting from configjsr-discuss as some EG members did not receive = the previous message* Hello everyone, I had a chance to discuss with Sebastian Daschner (during JSpiritUnconf) = about future collaborations between JSR-382 and JSR-377. In the last JSR-377 meeting (December) we agreed to follow our own path = given that we're not privy to the release timeframe for 382 and we'd = like to release as early as possible. Thus 377's API would be modelled = to cover all its needs, then on a next release we deprecate 377's API = and support 382's. That sounded like a good plan until I actually paid = attention to the current state of 382's API. Like 382, 377 requires a passive configuration container, 382 has = javax.config.Config, 377 has = javax.application.configuration.Configuration See = https://github.com/jsr377/jsr377-api/blob/master/jsr377-api/src/main/java/= javax/application/configuration/Configuration.java for details. The most basic method we required is T get(String key); Which is similar to Config's T getValue(String propertyName, Class propertyType); Except that it does not perform explicit conversion. Configuration also = has T getConverted(String key, Class type); Which is the exact behavior exposed by Config. every other method found = in Configuration is there for convenience and are not must have per-se. 377 also has an injected configuration property mechanism via an = @Configured annotation. It's quite similar to @ConfigProperty except = that has a richer property, all of which are optional = https://github.com/jsr377/jsr377-api/blob/master/jsr377-api/src/main/java/= javax/application/configuration/Configured.java // parameters used to resolve the final value. A message may be = "some value {0}" for example. Relies on MessageFormat String[] args() default {}; // default value if no matching config key is found String defaultValue() default NO_VALUE; // used by Converter to process the resolved value, for example = parsing a literal date with format YYYY-MM-dd instead of the Locale's = default format String format() default ""; // a one-shot Converter that overrides the default selection given = the annotated type. Class> converter() default = NoopConverter.class; Despite this, the biggest change is that @Configured is not a qualifier = that's supposed to be used alongside @Inject. There's also a similar = annotation for injecting resources (icons, images, colors, etc) = https://github.com/jsr377/jsr377-api/blob/master/jsr377-api/src/main/java/= javax/application/resources/InjectedResource.java Thus 377's injection points look like this at the moment @Configured private String configValue; @Inject private SampleService dependency; @InjectedResource private Image resource; Following 382's design they'd look like this @Inject @Configured private String configValue; @Inject private SampleService dependency; @Inject @Resource private Image resource; Which is more consistent IMHO. Of course the name @Resource should not = be used as there's already such annotation in JavaEE an alternate name = should be used in 377. However the really big change is that we also require a Converter API = but 382's restricts the source type to be a String, where as we need it = to be of type Object, as Converter is used by both configuration and = resource injection, where resource values may not necessarily be = strings, why? our design allows resource definitions to be made in = several ways, not just by text formats (properties files, JSON, YAML, = XML) but also by code (Java resource Bundles, Groovy Scripts, etc), thus = the resource is not necessarily a String but could be a target type = already (such as Icon) or some other non-string type that could be = converted. I'm sure the EG has already come across some of these concerns, and = would love to discuss further what kind of integration 377 may have with = 382. Best, Andres =09 Andres Almiray Canoo Engineering AG Kirschgartenstrasse 5 CH-4051 Basel Tel: +41 61 228 94 44 Fax: +41 61 228 94 49 DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX http://www.canoo.com --Apple-Mail=_685D1135-F294-4D8B-A9DD-A5995CC6BD76 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii
*cross posting from configjsr-discuss as some = EG members did not receive the previous message*

Hello everyone,

I had a chance to discuss with = Sebastian Daschner (during JSpiritUnconf) about future collaborations = between JSR-382 and JSR-377.
In the last JSR-377 = meeting (December) we agreed to follow our own path given that we're not = privy to the release timeframe for 382 and we'd like to release as early = as possible. Thus 377's API would be modelled to cover all its needs, = then on a next release we deprecate 377's API and support 382's. That = sounded like a good plan until I actually paid attention to the current = state of 382's API.

Like 382, 377 requires a passive configuration container, 382 = has javax.config.Config, 377 has = javax.application.configuration.Configuration

The = most basic method we required is

   <T> T get(String = key);

Which is = similar to Config's

  <T> T getValue(String propertyName, = Class<T> propertyType);

Except that it does not perform = explicit conversion. Configuration also has

  <T> T getConverted(String = key, Class<T> type);

Which is the exact behavior exposed by Config. every other = method found in Configuration is there for convenience and are not must = have per-se.

377= also has an injected configuration property mechanism via an = @Configured annotation. It's quite similar to @ConfigProperty except = that has a richer property, all of which are optional


    // = parameters used to resolve the final value. A message may be "some value = {0}" for example. Relies on MessageFormat
  =   String[] args() default {};

    // default value if no = matching config key is found
    String = defaultValue() default NO_VALUE;

    // used by Converter to = process the resolved value, for example parsing a literal date with = format YYYY-MM-dd instead of the Locale's default format
    String format() default "";

    // a = one-shot Converter that overrides the default selection given the = annotated type.
    Class<? extends = Converter<?>> converter() default = NoopConverter.class;

Despite this, the biggest change is that @Configured is not a = qualifier that's supposed to be used alongside @Inject. There's also a = similar annotation for injecting resources (icons, images, colors, = etc)

Thus 377's injection = points look like this at the moment

  @Configured private String = configValue;
  @Inject private SampleService = dependency;
  @InjectedResource private Image = resource;

Following 382's design they'd look like this

  @Inject = @Configured private String configValue;
  = @Inject private SampleService dependency;
  = @Inject @Resource private Image resource;

Which is more consistent IMHO. Of = course the name @Resource should not be used as there's already such = annotation in JavaEE an alternate name should be used in 377.

However the really big = change is that we also require a Converter API but 382's restricts the = source type to be a String, where as we need it to be of type Object, as = Converter is used by both configuration and resource injection, where = resource values may not necessarily be strings, why? our design allows = resource definitions to be made in several ways, not just by text = formats (properties files, JSON, YAML, XML) but also by code (Java = resource Bundles, Groovy Scripts, etc), thus the resource is not = necessarily a String but could be a target type already (such as Icon) = or some other non-string type that could be converted.

I'm sure the EG has = already come across some of these concerns, and would love to discuss = further what kind of integration 377 may have with 382.

Best,
Andres

 
Andres Almiray
Canoo Engineering AG
Kirschgartenstrasse 5
CH-4051 Basel

Tel: +41 61 228 94 44
Fax: +41 61 228 94 49

DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX
http://www.canoo.com

= --Apple-Mail=_685D1135-F294-4D8B-A9DD-A5995CC6BD76-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Tue Feb 6 18:17:53 2018 Return-Path: X-Original-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Delivered-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Received: from mail-lf0-f42.google.com (mail-lf0-f42.google.com [209.85.215.42]) by mail.eclipse.org (Postfix) with ESMTP id 0D94D2DCD09 for ; Tue, 6 Feb 2018 18:17:51 -0500 (EST) Received: by mail-lf0-f42.google.com with SMTP id t139so5183010lff.0 for ; Tue, 06 Feb 2018 15:17:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=zbenWvn8pqAKaBqQQEQ1k7/BmyghjibRXNKHNfK47dY=; b=OOLQYDloF/9nXeA3QhefVek8G+5DDQYojn6SNH0GX6dRPyA2hDrg1viCGLwo5+loiM W6Sh1Y+ov7hNPBT6tsyGcGiYPow48HhPpM/G423GXniCObGywmehzGcrJteXGSWQA14r OnYEP60YsF/sXIhDU5UF8nKYbTNLzalYFZBR2fEp75889qNWHJmsn2OTCHd0H70zIhhm LQSARKz8rb4REdd5ffVD6ANmsfHbl+r6SjxXptDz/ifLQg4z5zBZl9+VEj1jMw6v4xEZ 1EXN+NfqNZFuWNmphOqfjps4JCLNYmrwmlTVvb1d0ChODksxj/R0J1tDb8f4EPcvmTLr 2Rzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=zbenWvn8pqAKaBqQQEQ1k7/BmyghjibRXNKHNfK47dY=; b=FCn6RRhYmD6qfTFl/3nbpOTPgNzykwIaHiOdylpetY1+DX30u6xX5JU222dU0DKElD YsdotLjIv7/YzsRnZY6D89hs88vGnPfrtueAPDBrOpHsGqJD7lsjZfHIE/NmDgPLnRl5 ZDD9I9Zr9OBNaEjTb69fbdQDfVA7MXUYkJMRGH7+VWysaDt6O/MEwGLe7Se+5wS38moW J6rpclUFOqpUTcdPHgA8cdGI0KwW8EN0H7ubYQz0XrGP8hA/VJnffVgONgtwiTgiDvlz s2BMHLgdt5EEdSy3i5/pqL+U4z7ZuPt6qDSAYziQYtJ5x5kglPo4+s+VWALSrJbE7gOy O2dw== X-Gm-Message-State: APf1xPAwmlat1XQkB9U1oRU0wqxqB4yM/sLvG+tdoUHrA/JcvyBOWBDP z4EXx9aHYa2tvOewhNCimFR844D0CwjKi1c7KNDY+Q== X-Google-Smtp-Source: AH8x226RtUZ13ARSvo4F/i6OeemlN5Qz8VrbwdqvjvgmNNSrE5GCqenZmRJG3QWInAYvjsQ2PZLOcaH1WoNYOfMtnm8= X-Received: by 10.46.93.156 with SMTP id v28mr2593615lje.5.1517959071352; Tue, 06 Feb 2018 15:17:51 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.10.6 with HTTP; Tue, 6 Feb 2018 15:17:50 -0800 (PST) From: Emily Jiang Date: Tue, 6 Feb 2018 23:17:50 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/mixed; boundary="001a114cbd743b8a1c05649363cb" Subject: [ConfigJSR-experts] Config JSR update X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Feb 2018 23:17:53 -0000 --001a114cbd743b8a1c05649363cb Content-Type: multipart/alternative; boundary="001a114cbd743b8a1805649363c9" --001a114cbd743b8a1805649363c9 Content-Type: text/plain; charset="UTF-8" As promised in last week's hangout, I share some info in last week's JCP meeting about this JSR. In last week's JCP in Hursley UK, I presented JSR382, attached below. The presentation went very well and a large number of JCP members showed great interest in this JSR. Great feedback received. There were a few technical questions, which I answered without much issue. There are two major discussions I would like to share. 1. This JSR probably will be the final JSR in JCP. We have been offered the opportunity to try out the new process EE.next (JCP replacement), which you might have read about it in today's EE4J mailing list. https://www.eclipse.org/org/workinggroups/eclipse_ee_next_charter.php It will be amazing to see Config JSR is the guinea pig for the new process, the head of the new era sounds better than the tail of the old technology. I would like to warn you not to attach your feelings towards javax.config. If we use the new process, the only change will be the package name (The new package name is to be announced soon) 2. Since Config JSR is a useful model, potentially it will be incorporated into platform edition, being part of JDK. The proposal will be a new JSR to be proposed to get the packages added to platform. I don't think this will impact what we are doing though, as we are mainly targeting for JavaEE, hopefully be to included in EE4J forthcoming releases. -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --001a114cbd743b8a1805649363c9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
As promised in last week's hangout, I s= hare some info in last week's JCP meeting about this JSR. In last week&= #39;s JCP in Hursley UK, I presented JSR382, attached below. The presentati= on went very well and a large number of JCP members showed great interest i= n this JSR. Great feedback received. There were a few technical questions, = which I answered without much issue. There are two major discussions I woul= d like to share.

1. This JSR probably will be the final JSR in= JCP. We have been offered the opportunity to try out the new process EE.ne= xt (JCP replacement), which you might have read about it in today's EE4= J mailing list. https://www.eclipse.org/org/workinggroups/eclipse_ee= _next_charter.php

It will be amazing to see Config JSR is = the guinea pig for the new process, the head of the new era sounds better t= han the tail of the old technology.

I would like to warn you n= ot to attach your feelings towards javax.config. If we use the new process,= the only change will be the package name (The new package name is to be an= nounced soon)


=
2. Since Config JSR is a useful model, potentially it will be incorpor= ated into platform edition, being part of JDK. The proposal will be a new J= SR to be proposed to get the packages added to platform. I don't think = this will impact what we are doing though, as we are mainly targeting for J= avaEE, hopefully be to included in EE4J forthcoming releases.
--
Thanks
Emily
=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--001a114cbd743b8a1805649363c9-- --001a114cbd743b8a1c05649363cb Content-Type: application/pdf; name="JSR382 - Config API.pdf" Content-Disposition: attachment; filename="JSR382 - Config API.pdf" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jdc935tb1 JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmlsdGVyIC9G bGF0ZURlY29kZSA+PgpzdHJlYW0KeAGMncuutLtxnufrKnooDbzU58PUShA4gIEk3kAGQQbGhhzJ 0LZsyUmuKXeZ53mL7NUkv6W/YSRa/7tZ9fFQLFYVi9X/tvuvu3/b/ea3fznsfv7L7pD/+8vPuz3/ dzvud5fzfvfn3+3+Ka0m8L/v/uWV8OOw2yLcf94uu/8L33/enXd/XwS//Yd8YL/7h9/y8UP+8TeH 3fG8O98en4+Pn38J9MvuertKvt/9cfcPdMEO7P1KJzrsrofL5/VwO+4O58/L/fB47CD+25929zTN ///x0y+73/z0k2P76Z92/2P3q//3693+87j71a797/HXu78JsO9/HPoft/5Htf341d81mr/9+079 297kT/2PP/9r/+sL+scO/Xtj8Idff9RHn23+5de7/7n76T/v/uNPme2alsPutN+dbtc2rMM542r/ 8xzYBwP7FR356Z9n6sN9d7isc7J7kjonv2K8jfRDcdizDofdL5EA//pj/rre+GPPmvA/v682n8cb H/hlpyjM0vGBdPyX3/3559/967//73/84+7Pf4CxIuX/nfeOA04s1m/+7pfD7j/8iTHXpwfBi4x9 cfmAy2/+E7L6v/4Ct9Pp/Hnanx7FEkk5HFjk4+fjfGWC7vvPPci9feNY3/jNf/vdH//x3//wf373 2z/98U9//sMvv/v3P//h57BtW4Dufe6vx9v5cvDP0/XOPy4KHR8++mEkrr5wOF4+T5fM1Ol8/jxe +HghH3/cNeR+/ryeL487c/ake8F+/4V2Wqbzn15nro35VGM+Pu6ft/MpQ77dP8/3/fHGRHwertf9 iT9u7JfaBMzr6QdjdoDX/L+X4Z2vjdl5f/o8nvcKwulw/3zsH6xbgxhfg04Xd/jjwZCflB1j0E/s hfT3G6iDtjvn0+1+Pu8/nn8585fr5+XCyPn+gY+dbnQJ7Hi/3C/BHke6ebl8Xs6PE0qEVmiOk8jp 9DifPkTuZ2bqG16Xz9vjlvExIec7lOdPWJ1gtf+83M4wPzLt1/MBVgiFUg+r/Sc9oHWw0/liq/vp gkT6wdPjKHA97i82+erB/vOAnrvD6sgGetxkdDgdWTZbne/Xs8j5elUh8jlGfuRz5wfjQ9el1WF/ ZejI/P50P32cHo/P692h32h9OdccHK58mG4emKnTvdFd/Y+O7nAr5HI8HaS7n9ku6RPqBjW6O98/ j4dj6BhFBgF3Nt2VHrDLHswwPbhfHw/Hd/rc71kF6G6fj/v+4vhOjJ6tSKv97c50sO8/T0c/zPdu 96ze+fP2/N7hSE9pxXocUBG0uj0uN9ePldy7QMjh5X60B/A83V0G5uV8OR4KO5wu/PGgn7ej8nL5 vB/2zNTj83CnU+F0eahPxU6cb84CZ8eeVsz65X69MB1wP+5ZvsPn5XA7uzAIl0LGdB4/+c/7K6yu n48rKufCpmB+HN6FBWXVbMN4pWP/XxkndKfPE/NWn7srUsxF1gw+p+P5/IG4Mr13B8JfDwYCFVNx Pp/kzYD3isb9c3/M3KdPiAFbASFjTPna+XD+CN11zwQF218RZVs92F0gLMt5fxe5I3b2iL7tjxnd VZ2SsbjEx/Rq/zhcqtX5rFCfP1m6o31C8aiN8j16zHpENBDv3eWGHlXziZyP56vjO9wOmU2QK/+p xnc5XUr0HyiScN8/ONHdDGxjtse8/R3fjL2F/MzBxbIji8o8W4s9/vFLoFvGjABcXHe23/HC0qYN 0rVQ0fWZ0RNAMsL5CfRPQfR7x3c5unld0MPjoi5T/k7Zj1gzrKLLfridSsZYRYCZiimYoR8CzFvG fzkcUVZKGSpGZcpQWFj+jOQ5XlXSFahanZAW2ox0cFuwt5DMAjvrfD+WYjygAFgGleXhfChZuOyR K3pxRU4KuR2UPVZo/2iq8nTJxuIAOl5QWdGe+yuCpsZjK4Ggoq/ZxsPHFLy5A38FYUEPrEe0IgvI GaRuz65BP7mAKHf0aWFsZYdyvNzuChBb5I6oixyu+xu8Thwp4QXZ4/RQQYJdUYMy4iDPdqAVltvy sfR8+L7DHYAtopy5Zw5DP2Zv028Us1qtVuF6P38AsItv1eiaIxeE7VjbeI9MKPmoktM1J+3x88DE iJxQnQoQY2JZAPK1TF2+FrKpB73VV59WJNLC6Xt7HOp4OtyZaOacA4fJs+9ONsLCTF+Y4QDXPdPK nN+Pd0Zqk6tKidnjL/tDx1BCbc4fx1vOHRAtRtrkc6HL50I3Yb1VOKVVR17psuHZ61GXqAVni85H wefMQrIOyLXLffLMVOm5AQGwsWCFoCoRdIFz5qSKFDueOA5BHvtTE3T2Dl3naB8+pq6csbeQzLvn wiXLypTssVno+vlzj0Vb08zkMvGeFEyuM/q4YyzTrZGsOj9iH2urFYnCuqkLYZvjTV8IhYWNcbi0 s5utjmRwmGGp2Yuz/429uNAhggu2IB8LQu+z6w/HfXa0NgUWWW17BM5v4hN4ZqGe7pxw7h+0++N4 cXNOdCzIgr2BPJX3466J4z7T1mEu7p+nw+WhrgE7KA2o8/yv59BVtYTuHsia7h6wtdUGkqlgb5/x j/ggw+XYUCo4sK6ca4XtsVI5oY8nxETb9H7FggEYyZSKGftYkLVN1kPrlF3fNgiTXjNxPmE20wnE 9XjEcNQu5nCgFzhLWFnO1gF7+pF+Yb41ffZAYcgL4/7uVGK83NieDADb7ITsaQxzRGNq+2FWGGFi 4s9olzRSuwCctXAaUnzwO8IIW13FFbIbPsYRVmB4h07zkT2F//bAGr7i38AJOxI9fHqwxa9s9cgu f2EliOGX0ss7ehiVACfsY9wh+317oMGLTkdQyH3hgPFJ9h6mKnn76+f2R81qxBeRFmHiMMOUDzDM WjulynTqWKxMeVrl3we8FDukhYeVEiqUK30TY4eyBJgpZw1Qu31FSHbnk14SfnP4YFlCxijvHi42 KocJXZLjyrEd9qhI2nBsPhgshvOFeYdM6/qUr+F/sz13Z/t6oStO7pnZtQ3nLm5MkGusVVgx/osT p5WqMkNHYl/YJ10T9QgK+H57dNFhTtNNFhimSsEDtRzuTN0ZTiDEBUROdwUziFZdZgUHCM1VGOOk n3cOw9oeZ5wq6VC1Jw8mhNBVyfcwf3Ic63Xe2NrMHRZ+JPx6c1b4HKeYCJv9QZcyLfiV+zpNzkoP ZHSX/0U56jG6usero8tW2aNJ00u8WTRbWDF4V5zpxSCWDkfxqJq97c/h5PGJqwsdqpfJYzLsAptD BOsntgb22uMMA1zH26lZGhhGJyUMZcwaS4esnFgZkBO7xcHQ4aM7WUWvQNsGpZYNhJCfq5/Hz/1d m8o1y6wg4tcro1q0A59bsO+RnMOIsSId0wkzwtmLE6/qZ4RMB3KWMeO1idzQyCLYY3i3aQNZeKEF 0nWjFq+c5PPXgXSATYHv1rTPjY/QAzD8COWMWUMZsD3YuRGxI9ZuGkhUiETMQWP0xD4WZG1Tc3D/ xMZ2g95R51ejfkwfBlcQwgtRtpdz7T0U4V6ndSbKKox8ljYNyI7KlzIDiDlOm1qECLEnP99/xe4P rQGkFLu0JPGAwIkQ0Lm2uM0eF4cu0Arnqs6vY8RFCwlXOKu5x04Zeed7oUsf6Fnrw9CDtFqR9N55 KF3KWt3RwfQeyd6jGeGmI6izyWGFADnH7ha33ULXJnDg1VvBqXHvSDjle+kFXImXq+PUyURt6AXG DPb9MdhBxU2/LngeajQlTLt1oaMXC/Y9Aqf2vbaSHCIRS8bNGV4ryUw0HX1CITv/7GyWy9nBo2Jb GWGtPdDosiITr94qdOG+Iq0XXduie24J4tLy5JkbVcPecicY6FBQVD7R7aEKEKr0YeIEn6nVirQ+ cHa19YgHEpm+3zh+Mmd0JhJ8OLC/ncQbJ3lEcyRLJyZWDmZo5UE8In1fc7jiObixOZRbOACfJPYI tlusOg7Tw53zNaKP3fmBiE109GLB3kDKrkWVHNmm2YDZm0wF5tWFoxEMFyh20g0LkohuWl0umjI3 TAqFSTV8eDBv9ILjAdsPuQXDOqIV/bpe9EpBMIRRzcv30vuxD45xRDbpOB84foiVlCo+4nwo0tqb hr+cV4JknlFE5DixBfYMdoMsnZ9YLcxz2o2fizTxwYZi/ntE1xRioCk8LORJDemk8r8Ce05oxziR ZSYmbG21ILWOcEV9egqhWNSo6cSDndy2sroG2vsdMU+rBAJRfSOd6zhjbyFtKq79UL3hDxjiU5Ni PyAC7HfVp8j5rgWFeGHVZW4GMo8KLOyB0wwsLfqmOhF2dhrQVRq/9AAhORi+z9S0YAtXCydPUIMs xquREW1AEJzYfZnGSMuezRcMvzvTh+VHHEBORF2wynQBh++l6xO2tlqQLOKVTYIX5DbTkkmEEK// TtytNtqRvRf/jig9nWZGH3jAIvtcGGm9nZ9xaKykOKfa4RWt3l8PifxxNrt3iRTj/nibgBut34pf qFRiaAIZpCY8CPK41O0A3o9BnQsifT8nknrBW9PwvaIoUAuqEU7CCz6LyDEGL33aG1O/HrEx0ayY ZRc+koAWGAovQS5uvw505YqyJJ4iJy+YAxwOXhyEjDsIP4fXRWS8wrQsDdfRenTEb2ilKQLHQtTj IMTIdCOuHLFnomvB8M/hjs7yJijD3V/vH1csDBSBCJY6QU3IbqwGMlHMEeYr96kgeNmhuxn7AoFc h1U6xsuK3vBkuD+ryXyckSpaPU66QnbqzpXF7sbpih9T38M20li8eely1xtlEY7X8weNuEVJdAPz nCvSHffze5rUrBggkgzjn2ioU8eIXSAZ4QW71XQoDo8PrvnxPnKTxPTql0PHrCCxtkKsdRTvxMJQ nYqYBgR7h0vdOwLfVoHrBYdn8BrZCHe86OPuzvC4IqlWe1yM3R0JITlATnyvvCSwLmOI3f1y+Liz CrSSjvEZiQZh4uJZOBm4aT/v7p6J3vtksRipyNm4VwaM2bR7sIPwLzX9jbHn/kfv+8ZchQxn+7AD OeMW1ICNwgI8cCpoocubmB9eNPGLA1vcgBJbcKfzj6xUK+5VbrvYj4kaQIeE6JPhMRsJqI8xItqw T7MEhEnxyD44hc6ImE34hrdWP+/Absy8vDV4/BoTd7kwJA8MQsUXOd1OZSu7PNyuQseu4RbQicMD RJ3t6Pf+FpdOXYB7RLe5dXH0hOtxS/waO/GETgDDr7pwFYPW29/2iIBfY/sfnUnGmhsAONe9K316 EN9XLum5cVCXkriJ3Bn24cFSsn+4Dc/n8DZr2fYPgsCB8H0RE/TOocJ3etd0/466Z+2LyqnNamN9 EmPxYxfiHX7seDG87FD2rI2MuBuOVKpIUBLQ4VJwFWwrVJAnj52kVd0AEIy5pw363jZMFxfV0jFd 3H2o3JEzDVPTBR4cIml1dTvQhqFcFAroqp/uKBZDYQLbOzyk6Wp8Vk58ORkRD+750qUDMVw+V5v1 oTZkMPQq2ymBBfig8U470gxwytt008xrQjA2JoPKTjniW6Ib8MCjeAhOY5N9sJ+NQtTyMl+OLvqi bpBZcoJAIphtaYW1dittgc2dtYMTFqB7nFPg4M5ydFe2kUrtdCbiW6LCPhB5JB6ojqC7ULFi+PA1 YJyI+4dUWMUl4HvO3KhCLswLidELHRyQ0VqXfBbVi4ub8wiBdBFB0MqZgXZIho7r9bYGDI7DhsAr IlIbw/scADzOfrMYeZYVU5kdDVP8AU6DK4tWWxPB5hTxONvnalgBh55TBGG9EJjLcqL7j541TNfd MAGywwnjCYUeUlWxewhxSkbEi5sap9LdhhxfmTg2nZ/DiL54RiJg+Bxt4rjDZwk4EQn8tIl6GIvi SEajlYRjxXGKeW3qiSojL+78HFuLZIBAbkSNC44A5A0BUJhWa6OGhvaSChHwfCIZCeYc62pZgzw3 R4tBdVJ09Q8AmJCRKpw4MVtsiqPZgDlrQFBLg09OrAmM7ufmHpzI8ZCRKQXpdLurC/NTu8XhGIcM BcrVda3tzT9Axo8puayAV1fhheDqG4BdvR5MB4g61u7hPHQunUM2+0InL3bUg6uQ0N10x+DFN7k4 AuIWrMiiuB0bgdANmp8/dOyZgLZyHk+/RGFzhomx0Gp+5gYmLeLCob9S/fzBSUtstbpNGMEOcURj kzTrkdA7xzgnDitn1BSx9AJnIQunw6H2oauJYMCKxb+WykaXse1E7ieuvDJPTAXM1VKvdMwTh4aJ JDW/3AhofoOx843sMDEojhzSKzLSbfJaua+IXogmPG6OfWVEdXnmcYpB0nqB/ZIDdkJmOnbRymtB 1jbQ/d5TBw8oByjHNXaS88oKs4Nre/MXx6UuaZm7zA6HzAYdZ9PCa0E+FiS90Gh5EC5mLjgFPXNZ EbBDmZdgF87DBVFSJzrmYsHeQFjJ30eLohbtBaaH+84UU043NYwY2qt07YoMdHCTbsDeQtILZJnd UHLBtckF9xQHBF2Y20v0O/aVavGBJVZ7nes9+jXTqV1n7GNB1jZZEZwurk6SBoOVTo4jcwFGJl/s EQOiJBItiG0mOry1BVsQOS10rIgSVYYj4WszbpgLsLqTwXQkVYeRz8jHSsdcLLzeQEouyF7QoMpO ZVFzSGDvHx9xU9XIenIcd7gVKjtzOVgaDo6RTrmYsbeQ7FTWwexH+GthJiWGnYrB1l0+nWX3F/6s uk17Ej1rm4GO9V2wjwVZ20Qu9MKIAjoX7BG8NlYE7EacIRAx1Q8twjtZBgGII2PFLVQ5rSZOSytt xKmNM4EtqYfvDolFkXMODxCzxXFjpODJe0Ie8OTK2sDOu+ifTnT0YsHeQEoqPHN6ugXpWZEK9iln fzOo8J+ycydkplMqZuwtJNoinnaTOsZtCgbaAnunGVU37kiUMTy+7swdcWU06ogjl7RKp7aYsY8F WdtEKug/ll7GjZYkMOE+5S+S5VwRzEVuMD6IyODExK5gh2DlOcqJLr3A+YjlzJpWPgzGJTOdeAB9 NOVTSmx3ZQDzDBfBnk10W7yWVo5xoUPGdF6v8fU5k70NR875JhtPQdcBx/9bEI31iQ4ZW7A3kMgY Ri2bGb9AG4GpaL24nzRwxY56dxisxE8NZGu76KPNZDBbsLcQRQzVjPkbUSnXyXwO/JRuj+IzJp0D bdj8nYPBlYUMSVkw9f7IfG1Tege9iW+rvHoSxEwmGmGoLpD3Q25wUlYwTjVS8W+wd2cyJmKGvgXw HOpbTf0+yKp2a0e9K+IoTa7fY26C4Vt9g0gHs0YX9TvxktPIfUXSC+I0BBd6IlhMlDtuHZl3JRCI LCp/CwkdvUcYK5pDq4lXR75arYi9wKAiES7xSLY25mqsNaIZeILZ7bjHNgoCMxo1ZCSLsTZCM2tN vLFFpsFgud69w2m6lygLl/wdM/1wQYzgTXQsxoK9gWR3EqC6EOuu3UlSR6xWPB7Mpu5bcPbRakVG OritvN5BshgsKDc1dc6h2s1YxjnDqWxnn2kIW8BIxS6j0Yh9LMjaJrtTL4sbaftgkJ+5Z3Mg7syE awRGUEJvcETinY10rMfCa0HkNH3PmeCUIGKb8KT3ePHrwIgHZ3PgeHKTaasR+VjpODkWXm8gXSqe rtLd3chyYCpxApa4YiMSt9xCBrKSiQGS6gdANoeR0Mo98eaFPRlXmeMjPTCqg7FGQPCON9sE1Shj 3GmCySwYcVMDkCwGRwyX/WUmcMrePxJi116wFfHHBN3H70nnf/PtlZq4ZROLGVoqTAN2QTbotngt 3MNp/J4zgfmI5+IHc2Ogn69FyTVTneHu3RnQ5hyJODJm6McAn/9AeT4IwJU1aHCLdeCCg5ia84mZ qsrAtT4dzJPJce4lEW0I3iS6xnmr6ZGQDM8uEuD0qiIRCxQjlpYLoQ1LTN1rCnJKM1w2AjcIZtQl 3ZoJiBHzswmUx2OZgkRwKuDkzdz5kAifigNKE5CJ1lav9kdsyYUOAeXk5N1VIsbei+U08jRFHTlo xmqkCEOcx3LNJSGLMEHdkU5eXPriPEjHBvV5VgteEesNhpo3eETSYISWwZo0DRkJbLF9sBGJcrpv iO8Q1rXzHKvceLgFwR6ZUyF25SYwUG1yWnmvSESPswE33g3gNCcJlngzCVnNmiOFD0NtCxnp2EzG qUdeC7K2iV5mk+9JsqQTfIie1JzyXqcFv3xa5Y7m+U3C2QT+WGx1w0hGHxBFfH/3EspBwxsLn+g1 15qyR2y4MPygX2ZhOWqsau+cVjrWB7Ehwlz7kph+pJllIV1N4dULeXDZg1dppiQIFzrs4pUM3WAS wPP5gReF7DHTQPjLLUao5P7BCpGcEssAFURQb4OMEfLddptoaDQjBCN3knlzhIc7ZxjCTAZhU3+Y fEjgQoed643f4RnBzQgJh7PN48Ngs+DO6MNwcdL0Aw4b226hY4jeGXNnlXmorQ9EwmAsX/a18fcF Wck2OC2sO4AVV2pGUebg49lNO9x5mhjnjvvgQ6Tbqz3GR6MFCBWsaCJVDtWJ08p7RewDwkCg/eBV OpNnGI4tjVa+1H03mK/oNpHQZQFDh/gtvDry1WpF7AW6mqRB1GP2UwXG1d+shXe5CJc6sCNp1ZGJ jsVYeHUknHIr3JGv72UuOFG5O3WrtPOBuWD7cCdhzzj9TX7tCNy+kImOuVh4fY+EU51HzoX3PRUY 5ZTxqSU7T9uiHt36YIlw3TYiHdwaHXOx8HoHyYrEppAZLi9hUfoAwutFj0Ugn7huI/vcjBUVPSg+ RcRN8/Tv+b+XcjX9y9Ml6q+FwtzklRGNSiSKazBsRHI5OtLl9Jt4STe0CqcBSS+YKa6P2nVzM3rR gGSN5GKTAbo9uWMhtbO6iotouG+iyipM2NpqQTgkkQXCcLysLbVPvmguEcB4DqCSR0G6LbaAgQpe K6d3EPvAmWVan2q/LojK6nX09osLRw8tuN31ANOrg/fvCx2zalgH+dCA4Ai53c0Q42gjzybqm/OS A0qEPM5cifFFpn6lU+eRmMS9canvHqADw4S2X5gxHKA2WoCBapPTwnv9WmSEg5pISS6eMZIqjAQW W6wMdAR1BjzeJypGs2DfI2zK9jXXx3bcbJfWIgvcCwUwbilzBcb6mDOxiYQuWzx01YuR18p9RVov fC5jmAKbV7OblTVNg/QSVkM7GJGYAXiFqlpIlT5MnNZWK5LdgptN6kdpKBJ82lUmwWsy+JU47uhJ 4jBOYxLkgIx07JeFV0eKk9w7UpxE7IU5OboiQcmCjZGMb4AqcSaa3qBVkHCLJlnpYtBNvNZWHSlO fi/rwVQ7TL6I1c9dsVKBuUYGZmHJV9pEQge3RseKLLzeQbIiXBlyi1KpAjfCBZ4jYGSoNuPW+7ht RDp6j8aQjhVZeHXkq9WKZC6w6nAUvDbRGI61bu4BqWL2zBOeL3SkWnVkpGMuFl4dKU5y78jX9zIX Xuv4ssUxYVG4TzkN8el6QoA37h2BmxfCDRnpmIuF1/dIcfJ76QVeJNd9ZfybeWgv9Cy71iRpJHHO DUQ6uJnfWDGMhZecRu4rkl744oIDBG5oBtx0e2FqIlUgmB+1hfbFJpLN8qRjLhZeHSlOcl+R9IIU EQTD0wj3ytQSekH6NFcpWp3JxXkCNHoCExV9WDgtiBf0C11dxN4sLyF7HjW6Q3BWePaXqAHrrP2N 4vSMrIu/B8UrchE70tELZdOVxds09SbyRUg6oQxGyP2OM8H521xLk5qLKMMNEWx8HkaQoqaF76ZN vTGFs8/E5i+hqYgy8BCntJ5FTgyWmp6HZQwjtKlXFyDcnCaZp+U+Qod2orPuQ3y25Cf6apZk2mA3 bmA+yF/hFK/hkx5F2JUmCIIHPTEalUjcD5yCbDCOR+utHNC2lTpMT8yvEsCGdXWxz40imLFJVyqB jtAkp5UpnITmNCwI5Nttm5hyBMLdL0Z2yHDkeL0OK8NDzDGhGAPlZXywnShLxH8iiqPCRawqmZjL CCJBCe3Qc98IkgrJpd3FB4j474SsgiALTia8zygBuykdFqetcJ39HpLfE7qT8yniUNIngvsGGskU ZzTpA5vTIBGJklwbZqkYjVUTMHOZp/QcZejNP3QHRsOQMlVEVukVCJ+p8cFRxNugGl5LQqb7BKyS kcoM+9jLzz0IqKXjDOjyQce4a2Q5HF4yufycgpDrbwIB+lkivA1z0dE4hNplxL1wHV9kvTIrsDLZ MVuYrui5c32i49zmzniqCBVcavUqX12IV5EldTffkyJ6mrmeB4zbGJdteKFajPpkSlfZ2pzyWMWh IyPcZUEeNG3lxN28HjU73tc8jI76VNxMFC+GQKdodScdCjrEwDfQiDWxDUYgXSsFdDiat93Wcx/m rGbVTGDtlCgeypiIVZNJUrNGCBFH16U+hyIP8Cje2h0swYmdwQjzsT44ynrhedZCJSRFKiIyAEsV JCEjOknJK66Ha1F8QYJrwQtSRpCFYt8ZBcL5QJenTwjtBQ1iG1LF5YRYmOnR6HiZkT7w6PtKr7AH 8/oUGSfXmdWksBajcSQw8M2qdMQZHokdOWMcV8Q+jK62nrPEH+S9sUn4TOjMsoGOViTcyIsbNK9z 06rumbj30NGUNyaS48NBQcYyPiIKRNXBmA7LhjgaXpL7XAQZMQlOOkyFNNHitZemoOZiAN5oYUZn 6K7pVYw/qQju9KoCBG4N5dgKT8rHKVwFIz8gaE/vXHNMsTU+XN8KfzMiLQ7JUFqV540/xWcVHeSy 1i6BebxeEeeExbcCEvsnrTI2Qx7cNwch1y9DYWzMCYLJUxK/b3ZpkzA2ta9RxYjAMzpaEeWTDvk3 kCSSx/zOG7HErLlCTtpd6AhQuquZQlzBIGzgB5xQ0hUDI45nqirDY7ukoEKWjt5JRozdz3n9hISo L3gG645ivnw7oHpgEth4YFlgdzXZo6bZZOku7ADbcNlslyIfERWwZ84rEbAbnLyQjQ1pTAxpV9Nh PChOXIppPdBNa82hmmtW3OaQUTFAeTIbgi1BNJ+1YxH9HJlnpWvpZr12wNQmByFaO6UCwtwiHOr2 lo3u8aT2y+cIxFaITDeU3AmfNdd4SUhmdKh/D4sMTgmFCv2S01jeJOLTS3in2lH6DccPT5u8egjd WVmhFcqo6pJxXChIfo7otNyJpJvIL+Jjo5CpFlkDRk7App4wsseql5DZClk3Gd0jt4SXFTdC7New f+shA26Lj24wFRB+LAu/xiYnFGdUt2cC41PkKYWWQbu05UkDyY0cNkSd/Rpyxf3Phq3i55z5KETl CVbYLyr7SltkynO7aBZ5lZVL6NueT3QoDJUCIl1bCIFLTBWMUKXSgvwYybHVigx0m7xW7iuidZtl jrZhIjHcfwmCXahKQNIVIdusSOmoUHVx+eLT+UZ+fYkwfQcKvo1BQSK3+lAtxB98XYwpLswnPR2B Fa2eyEDHyiy8vkeKU6l7Z8ApbjcyLeFJDEktCbWuVlqtiHQZYuiUj5nXO0itAypgX/s9LwhcCF+G 9QCnDtc2AlnWqj08sNHAqQFfbRagOqD13HK3LRvjYjgN1wTXCbH5/EQr9FrPDAhRuE624T6rzgvO 59qVWlcJK7BNfFWngiGxWh30RObvuYicDnVNjrKskK4Y3kTxZ81UqYWE1xMZ6eDlOfY0wmqrBqst hyh51nSkROKJDHTywtBAPTCFKAfcFucGrOsLBGP+d87MkcbxoYryMJqthQWjQ4vhZHK340N9RDvS Ciuona1HjOuVDl7YZu11Emerr5Pk5eGWxCD66QMrSnLQyt3EhLJuMelGMllxFuPO1vDMToKVhOce L9SkWhB4zXROFdJH+m144ZV5WyVGAls7hWuSJ4Tpmum2eK2tFgRtqGaxQk9OGH07ukMvOK0R5jYX mLX0iynkiVv6yr2pB/FEp2Gn2ilvFNEl9CwvnbHymNkGJHKkFbugdiJRCzXGRBdeBOP7lkaC9OPd jbxmKl2DoHs8biKvdJu8QvfaqjgNSGaHrUE4qdYDe9/qfm4EXIoyaalxiuhsI6906v2F14KsbUr7 Y55ycNYXm9ABYUyWIHqNhFhMCMwmMvswQd8CpX5iASAk+B/JAdGVYgWyg8RSnkwMN7tarQhGJcwa HV1YeL2DlN5FTFgiuBE2MXyhSPigNmkq3ugjGwocb59KvFCoalSfRrRox93QraKKds4trY8wpEJv cfIi4NiVxj8ilCUQ7WtQ4R0TKtDowD5zzPRAM1kXSc8IRQIvjFZyGUpoCFK7WWY654EP1d1eM6/h xdzgoVduIiaeqoSNR+wmGw/rFpFf6OTFzJAYQyu0pQkL8kKrc+lMv1qwSF5k3vejmjM7XmRYEygr J4vQAO/Ng/G6j67TJbJVirVRRHTZ/DEnBjfEkKgf4/9FLxq5oPwCmM6uR4hhEcthqmOJBOCgLnTw wqXBf3H6mNCuF5mYiilh/Jqv4N6p8gcuGNc1OUZayUlOveYSc/RQzMovYqN7VskdF8gJxQvzhmn5 XjQGCqxCOnjC9DuixjymgCi9Z+Y0MhhGfHB8GZz3AANZU4ps0DJUyfk1jKhsUXKqViLXXN8gr3Sb vEL32qp4D8jTZqlyV9gnVI20E9YSTqTFOwHs+G2kVckKWXYOtm4V3EKcMOLDiv+aqmXMiJFmnY0F GKiiEFknTCSWglgRWX9RrggSh3OwFAhzeVZkoJMXlgAuewmgacPhlfQYRZcdrC/iPiTIKXckkYfx K114xWqyXzpfedfknj4w2WDGibS16TPZBGmUG5VmbH2RZYi0IvUjHzS1uA2RUKky2ZSIpys5S4oD ZoIV6nTPB7p0i85z4xFeWtHyQvnwKNW9woSDbSIT3SavTM0rdzitdBwFRN7O9fbaRw+laqwWX34Q mEUubDUgG3Tu9JnXgoTT+L06l9FB2XkIR72L1MrklrvUho/oYT8hUREDmX2YOP0YoANwQklVcho6 oE8D4mIEJOot7iCtVmSgc1cvvN5BalfLP0EUxBNDTZHwJLNIm5LK5ZPmFTchXXR9AJagwiuZEqGs v2LEGSZkbQOdFiQzwOvWDNtaeYolZllVtyCywL6EGW+V6VEEFQPXDTSR0YcZ+hbgUDO8ZnzCDiiJ eQHjniyzU8zwm1uKd06ewZsIdDBrdHZh5vUOkl7gnZwtg2bXDpXLqcdyrpdwRIZyYbKNQJfpC50S MfPqyFerFSmJ8AYg+pPVryu4BCWq9Ab7TeugI3B7RQY6RWLm1RHG2Lh3JJzyvZoLbNH5+NQ+1Y5X VeXiJRYrCNxekYHOuZh5fY8UJ4/rviK85moq2isQJDMzG1vQ8GoMCR3MqFVsH9OAbSMd3BJ/TxS5 YfS+Yb3VX0OqF95DWsJVSmsp2AvjFe3mhfIzfnMLka74S+dczLw68tVqRdILrEaC5+4HTu16la4l mdqaIMZN69/V4vnvgYYeLHwWJHH58VvVA7ZAL/HTkjO1SAmAqjrQwgYeFyRu+EhnL2ZebyBoWj0Z RI2k7cyX0TYWQ6hMo3aYfIO8kKm1Z04/BkocMGrr6UeZ6rEINAe7D+5dpgcAolhOTOq/iAx0EYcJ y7E0ttqicxpMvMPk0zTibi2eOtidGEqmhqA5MfoZ2aBzImZeCxJO4/dqMbgIuicIgzlmQMzVMCod Ey1HxwLAa6ayDzP2BtIEwkBQHMg6UaoLuajJOR7vEPYr8koWgZg42YXXNunlAGQSjBxW0gSuDUG6 nOFEv+q1NLEe/RfPzxUZ6BSIhdeCrG1KV+IPE+4rx8/Xi0yDkL8h4zR4288hPiHV5pXMPkycvgXQ iDDmW5kGfENcw6agvBugB2IIcHrAuyQP8U0EujDTHXEaFl7vIH0x+DGGuiDmRqTmAdOlStbgCiPb mcINpC4+aSNdLcbIK0bQ0GpF0gsOG543uDsJapgZzFyA4RfV1RQqwphcIdWqIyMdvVh4dYQZa9w7 8vW96gVWEcoEFH+onkrn2pCSL4VZuq8jOd4oglrISGcvZl7fI8XJ71Uv9DKT4ao1z1ZwLlD/FYAH S6B7E5EObo3OXsy83kGqF6hJ33rEYKoccg9aXnornRhRGELw30RMwX3S2YuZV0e+Wq1IesF+ITDi HjG00i4exJKlDkYGMNJZSLX6Ql7p6MXCqyMZY7h35Ot7vRdMumYVge+6/uDGzN/YKQ82xYE6AjeW 3tdbchvpqhcjtrbqSDjle7UiaIJ+/0c0pu8RLiTtGVEzMyiUMiarzlEKwAIUGczYPZLRCS+ne5Eo jLFEaMSq9h+muL55Wq0IdOEVui1eK/cVqQFxy0NaT7i1UlFauiSZlReDEYQCxF2lbJiqgVWugFbR gaA13Az0ArqRV0e+Wq1I9QLt3R/iMSl174JhQIY8PUPQfeZn8E0Ebi/ISGcvZl4dKU5y70hxEqle cAdGVl3Q2EFuesZE1kMwdpu9KCTcGjLT2YsZ+x4Jp3wvvTDHpkqckQJSqZ2JVcelSEwTgUoYvDYD QU6BooJXo1IqiD6SMkXfuVxqCl0Jq5gZIukduHLR4lrGFIxcNzp4NTp4GRHWPM96G8xibsAu9cIS GTAyvo1IBy/aSLfFa+W+IjU39LUKQ2I99xsBMNOV/IKWDL3YRKCrNm3/2WrgFbqh1YqkFwThmEPV K2Nqatl8EMrMZv6JRTqL5KrUvSh/mBMnMtIxF8aReREeXuSjVMgXjJM+c9aUWCHV/1JrM90Wr849 nMK9I1/fy4go1e1vaoBijhoxYHXJvSLvsxI+sC3oP5lXxEY0etBObiOBBCP5t3k99AEqEsTaTzUQ 6GU1DPh+VeMrhMx9jzBMAYqVKBKmxSCNegZmC3KBAUtFl93sr7NwNOAvZgmTsRlBAiNMXsG3G1En EsZMMsy9AVGERJdBUF11XvL2KrmiFO7l+aF0BiJU0PygBCdtWRhePMPJ1PJc6OCym7Hp4LhQIeoK HfEaH2sE8XbZ856kD7YTdZfRF8WbtBx/C0SsB7nID6IRv/lDMrgyixCay08dcwytyAEjaPl//iBS mUK0gskHCUMcP00bUfFZTvSuKjtysdCyrHidzN186SwKc8qdDB1mKt8jMYnhUViEd1dNr2FO0Etf V+aehtsLf7SF/27IxOFCzn3QjhsPtGHLSExZPhKDUnwrKTFkx/rzb0GQIug4qr3d5sqE2UGWnDh+ EjW5YGBYUzXlvNviiscixQRFQsdO9nt4Y5ZGTCxdDUM36UP7dTI8l2RTghDWkI6eMzz6xOqjdkCY ijYr5PNjGNeIzXmEE7Jl1V97RSITs2mRqtT5BjE31cWDzokj9MQrmB05gKxPrsY8q00Y5jkUK2Yn PZaYL4h4B8v9c004921MJnRmtrJ5DHDS3Da+zQ5dzzDl5TwpffU9osksHUVb+DWTNk3kuYNwsUjm ApywvZrvwTMtEmFLMrm4sxVDqR2Fb8CT3CA+CqnvmVJrP9l31lCTF/dS9IonYDg91Su2EnQgVWOM KahHHDz1VQG0ISdHmpcLScZ0DRBv1kAkvyrh1Llz+RwvOyi9oJ4xPRJMTkcKIIAwP17jijC60kVm ACNi9JJ95xxggifbz0b+Ko9k/oZJRkKtGWeA7t6YihodN+XNDiNXMpxuZM6mFf1GNHmQT9StDjZK dCf/z0f6lefLZ8wocM4JcMqdmAH3u3Byw+dVFD3wErJWHVzutHINUFVY6CYpkkfF2HgMTd2ddoq2 xHUYWbxXGn8QhqpKZo66ADD2+FZ0eEXjx5lSu8OnaGV+ihDpDTaCnOoXQXiX4ybAUPEHIIsz/Siy uHYuADPlZuUux5f/dpIagyLIYCV3ujbcvUpHPkUVqvbMN0WQulBkE8k910iM1gczVSPZuEp5o1aP qhxxLBcquGZrMi81k60HdEUrU04XZDb9ZEvXocEpxJaHO5qDfUMrr9WcJwSGq7BMHD8hlAVAhfFk oFixgHaK+YlUsG1LWcCw7nS11rFpHR0qxcpsmXJ+KqZUHzu1+uTAVWGc0zXjRB8lo+YDZ3oJISYU fWpvPkJGWV7yadGz5A+XCOb3IaQz2JQH49ztJnNfbWxitotAKj3DteZEJZ04vXWM0Ipj0y5wSJps 4DlCukr9KALCL4IOKieVRdAN83tsaQ4J6JgMbh48NPDcZcQcKJe0aJULAQxeFxWZ9L2RiX587Vg/ XEq/1TEcWujdFkq3hC5knJFcPsAa4bGYb75eLx7ohjXwKQxPr6PS6GM/klWYlEy0jwS/mHAYJbJS nfT7HOVJQI6g9M95W9DShYldsXQYBWibWkxv5mJKDMZN9ZIJqGWJ6tfgQe6x+NJ1zJo63a01mU6x ndJkJIOV9k2vwOyv8sYyTma37BkzD/PTiiOxtjlGDbwWujbnSruz58NXesUc07xYJQvECeXHeFsC ralcIthcX2RwQh30+iTciSU1Q8Xi7bPMmWF1H3KPtZMtxM2hZ9JE5lSx6nXHje+nRDlVbGsLyjs+ PkwX/EUusjnCisKsrsNMJy+EopQ0uk2fTl5+MrsBTNugI5n2JzLSOUK0ou5R5MPXPPACI7DvEiLH 1oftCLxekJEOXqq3aHfFH+GDFXoRrdRYmXyufuPsME2G3WJpi4VMTkZMm+3VHqNxvUZnMPs8G4k7 MEKYUzNZwfKkYUssZA6QgzsHE2qxZIGjAhvTjcy0u4M8hfCXRRSYo+fSSCUfusQla9qQHRYB5UzH t7RLrIhWvqd8f2KGBvRAKTL6yMkiGazYIvy8nAccF0ccoy4fEIGjggyDfIP4ZKiTbXBaWC9AHBVU 557XH3DC3G1pLajK+kFNPIQkpkcLtzWgejjT28joZCOjByhBqgC4nAigJckYDNqTRSsLlENC7YWk E/6oibJ2Q6cLErotXmurFakBwb9+glSzFhVqL8D6DWVqsXck3/xCBjp7MfPqSMYY7h0pThW34WJG y7v/dHAryiXG2/NSkbyGcOSFhNsTGensxczre6T65QPAmgvOt/pJ73YuOBccJ4gi/UWd8HNEQfjV xTKy/OU+m0hW3WrHScMyzBwxvdVfQ9IJnQL2J9w4SZuEgSFZfhKT3ZrL6gJsU7ulu6ZL1+iChI6p WHh15KvVitRUaFrkfki7qa5vkXNkVRWLweQPxSlS1Lmv3c9NEZs2JskrnQsy8+oInBr3jtCvhtRc 8CEfdrhttHqjF7HctT3EuJtUmRl6yg8zsHv8DQFtw5GOXuDHJFtN3YVBlbMNDOPO/qPi1D5qL3L2 1RRsB+tYrnTOqxqp6Wt8jdLXRFkoJBVeltFLL4jmhRXRL86ChQxWqC9+oqgUIV2p0w1DoD9/IeJP JzQNQMLriYx0NdH85JbTxUT4EEL5RVCKv4aZa6bk5McnUP3eQouMZHaLAIN3gLLK20pYGdsgkhwM xxMpBCEgU8dIfndvpYMXs4zb58zg4/lyBl5gyHZhhFc8KDmbMDQYIn+wDht08GJl8bBLQaI9MkSc bZx0+4VFnpAiu4NNW3YTFh+8qmxRbWN8/Hhn8MLEd7oIE3RJoleOGkdHg6Z/j16x/f3eVh96q9Cl 1YqUPKPA0O9wQ/e3xdZL8kl1joYSkxUpurQJnb3QGC2BkIo5NejAY1BacaComLaAnN6eudC4NljS PTnWn970GlarrCfXlfO5AQxU4cTGRdPm62akhZMYW80eVagaA2kLeaHb5KUZNXCnlzOSGSbqwPvO 2tFxJByPB0LcJO0gk8ZnpNoMdM7NzGtBitNEx3HGmvJe1TXFQTFo7+qINUvJ29AZiL88UrnKM6c3 EPxl+mCUBg+QPhiAxKx1JjzM2q7OU5xtZKDT+154vYNUL9QteV/CJq3nY2x0qlWkXyRxYuJsAi9E kYiRTxHRhg0Qxk+g+GJZ5vOoMcy1MqJJ+o26ACP6ZgfwqH2EFMVGing2OQE5fb+ZzknAHsXWrQ+0 908Yrf2pPrU21VkoakKW6RYOFJtwIdtitbbqSA3Qz2VAyAMh/NJZuAel/4zuxlNAa3nNooysiHQZ YujshWGdFglB2YUXGJWOGCMqJE/ptgCp4MSelgpO2AEoinKFiH9G3sHIxyyM4gvaBluIdPDCTZXO XnEg+ht66YJPEpDbTHMPWFjgzVb84pILS4d1YBpZutUqOWhr8pNtbTTNcwSrqlfowJgw678HmgSf WOVegJHjqR/35LzbTWMhxgsI0OCm+jWEJ/dYIANdeHFk1k9d4W1WQUT1NPcWThWYKQDfIK90m7xC 99qqOA1IiRGnWVVztBepSWz/0Rd1+NF9zw/MHJ5o0S/+8Ie6jGYNdC7YjKHI5lYrUrsTV9HrAflT sqW8ca84YpLRMy7suAhxOmNswTYvwjE7Rjp6sWALksuZma4UJe/0FCVsi6askSZ/xKqwxIlnBNVP m4GuhHfE1lYLwkrWkUEUt7RSfxbnbYAuh/NDeFAZ89VN31TNbx/IIhbYDwMr9cGPkHQCXeVPy/NB 4xD1XgKMcGfFf4hYq6/RQRa6tBU3mEZtJrrs4wljwiZkk46pyGVg27bXZi8aIOT3I7Mg5IeapYe3 zf+XycEs1e/H6u+GS+gUixlbEMRiblMLgjNbU42mwED3COf266kddYoWBNmfyNwgE/RjgA4QJEWf 8BOnmWYudMszV0/mAGeBfHCUVivySqdILLzeQTINxEp5cFtBOwLaydMTqze+mDd5rrmNvNIpEguv BVnbQIdI0H98NnWTFXAq1iZWYXvv/UzUm5ENupqLkdfCvTgN33v2oq7e9EEresg3qWQSucSWMGAz Aq1XubBrVK0PA6fq+2urBSk9wbVwfgbKU+ZisAK5FPOkFEtljW+QemxTdErFwusdpKQCJ7KX+iIs n3dHcANSj3KcWVFSbhvIK12kYuYVuqHViqQX3GZRt6SMgPzoqSYumMEiz9JK35yRajPQMRcLrwVB gc3fq15weOHwZPY5dHKK0ZI85jo/4gDoVCVhJPaqhmvcrIHOXsy83kBKLgg4xQTEnMHfZSIIg1Gb SF1OX3iiAYKYVNAcQUytk5GIi84R+Ov/rC3hZWG7Q8bUqiAmep5iO5hiXjBjLnkt1X566QUZ6dwU M6+OhFO4dyRCFqTEkTzo7oXhd1UQBazqenqWaaChfkRibX4hA52bYub1PRJO+V71Aj1U1Uw5MVpa DluAH42t2AQ3LphQmDP8Bm476KloBVJ0cGt0NRfJjvKMjafminqKo/vEqA0K5TZCCCQ9C90Wr9DV 3XzjviIZEeYGb3VhRmzLElR0IpBGLpDFs74BtBcaET0oPk+IUzKMn8DSorQ+jmFdZXDMtLxPoXaF lPeOOo+vAFtoIuLzM/QdkBXIl2r0WBj1w62ePi3WpNXhXtce8a6IwNIKQJUVCJXjnzm9g1QfDFn0 W61yrLDTW2FQzXOwym6J7fiKtLgLxRzqwn7iFKrXNguQDhAE4XqmdGyrK28Y5Eo5rshFfnq4I1nQ L2Sgcx1mXh0pThhiG21qGjhS6ieaEVjrDymJelK56QWz4F4DMvNPYKByKWZObyClYZHZOt58s4Tk 12bA8nAv82DBmLKCvYHkVCwyz92Z04+BTIIujuUfUCMIX72EFVMOFUjSKSqYsYG80uXQnXnFXRpa rUgXCFJryqlOzWbmgYXlcKyrmmeEbUCqzUBXAjHyCqfXVhyT8H5FmmowuyjONnsT/8bVoGX9cCmQ uSkzEF4jVfVhxCT7AVICQQybSINzTwjKML19ICiiPMTI4p/YNjGeUfpedxr3JsHL7YSzyX9WHPge NkKd1ORpclKbt1M/UoS0JtK+fEu66fuMb0LWNjV7pEaRGhqh6dVqSGjiV7AcDBFhI1jmQVX1bO+0 NedIniJfxSbk/FWNTfJe+DPiTUSbMA+taG6amPo/RTalQ1y1B9K9pK7Qyl/hDq8qsmmJVyuEmXFZ VTYtZl61i5g9F5sxU1WUiJEKkWCSmx6yujkn5G+uYFpU0rHZcOwIqYiiml8X0zRFNindz/uBcigw NckL4lcouANQrnUx4AQdv69EdqQuGD1Pgo0/DJSSJNz5kqdME6aS1SvWHlJYUZCRf+T8anF5JU3V frIKwidWoAA/NRKqXjeRX4NpW4aZsMIm6aN0Ozm9DCV5OlRpptxwWfp0O3fiVCYjs6g6STaefVKg BLgQSIFNFAaLVOO3wqZSB9Z+5IPZtcImTDDqY1940UeImrFrQxZdq7AphjNamBU2P6QjOlSIMTUB IrwC3g+iKn+usVDoNFgqbMqIUoHVTV4E3fM5pkt7A/lncSQjslhZV8iX84zdzpbKWKRnlm2D4NTK tckUYyvJistHkyMJfmo9KV8wt8KmCLkP1YGW/0jCLAvdI+RW2LQV96vetCADltAgGxKzpN3Gklyj XPJv6Vxylso8L0ISCEFERQR5EmHtKjbcUmzJqsWMih7jOoeYh0Cr1aAdw3hNhq8fgoRPpUbx+0DM Sh5N6DuRYJBWqsHsOjO5yMvh4o7PpkeV+C5WN+pMpinrR0swVNIemR0e6bImsaJUWKuwKcYNZLHC qGQoPMskV68kPBU2yRg2OaWtOQEJRIwx4nmQ3pXNahSNnWp/3S384RJjkDO9/YrXRCHplNtcCXFm oqA+/B4JUc2oNK/VnqM//R77tskYfSA8I4YbZYVNrEdj9vXT1VxQ3+HETW8PElWJTaSDLrSYOkFx yehd/RwDaso5lxEyU6yrxCZTZT4OLrvnMbd+ba0qPZnFN2TDjLDzkhqMgJgPrqw4eWw410r7VqHj LlTHJPnKioqZiGnCMPXyIfMtZFXzZdHsrwjXFTJCVVtjk4cVSnsF1FuNTUXTIyRegwEzJZpd6Vhw kfUjRMgNdCfQSwM6fs48BJW2ejFkKPaKRhL2M/qRHVx55erJGhwLy89fysq147Yx2qA9wbbCZvQF L9CaBZEKm9FG5JXUqcGuYQrsigVXnN1Uk+ALZPa1fFJ/8rhpMZR1rYsVNuGE8qK7DqUKbKof61eQ svRJ73TFCF3SSvPhxpUgNaXpnZ1CDSeVAUZkG4YRue+laiVL7gErxoUFX0PsyzpxxRBonCKzeZw4 TAHtxNK1iHHNeApscvxUTrWakqmUD//rhmLYrcAmjcp1NLvOa0sPnzaTVBr18GOzsvBF5aj9FhrM mxs5VXlNf6amntVyP5QCciBcOLTUI8KR0nGQkmHwWl+TVhSLcgbQtKmvSfFxlZSse31NDmkixiUn HHEewOx6E3oVr9TXjEnADzSDMNtVXzMYAhQsBTZFkBUVLets2FdkMFPsZUIwdgGxNMcXmwuMSnO1 DZKPLiHqwtsu8tSSnb3QFS8OgkbnhU3x4lamhhibLlYPSNbzCxnotniFbmjVkZIMvxd7mjUkwsCA TGmv2y78fH4EJVDV16TNikAVVlLZg5HPj/6db7tXfCyTU9IdxQyAtV+x4OTMFeAmMtBF7mZe2Ymv 3MN7piO4q+ETXYebj0nsMgghRJkCy2si+xOykjEHM6fvgMxbvlVLQPZzxRvZzTyajiCA1bkElnd3 FrRfEejCLXQuw8zrHaQWA23cFG4vr5lBIygKR5XXjJWagzfbnE2CUiBzyTbuiNrLYFwTVaSrymuC PG9xnoi6V7J8zukzZYBTS6xX17T6fv3ABfEDTrm0EkmrJzLSeci5+XP2m/2VjSpGSFEDCMxjpiPw ekFGujr5vI3KF5u/krMvvxNDVzED2r+r6+3fI418NMliM6C/qrpmjMdLSz/hv2EBeXBVgUpOVVXU Suf4uJXkB2rywVZd05MWm7OWwuqamAj4Em21rK65QSYrLLx6CuUB16ZKwmbemIjVWL0gG3QOEcsF hulWu0YMxlVWYUw7Q9S+eUE26LZ4LdyL0/A9RdkJ43irXvTqmhy5/LZi2SFkfGms4F3UbwMiyyS8 xzIY6UqvpTp75Nt0JNUDE1VHB0YWIonu88d+GCFLRm1NnFeMJS3OJ1VtTX6Xu58TmLHqe8PmLdsA y7b8xwGBl21e6bZ4ra0WBHuFucG0az92yB91iSSGo2fPwKytuY0MdBrYC693kOqFvnyum/h07m/c i6RJ1b62tibsV2QkQ+9r4Q6cZmBpkWNPO3zPL4sz5FYj85fY9DhYLhoY7nWs9QGpNgMdXVh4LUhx mug8ejCt6p5PO73uWDF7qJzlPGjE++6UVo9en8namvHwEcVq02tragpWKjw2CtoqlhhXdDDi7Epx zeVzPyPznPukr+Zz3At5+JTCSaYefk9ZldpiTZMQJ9Vmn+giD9hw/qBA9oHaHV46dLnSZ7dZW9P1 oZR8bR8MW7XwRBZWmpbtVG61NZ1VEvHbNjPYIi/sWufBs5sv62LyhLKUjeU1w4unDI/2ujdJeXYq qVfS5Ud60s3he3UekV5QG5aWuWW0Dnt/i1blNfldXX67o33RxxeeYwOdYoqvhMnlqJlStCymjhiq X33tWzKdfX0lXNYg2CSORwesxTJaec3oeZ8IKaeW12QRkZlbDHGCKYYElu9pImEr44nI/cXOMG4W Yw9TlSgG6gb3sEJq7KzU11zonBt0Zv8hw/4QQYxFK/70AjmdkA26LV4L9+I0fK/bLDigJRGthASW xq00L4PU49VCGRCY4ee+ktXctFrmdLkVwmHctx7RzfPYLUAqLIpG5Urj3NRPwPDdsifFyOpSknBi 3RjbiHTwanTy8s82o943ZXOinBAxeKEz3PBuRdLuahZSX7PTxTIMnbNs6ehY+t7SsxM9yDgUy6Y0 SESMFdFtv9js2D2PGhmsGpndwlqqEqJsH/1HhRkN0X+oI3pE04ZgYw069TU7XboVOnmhR5pMNutb iF9Oqn0XbBtxF9XGRzFtcFpYL0AZC8wBYZsMsJXWdPdUjVa8S/MCt4HKxaGJ5YnswMypI6xVa7Ui /VDmabaawFgiRrSKE8syl1xABhwbUG2ewEBFH6QasAXBlJvb1DwQE+hvR1GqXjC5qBiZpatRacZ8 JiS6Z6RzJmZebyBoak5EDCfeGSvdXD1opimlKukEF/H/U1szAYRkWSC3Ka4508Ft5fUOkl4QHi8V qI1Uep+8wP4TLNbWpFeoR8Ii9JRAR542jFRq3Alp/0bUwnf57/VtTquKWrL5W11NNiFFapr+SF3N hsAKjfJEBrra8yMvt/M2Ek75XkkDAltPuTkXqq5mgtrqBLufuprbiHQZYquraauR1ztIzQUfup4q Ip86l2V8cz3mvLP2qe7gKbMg0qVN6JyLmVdHvlqtSOYCKwPF6C54nptaHvyqc72uSV3NjlQrbztE Rjr354x1hBlr3Dvy9b1aEaLSlT6jXo2tyDMwnRrtH+L41tUUIRrtBRVmiXU1RUY69+eMfY/AqX2v esHOrgoGoKxq1xIxY4BMQMpmX4D6taBG1XTEwClkP0BqPXTW7xVeaFU1tSHJqy4rLHU1txHpmC0E xsC16zHz6shXqxWpXniTH26w8AhTZ3ubYFgMyOfHDYDXCzBS2YeZ04LE/Z7pdObsfSSTQyLRu0BK wvMoWRCYTWR9Hl44LW0WgElA+XMvYaqRwtvNdI4Xgli1FA/ratqq/ZAaqhKHIshAp5m+8HoHyVJ4 0ZNYLu4Ax7W2NZBVCpwFq2puA69ECsPEpwOsZzHuAGwbUJ/PAeCZxR+GwOr7XBmL0TdWJrwB4NWB mcoOzNgbSM5N21VJ1zpZWg/qh4pwIXQI2/BK/hsyULkIE58f/dvxexJyHaAQ8Achud0vmNhmpMRH 6bU0N5GRTi098QqnsdXShqUrX5rXdPbC+H0i86h8nm3WgCsZc0ZyLAxkdVIMkMfCJsBi1reqAxgN ZIqmA92FwADA9a5IVNXS3ESkC7PQ2YWZ1ztI7wVKDmZm5sRjkJTcP6cBLKU0txEumZ5k1YeBU/i8 tlkAO+BJQi0Ph0z8oqquiZGPaq/ALJrZkWrVkZFOlTDz6khxkntHvr5XvSAOzgt/UGayymiqTrhQ sGdgFs3sCNxekJHOXsy8vkeKUy+jad+4SLYX5GFWGc1gvi8NZkT7GwQ6uDW6mouR18p9RWou9PyS jIDFVImhnrUtVAPG20h6sYVIR08bnb2YeXXkq9WKRDC5vKPib0XXuOFMApsYEWvGyUL7QgoJCBJu X8hAh2guvDpSnOTekeKUzJj4FyhuC8Uoia2MphdjZNaVrq56cw2BGzZ43v6DjHT2Ysa+R8LpWUZT +5dXJBW3IuqSEwOMX3Qr/ZUymrrLyZz2XDH7oJPBjLvdVsYPF/75i00YX92tJ7O3DqQqo2mrFanQ BQ64dO74mdc7SESMUK3pT+lZK6OpGcsVaSkCkhw0To2TlzpOFU0jvMmaivngXkDCFlYdYc0wMrJj Nui0hrh2ShhEca1IppC/0BARTtJAQyIWSAVKYCarPgyc5jaYUNO3ahbMOcCu9GutgKazcK0bekTc i7wFgdlMZxdm7A2kTAFCoFwkudG4dKsCmoZFeQ+gPZQbfzNDtpCBDm7ofx3gCgD0EpoGjcy2cDmq hCbIFRvH07AqaM5kWhamGtVvuXj7xTmivYx1xq4Iq8S/t5GBbpPXyn1FaomM0bQYsqlw2opEgwlh uvPwwLRfvkFe6SKpM6/QDa1WJLqQmDH1CN0azEVpZK+r209Hsyl4cIXlQ6v6BW+MWUOKQQY6tRB0 xBnDq1fQBEtqUEaE/iKqOyEbdFu8Fu7hNH4v80pmFXmwJQO+hooN7EUEPTOFJhU0zaMiql2iw4VT Eqt4eNk0FZFKp9V8KMvvcqerOOFFgfD+sBQ0sbBCCNCVGtcB4iLDAs/1m47maCDhKUGbezNya6yh GaQqFZvgh9vi18ip8efwNAGsobk7UtaVh+FRGSmhKUC+VMXbWwlN9pIR9zrNUkKT/pmaqRQh6Lld 5rcKkEKVjwiTw+f4SUISJ5wBgiKJ8INQnUJOLiRj4Vk1vcutBuaDZ7N0XBuQDlGKzEx1UqHoVSYF 19camtQNYWPmTh06LPfQMfaaOvP5+Ix0vOCqNMDU0EQAzbF3Mk10Lb+YOqY4tUooMTejLLaikIeL QIaGmX28e2DNeyFGKxUCmfeYwJwXwV7I8LqR2XRaOGVNUSTdDka5csAcNcQnHeJD+muGlyKatmIS XZckpbF6IGS11kq1Ippise7sukU0aWWEvdXeSBFNeZNMp2i2S7b6XiUpcUYlXZJG9TX6bWYV2cEo z/Sb04RJUe1YpJT+5jBRg2EceZEPwLC9IRDAs6o+9tTTPAtsp4I1ND+QbhP2nBOSVnw7SjSN0bLS dU4xuXyNhxZY2PJiABoh/Hw3k9qEh2gknGiDei4x7DmkPH/Ozaop9i4cL7EuJPGll0dTo488rI5j 7teSscT24ZUovqs9MAPUNFrfjVqo01apoMlQWTk2aRBTZu2lMpP3ueo0LtzIl02DFM/kH8xMI2nV MwkhYuxl+Eyt1TMJ+BJEb3uAbzL9lhyqcizIn0ElP2XiYFvIVM+UOxf2TiQ6E8J0h3VUSjmLSibt tY+JhVI9M2RV+BRf3Pwsx9pyMCGr6pliSbhViZLrzOqCkEmrasDLtnomToQpzs4IZ2FVzxRjlkvJ pXqm841pbjeZeDeD68a9qvJOD7jjcHiWl6q1NArAvxmuD/RUnymfmfWvJ/IyxHZpUkKyGZw4vJAE 3kmhWOIHw9pMdMnar8FjtJjC4MdsFYFjdsxgVwQvFNPJXKaApsJM/Lnd51VhStLumLGsHa+WLaCZ TeFPedjNFNAU4UZUoeSPKqDpduImBYj/tbwaGZzMZSwS5zLj1ZdudkWrn+neJbZeC5z6mYTX6FSC 0Nit6QBteGRUS97qZ6qHWn49TM3uks582ygBpyla6N7yJKt8prqjJc4rKYzJ7/PARrJkB9pv4xnM oSNp9TPlRSy4raaPtVWNZGa1PpHeHrp2eV2RKdaACohcnik8qhFjtSpL0oTDPPUzZUQqfAlTq58Z 5g1K+UwkV730qIPW8pmyPvWfwLJ8pgek6rqOFQTbElYeGGQYSYfJqFckHWncbmAGoENmN1WtLp27 n5FwgBClNShvSpZENHC2ArQUcc5HbvtrwaloxVR6OlWaM9eV6hdruKN88y1+7PKohuWofdT7FETH 8pk5aCthmi1DFAYEsaxsFSe5VENK77epJNZFjlGKs8eos5d2AHuAP1xLZNBXmnxPGyHipciqwAHI k3YC2Cve/DXDpva8hk31Eumq/dyqZ3ITix3hHOiaqawB8t/kZGq8PZIqOzX/xe/rRiRziF1QxTNj 7eyjRFUSyi6mDZ6h0qTM67M0uupVs2SYcjRfiYppZli2Wg0tIpXamQKkq9UmJ+qCJmpU6ZVUdApN gGFQY2nFM0tfpFNMusUzbeVNpX3iZtCzr8jCKWSOLxcNNGLsVQHFCUUhBmJj0gMAfkqm5ABj0EUY qRQMM/7xJiFDq7W0JZqhVZ0WMEsMSTgjE12OcYMqydNHNKpypjqSA6iEI5Uzt5GBLrxUWomRwMtn vsw6+o+fD7KvYF4aqv3INip1kNKZIgNdeCXbBjKMgfoRuShlngKA0WdLZ7oQVVbJVzqe7hMRG91n uVlj5LzkwCPJpzn2iLe29gikV2LOYTxTMecedwQvs6DornhsYJxbJfo8PvAoY/ejtOCtu6mqa3Qg HEmVuu5uQIS1Xzl4GJDCCYR/QzMgzfJvkJ7DJBm9mjl1oPjQZgHioKDbUdcuAQaLL3noAXqT3V+v uVI603MDT0G15WnIoeKZMNLZBZ88lei3ypnR5TpazkIqZ5LXpQJpp6CVMxeyDU5zG/TY9K0MBt79 DGxFM/0cr3GrUymRuSDwmsjswAT9GKADnCXorWYZcCYkAUSo/9ZtqmOm0Yq8knkqTZx+DNRyogm7 OvIM+CXnG5Jc6gCV6dqx/zTmI4gYgx6BAxUTMEMNKC0m56VFvo9tRKl79zhnfxMnMN6OuDc4Vy2T GU3AYw6Y6ZHptS10dGHBvkfCqZXXJOLFcU0ibZ1WrUymg8bScho4gi2TqQhxU9sUrG9LOl2kNXRK wszrHaTWgjthphluKFvNW7eWGU/JzNIjjAEWa6e2Vspk2iavWJ50zgV2Pwlp8OJAbJkwYET6y5ZI mUx1lcrQdU2VzE4G0shcWVV/igwzI+Yt2C3WoYIlWHhWyYznSYZJeKVMZqcLr9A5OXp+yffmj6qc GDXj1aK9SFHMbUS6tAmd/Ypp400gel5Fbb/QlGR9005TUknVeI8SR897s9fJ0iRksMLsoSxh5Ue0 MpliaHYVgc4dx6OGB69InT8OkYQ4Gl3a9IeVzCkeQfFqZTIzz1WrDnVomUwdF1Ip7Si8vMawjXTh FTqHSNSBdyyRL9yjGiLuzS36kK1j9YecgZVBg91tmUwlgp9VqLOklckMr1Tz0BuJIClazVFJlcz+ ObrAEeTnvrrwhfVWX53qyFeb2trsm1Pzl8lizMU+py4lrFXmnB6WCvMcFoHbCzLS2Qt9uqbxcDtL UXI8V5FuDsBopQJg1YGZCk5YV7zTL0myUqZSA8YDutL5cew6ElZPZKQrXppLfs9SmY0VEcMS5gpT w1wkrL6QV7INTnZgYD0D2DnoLVxyQmTNidJjYDBg5BjQKZQ2VTK3gYFKm2nh9A7Sl5nXwm3ysOuM BLOo3NLaCYxaXyBvAQNV7GWCBwMnyQYkjEakzwN+fDsxnLc2D1UP3qlMQIWZeUVqaga6momRV2b0 tRWhGTi9IvTe1WBP49MyasznyiIhYtGK3sWixg+bkcSeBjL7MHH6MUAHCN2q9KNU0N5VJlOM0oxl RCdXW8VWBV7NizOusZAZxvJGIXcRdJwNnhlFeZF/kvGlTKbzgM5ynfVBUTgLXWRr5rW0WulqRl1/ 60TGGsTparLlo5xguUpRSlZkoIt04ZlEG3nyJAld14Tk66YLPCW2kVcyORkxrnx2HMuWJ2M02OQQ t13KZNpqRQY6eSEOeDvSobN4XOAI9QQS+8X/cfSRmTKSUPA6KzNVekXot2fZE7NIZrxWKT5uuLNt 6PoGMFDJiQMfy1etwsQSqLNPBHCYKTkZ9MA/s1X9SDqrS0rVShZWaGB+RAMyzmGejIaVWNw6MK/4 o903kBe6TV5F99pqRbIxsVZwpMu8s0ymwmz3fUdhz+g+75lpxbPcUlopkyky0jk5M7Yg4TTToR7Y d7wQqMVoZTJj6ZSeZy64zctm5LBUnaJjiJyzq2c6erFgbyDtyMhlQ9axVclUmgjs+kl84pjq3yFP smzriVPj82wTMYXxF5DFwErHonUafIZSLzjw9EkPqDMkFTK1+LF86mQztKApP5ApETOGyz63WpFS 1SiWukAz3MC+rQMDM79OTitkRs0TovFY8RJDUwuXfKSjFwu2IHBa6ZQIYrdPh0JFRC+I5qGm/Sab L5udmgVE0pt9jCUaPT/SKREzrzeQkghjs8w+X9T+rs0hlE6glcxOTQB3A/kiUyJmTj8GshjeAT6i hnW5muYSi1XBAnkZlwDmBvJCp0gsvBZkbQMdi+GNYt0DYrNUXk1hLUhuhUxcf1u9IBt09mLmtSCN U9zs9r3qBS7vo72naxUyE16ufFtCv4ZOFwRuM529mLE3kBIJhdAXmQphf9woVm/l1BLEGeW2gbzS KRQLr3eQmgvORi7D6QXRJH+Zw+0h1sJPqYzxHfJCF7mYeRXda6sV6b3gWqSsHnzE+GD0AifEwwO7 hwQk5n9C0tORzrmw1SuvBWmcXtukF/juh6pKjYarIt866zh5blw8wcjFjOSKdKSjFwuvN5CSC6O7 lE3JivCIvjweC+vET2bLJjFHs6qXYMqlS2LAr3TKxcLrHSRzYaip6legVXnp5WmOLcvtCx3z5odg qOEbnnhWVJRDSGQkUyomKLGvV9ZLi1IV2g5VEwKLuKplak9U0IxNp800A7CaqezAjH2P4EC2r3Wx JARXp1WrlakwkbHrMeqpFkWxiUAHN5Rtu72RbuAVTj9A0gvskBY48dqmQlZgPEwtoz21Mr0M4g2F q8ORb61MrRXpQBqdc4HBw2vz9CwVEGpdscnKDMAk1cpE/hdEuuJelRNWXh35arUitdGwaurWCB2O a+GZjDGC+nHOwMzd6AjcXpGBThGfeXWkOMm9I8VJpHphSaBYrF+HkVcNRIloiRYxOmPISARuL8hI Zy9mXt8j4fSsnGlch+SgkqdWOTPYLUEwfFTfOX+DQAc3o4jPONLIa+W+IpkL9ohXmDXKFmYR82rH kad4pvtmA/HqM7MjXe23kVfohlYrkl7g6rIgFVJrBTR1f7n79+6bK92sSEOyml/IQEcvFl4dKU5J S1ra1Fzw7IywLvzZSVVAU5+HH7BsGPeyHcj0W18owEDlTMyc3kDaIWD2RnYzCt/HjO6QqF1tVMJ5 eljfIK90OQRmXqF7bVWcBiQzgU7B0qi7+lZFUz2DWnaNiNRaRfM75IVOqVh4LcjapvYpjlLLRmAH um7MhRi/HkAvwOg41v+EVJvnE3zplIqZ14IUp4nOwBMf8q119pt35NULIkANs0hKWr0i4TbSVS9G bOW+IE0uCL9WnrIuTN0MEsY0taFZcOlD1bQnxGAlLZN1yCByssybSiFNN0P5I8iSdTTVV5y3tOmR eIDxU3R8xur+dujQ0qYtIo5/AkqEbsyzdPY4lwno80mm1oTsJGDt4xI997qJigmRkZaIt5U1ZDiV iIs5YB1Nk7RAPKc5uCyBxG0vJ1jOPq6crSfhrBOXqUdw0FkKjNsVopbJaDDa5Fnur8FUHS0mD8Pb /ZNWyWHxwTPzCUBtAg8JsgFS2wGk1fgjyl2FNMkqMl+uzShpSB+8OdPfVokQ30guWX5CLWFqvA4L H/o5lpN3OLSi68m04dczCGo4UbiMVFOEk5GiFIhhteq9wJFWlARLoxTS5Kkxs5JQKeM1A590KqYn jOhmkl9gxTWGN+Ey50UPs0n6bfuBeUP2zhPlTclt1bbgmqpKaZJVg/PIUSpmKc0PfnOY0yFBB2wo i6gRDfN4r2CttTQdngUa6gEWM5xamjyQJmDkgPkwtiycuASM/wEjH2ZJRqMqD6sgIajcFlnMSTLz Ku0l+VdUg6hepswhnEyVyASzGpx9YURIyn4zdfZJ1iyNdPpaubcHIqBbrKqUJu+6uZvyrk9vzRw0 XnGnAqJkNZnBOCUcMN/lXndHTjvbqvWySmlS0IHYqAaFlxYxRjCtCHlke4D5JD50/bfiq5Qmr81S J1G6XkqTPGzS4FqmbXJDKYpAvemSMXpBP1OVKj6w97ooKWbTbOU+dymlaT4c5SPTcYIvH9wsELZF y72MjjQb7/uqUZXSNNuvyo6z8fKjyExPaUkmJZU0YUU0s1wV5ZBrIa71TFzMx6ykCUB8k3wjEISi fpZdsl7tM3UlSD0y9M+8Iaimk5B7hTjH+EAsDQz/HIw+1u5hnTm7eP1g8EmylNGUD+8EmjQTjWCP i1Ek1GnjvEVBgXi9l8FCzyBBlNzoIi1sVks6JLSiV5ihlNHMxMHklPw2y2iGjl87dNqwM/kv1UvG ZhdgrlHjfBPyKBVG0RTJvGBLoh5kzqnrhnoiKmD6IneH7DD+uFoxTEZVRROReP5wT6+iyXKzFk4d 5j/iSQQKfRX1iHWlDxKEMhcwwuRsVTSRVKpY2nFMzFTRhI5gvJsHsaaK5odyeqpyuQ6gSReKnRyn ovOK1FZ3XGQQvOi4GCA6RjKqKpphRZC7ukB2iDvaOHDWjthg3r+w6Sl2UGdGL6OZF4/xTVw7ys9K R+qr3Fmp+KUihIvzPRLycuuKvmLuxLLCbmk0rgVmnF/raEanoeBbP41cqYoQcfJgwyt1NNWr977C KaSpxuQMrikgyyAlXtWYIWM2U0GHRtSXc83JXk6uA4w4jZULNG7LRrJAo4/jHUxSFzwhmKgAmIZI AccB0UulADKtxdbLekXFmpuc6BlVlZncqybmwYdwrzqNRahCmmlVpayZci+8bcUzDntJv2Pq+osd rkboqpSmZxs5mGGVSpqIpwZKzW4qacoah7nNZfMhPW8vrS4sm8xuInRk8sIJRWslTc9yCr/UfGPl 11mOmquqLub+E2HSduA9gKLJhz36k7pNDjucvjwk07nr4NS2d3jQ8Wtv0pnlhuYUGUwVJlMDg5Tp sGqlNMXQFM4Lk+7+lJCs5FqYBNA6XZiHrnhB1pJ5vdTRFDKtMKcE20Kz7hvELPF8T7otXqEbWq1I THummXS/WsP2Gh+IpaiOpZamayGSTz6RgYw+zJxmABNj+lY6gPDz24lOH0vizmIaxCpn3GWKBpgQ duRMRxcW7A2k7Gl2DpqxZKuX9BFzNzrRFtRkiJvIK13sxJlX6F5bFacBqcXwQImdpEHKjmQu+CHy cieBEvHbBF6pFAgbvWJM/oSsbaDDv3GbY1YwanaLlpJ9YES+cMhM8DwKbhohyWfBPtCWLfUQU4kP tV0NL8xT5QYsbwhAuHxUbxcCp/l7riNnCAXH0ormuavx9wz9U0rEhG02I8jETAcvzJ490U7okKVW VBMMK8u9DpZnTzPCKTTTyQudhCGUPnTvhaOQh0xNw5tSPAFwmqkcISZLV/D4YDVC6lKUqYUiseaw pi1awHlAZaKcGOFMVyMkYNZWzFsbVozH8oTp6rDIfb0WwqF+icBYpGW9GeFIJy90LLZZjVCDRF5Q NnPHspoLAKeZSk6cGyryrHQrNRKsRw9r3m31gsBrptvitbZakNrXPrrWxbMXraqm5/aeMv7BfGib 1eCwqtmyqibIRJd9jatc5TEQRZ+kuDO0HWK/aCdjRIjEV8ma+axKtTfQhRcsKCZCHzw0WDx5gVXC M5g24DfIK90mr9C9tipOA5K9npIKsaLY65zk6huwPQknmZ2qq7mJHKoEZNGpcRZeC7K2KY2DpYqM NS3RRA6IAzydsK4mYjEhMJvI7MMEfQvUAc63nAYNekxdh4ydWS/bgxlnCGbo9RsEOpg1Oi36mdc7 SClejE7eFcBN1wmrVZHATK7fRNOsJ86VaELdhnEocekCgjtXz0+0mDA7mAgVLxGR8MqWNQhRJQQw MY2DyMjPMcD2OciQ+pYAGxO1ayXcByPCEMTK5JSlaGetF+G02i0jnRPBPua+Bv66CDT/BYzAB4/o 060qrMmKce9eOw9DVxdwppMXO5ajPLzYYJ5JTisBNl1e+Cf4gj6j5oL72vOagJKuE+8F2u6nsCZT I/b8rZ8U1jzpi5CcGk5YHbhsy/ecG+5t6sEQf3hJzvJgkvNI197HlHbH4mG19F3yeFXhM5liiopQ +2VKu2p0aloVzaqraSwA1yGTRaBAvcvy9DQgrvsTD2ECSWq3C4aLzJyFO69gnSx86NTVbN+Dk3OG tqIPvEukBHNNqaaGwxHrtZhx18ycJT5gkEUhSTm7TpfJCh28EKX2JKo/UogXkDgGs50+bCADVRTZ gCx85+/UrtFqbGvO2eSe4Yjk5r56SPnEJ8Io6E1HXqlqPsjmK1FphXAcK+EEyPAIfAI7/jvzNdK4 tnodMRqRjVZJEwyRspNaAgQHbDUgG3Tw8rCvetnIcTuMiTaRNiQvti2VNDEJdFPqJKlCmguZrGzd QiStkKZeLk9YSnQQjZjUpABo3hCg8VBayWRl7nRz33ohTcbDAxs7UYoDXoTu/G0JkSqkudDJCw+2 HuK6ZdkSbiricafMVmEZ4YBs0G3xWriH0/i9fgyivmo/9mqaHGf86JQjYpZSTnNGWEXaDHT0YsHe QJB9DG8oWb/qRa+nKXbJXKO/fSmTVivySudOWni9g1Qv0Fe8tmLcGEwYyTEJcLW+riHZ1on2LMhA p44htjNgzNiErG2g0wnBvagwDcJQFTXjKNRsI/DeBHo6WgWVvuq7Gy1d6OjFgi1IuTPD96oXBBe6 cUqkMMLJVJT/wj63pGZ8I2JadMLYv7/VQgB+ILMPE/RjgA4grqiJKm+KMqmymmK8PHSTMnpftW0j A50isfB6B8k04IXgG5fXY3lMRQKM48rt4XFt4HATGegUiYXXgqxtmki4PXJLxPK3l4aYOZRxVWkj ANgF8SYHhKmf6VyOGVsQOM1tMhcctyRVjMcmGNfPpYGrrOaMxHwd6ejFwusNpKkKIoBVUiWR9JiK +E04IqW8q6wmCMEq+4UlYeRQH2mgi6qYsLXVBlJzYVTIyacT5C1GUxDhqSAamDlLnnQr8koWRTFx kmposwDVAa6xuhbqNTVxVolElrBaU5OpnxD6NNO5GDO2IOE0fs9eaLASzfRExhQpay5G7L69XkpR zQXJBcFIV0bziK3cFyQiIWrwzMWoMF6QKu0HZLD+G+SLCk4znx/9u9bB4FzOSi7HYp4zV2TUehGU cyQFNdH9J5QkCIrSwGpOkYHOdZh4wWlC1jZREN4CceJ7GhibysW82Ln/UhoW2I1ZnxBGPNM5CzO2 IOE0fq+kATO8Nh2j1MbUVSHEZRUZVbZvVWYAXjOVfZixN5AmC+739vawzi1JcR2cfI51PcJt5JUs 0jBxkuq1TdgMQASC467ugnBqkEo1AxDZcsoDERODVNvIK5maYeY0A0uL52HBu6yy5quupvqcN2WZ gJTVnAE4ca/3SuTnJ+hbAG/Da4MKKNjJ9kqcqBC6K24JWD1xNWLKbkmrFeG5Rpi1qporr3eQWgUS N9D9cEP+WjIt/unz/VPKauqxzkjRMVWNzomYeXXkq9WKpBdej8c/JYLRKmsC8YSvyspWZc2GwIxW qaw5k9GHGZoB7KXpW+kA+oOSWGVX06IOS+zQSiBkgclUiU4ZkOidkY4uLLzeQLInPXqTzegp0atq ipm0ESwh7W2kV7CSDm4rr3eQmgu0ckID2EsYUTmygWp6wHyXHdW9Ii9kObInTqF6bbMAJZMMuerw tYQVVQNYPfsC8zHVglSbgU6ZnHktSHGa6Mzhwnqt1ydaJ3XHYfAjpxOmdgpXTUDc/5GKPiyc3kBK ILCEcWw0VIj2VtBRW5gaV6WkqpwmEs3PXigi3Jx7mTmTKQ8498mxsFHKYmqgg91bvYeU0/wGwUIP c+k2ea3cV6RkiyBolV3ECkCaI1yE5OoVow+sDBViF/BMiE8S7K5w1UQW4ZowNuOEwGhGqhOp8+Os KuEV1vKeg9yCwoxy5+bjFYHbTOc2m7EFCSf8qJfvVS/IGamMthbfYEG4I6GWmCcwUp6LvBmB20xn L2bsDSQSZlyTa0vHbbI3nqKmCNKN1RKMy39SSDaRgS5igeWS+A6XR12LG0lO2J676ryNx8VExatp jR0YmwZ5JZMTs0pNKI9mxETpc27A6megwAx9f4O80m3yWrmviCtkhPdST94MZucpqBi5vXYfTGN6 GxnokNaV14KsbZqZgtNB+mvNRcvo5w6TIHYFC4k6mi5IwK3qu5CfYklNkZGOeUUb8sSizOtWUlOM dprEjMhKLwuyQbfFa+EeTuP3Mq/+pnOldPFFqwdVpJ50jdJqxApMaUKmq0QDEsOGwAAmQ7qcFRah 8nLEUkVPn4b7MG1Ws0RkRGKRv+rKBmejRQbZVKZUfXAxQTA6aZO45boBNkJbKHFkLZluyRUfnWv5 iJXpR7Kegu1UoS00lmwE67qPoWAfVxP8BEEvqclVhTnuQkTy6wgnXxTb3kq25jq5z33ULUC8RpWH SrpwvEHGr4Jx7pTPyFUAt0sgTEmNDduISfIX2txWjpYyRN7rBGuBSsz5j/ybIH21cV8GcWpCZa2j oqI2hJsez+hszTVKcaHwSyVyZ4RfxNdSlURRwYsyO1CM+p3MF84xCS2NjigFnPhPyZCiDWkm1YbY +jWj41R1MUPnPYWcmDGGqc6j+g8ISoN9AsJ8uzp+T8cQcRXjzv7AYnL8mVhEaplz4DwhYGYIQmNS WtExU/6iCLetPmKjkeF1zlEZoYPsgE7k4fRB8oKXrF6diJEEW2TJ1KOXpDrRmlMX69Dx5myWEeOl QknI2IXcbMMK/arV5ujQF7TycPYH0/I5q3VBgw2eeyca5WOEt1Fx8HZsZgkxH74zyBJQqBJ+nN0M I3mF1kxLZiT3SIR3aA0fhsYgTX/wl8n9GFqOcYBg61j1U4y7GL6CquAeoegoxSGCwe9PFKfbxvBE /JGWIkvxKyQo+YB0ykQklCIpISxOJNUVCJlZvYy2fc5SI7gzvkeK0FMUgV4SfaXCUiHUBWYFSP9C r9XuIZnX9EcxppT5YvfeLYnKF9h9krmCjhJG3IKll+5DtZkYtdAYOXPJwjm4WFUi+PnelbH1iERx pNBL97gv9G1FRpnccYu5y4QTezOzI2/scdpwk+dPGkrH/Fhxz++xdHKHAXvLlUKa+cPP1ewaR+KZ kGRYKCY2uwYkJFcrfimPzeIVKm8Zi86opmvHBWXkks9hDtd6cm4zZXDKvZXfI//KedKCxcFVeJJO XMNDfGHKxQ5nGh9mWng9wmbxqoc4CJygswaxCLsuiwd3fx1QiALP/KHGIsZcjRw3VDyTt5fERU4E XNWzYJa2cbOQaWKf1MHZBgz8SlKHs8LzHeeJ2yB/SbJmhcKJLBU7cc+Ps1efLOUrJyqEOb3Ihatp E6VAMg9B+uuuw5CkczLP3sakJN5uB1g7ZCWbnImoyWTNubkMXd4oZllyy8uepkij0+QltJMCb5Lu ojOdA9RHdjmGqq30j5Rtv9fWnDxOWXPkVD3DsCI1Agzt74w54apTAUzsaw3XSnvqtL2JjbV0FJOz FSPP1NMnviYjpjxnFqa0NqU6DbOA/QMrWvN8ImTEv2kNGbLDjNMK44yvOCkRaFhzgd03UH64XeZA Shgy13+oGVXvcBXxKHouuKuLaFAYI8zk8Icxd4R+3JdxahY+hYXrjTXC/GCj1XKjEj1XxdxYzCN5 ZeUCUKnILoLUr597mPAR6FRzpA/Ay8nFXvQ8xnOomA61keXked7SEpNE5feY1EqKZS2tTK0ZgeKq dEbcJOXEO4uWAMTLiFpvsDr/kYpoItTUKQYBqlQXUjuCafUYLdsmexwhrIMNPXtGJWDvMHOsq+LL GqhYRXiIXXaYrp69HMgaKz7oApNNZSCzsfLXXcXYmrWchPJFvAguVlTFcMVRWOz6xooBllwQfS8y ZrKYkyxR22f8XE0eulE6NhkmBy5cuho7Boz9XsuMPQRTt0tSYxjOQNfkhWwMPsQm9plDjYZHI3aV o4vyzpkY8godDdpdG9GpeiVrnHjyQa+82Sd4GVYmSKtFUNOc/SVEJGiLcATgZobVQBdeCHzMBzQZ ykon1RGSdgV/tBS6lD8QSA5dEVQakpU2A13rVx7FwQrtbjUZe4+9gqxoCWTbw7yOKFolazrCYD8b WeOEnQWZpzUXH40VM8KnwXg8o/yRtbgir3SbvEI3tFqRst3hn7nh7KXomckUaemzd89jEjnuUV+Y t19ItRnolKSZ14IUp4kOzwzKk7nGnnWZy1ohS0fmhDpzrVLd0trmICWtAZW/kFUnRlZrqwVh+9AJ rR5Gy7BZW7QwfQA6GBVTvii3xXpsIq9kbsWZ04+BWgtEsUpCmfpBcpKzAFY/FoD+8UHXN8grXSRi 5hW6odWKVC+8a27VUHhjVRJhDgvCES3IMwCmnpmpdCb+qG0907kYM7YgcJrbVC84FTyVy6XBeXAu dFeSN2ZiW46HCYHbTGcvZuwNpERCg4DwAL3AeVTr1YpgmOhG6VBGodFqRV7pop9nXs7/yH1Fai44 SSolgVMJ16rpL/RQef7JBFSjUQE8S8TBXPsFw7MdQKjS2hyECTyGiY/nNMU+IE2EExc3rAwcLA1/ 1EIE26nOSSN6mQYxMsCzgy7oyLSqo6U6GU79FRf7c+h46H6EZMhYAqhnNA8Kk9o5mXgwbuTUCKZI Na+ExF12rP6Vv16mBSFd2oTO3Tjz6shXqxWpiWcTxQXWgSSm2ZTj1V/h9Yhj9RgSVhSmaM48CsWj 5N2zA5kzP2MLguzObaoTGDdqAI9LruKilzirqFLNOnAasyU8JzDDCFIFMQEDbjOdvZixN5C2E3wm lcAEWtKnAu4EMHYFQsAM+2DpG+SVLjth5hW611bFaUBqLvQ2kokBC2YlOwFvmcpn6QXuUQn+o7LQ mR0qssFtostemDBmbEI26TytMEqZDL6I6qrLJX1YUu4NkpA0qT+eCFRd9GBXxS1e6GpFqKveQkCV DOfmqmt9PE9MVlh5PGZva0LqcrvZB7ItVkurCMVM58lnXN6TL3Y+25rFFeNnvgozorwgCV6MdPRi 4fUG0kSMwZVRy/it2KqIOeD0gj3vc0/ngvOGKdA6tnxs2rzSRcRmXkurlQ6hYC78cU8KP0ScLE+t iBGCJJfCYwBBp0VaUX+wdCvKFhGb6RSxGSPkOXFf21Qv8HzJc3ZFlIEkFADxOFc9gJOCTZjpJxuN OfFaJN2ayZSKidO3ABqtvlU7jY4SGEBFmjDKR1wMjewWRyD5pRZjRaRDcTc6uzDzegfpvWC7swOI eMC2W6dsBlW8Rkmc9GyPGTEj5klXvRh52QuRr1YrUr1A0qhLHMOQ59XdCuDVJQdUMo/Rh2pvkbTC FWjIQGcvZl4dCadw78jX96oXZKGVf8LB47VgbY8bljAj8DDKaUSr2MYDMtDZi5nX9whz377XV4Qb aUfpM6WK9bsljbyUlZxg0hYiHaNsdLUiIy/n/0dI9QKBx7sJN6yPWhEwHzX6hYu/BqM+30DKK0LF SGcvZl4dCae0WpH0AjO/YhnEsKh0nDgAmGFdEFI2VJr+m/V5+fdIQw8WPguSkOxM50lEJkMPavAi oPQEJ1ElD6jV49lOCMfATOc8zNgbSFPcTHh2JDPPD+yUbQCmRSDkrxm4tCvwShW1PXMK2WurYjQg JRFGbo1QVfWG8p0ILfrTYJl9f1hLbrjV7heCpOTGg5iynvA/lrC/F+RMJApMn5PPzusckXPiaXLv Nv/wPek4+ogGudox5Poxyg9rMBFiBF+jtQdkg26L18I9nMbvdankhgPNrTrnGiCHuaH2HCdelCkT yNyARMJGOnuBczfwegN5HuYVGzdWbSEatRUhv+gOMLLMmRT0UA5PVAwWc5mxRFedLoymFKtx3O0O g+gorDIeA4XRQkRaCBpUT3N7Q8yCHzZ0hN2oQUPz1L8qPSQuWm4L5lPOE3JzyMnwcGer5lrOO7t6 LE+3sni0IZ76RaesurMTNDTIaxSfEXJzk+vthHnNLbcVljHKiKgrRgpDnOnCy5u1rJmzRWzM2UJ6 TRnwvOd3ziDE2cWqBMAK8V5KhPNHhLsvPNDGCifEQ43gpulOdospjIUERmgLntvIK90mr9C9tipO A1LbkUkt65GQOIqwuay5AzNK7sOurH7inK/AK1U248wpZEOrFekqwboMTlfKJjqnKih3o9cAOG3Z 2ZgrpaG5ZkdZsNcHMpba7Z/7KMOtvjZrrLyp1Q4loF1Kgka11CkItNLVxqb6BqPnXgnJKJ/SG08v Q8xtpzZIqXtTqak2zj6opR7J7Bah5qSWeo9kcSK75SbRWmdLXXEXS3epgAkppjzNSlasyqLjWgOn vw5UbGjtf04PH7lKh7EXM/FOpkuAkQhGmMqcvbVT8lOS9Mk7/f4jLNy8MyqiR/wSj8mASKYu5EpX U1U73xs33pQ3UU7p6NzC5b4ZURbhzKVVR0a6LV4R5dzede4dKU5+r8SIo6JKQnylerM3uY3QawPz 3HW3rkiyj9OmHuDZauT1DtI3FG49V1MIBHHZvkAkXiO7CknuKrXrFkS6tAmdi402G3h15KvVivQt 1W6dUWtGI5U4Vhc9GDuRWJJ2VyGRwScy0tkLKi/VDXbj1ZHi1GOdY5s+F3VIoOt59JdXpo4pMaHE rJXbhjBjRrEbMtLVXIyYdNtIOOV7XS7wudxpBlW4unUuMATVJSD+SNvmv6FhhI3GHkAz8HkH6fNA qEHJbzm7tf+pncFuFUswii8tAFTVwru1moWRk7Mg8tVqRaoPaNSKdaFR1Yf2QS2bK1m2ppdnHYne /UIGOnsx8+oIOqdx70hpcL/XZ4KLPNRI9jJ3MW0mfLKoJuQ/hj0PpGq6moPg3eUrWU3FiDnwbYSJ VzHxuS4QdSeOcUkQshw0b7Bz8QMWz2gL4CYdXo2qRGLkpEj8COnLQVg4zLi/7j4iF1XODc6V9/Hu MxQ64qkVbPyAia9LLZSYVDUNKGg8rFxY4+s7o3hKOaY4wZPDXIQ5JDx2+p2j2cZPOnipobnzQdtz d2huEbzAeBVrACVXthBsItJVG+m2eHXuX61WJFMD/5z9sfO8Za9eeLAnaI2FxGa2lUe9rb4QbYYn XfVi5BU6WoUTT6TRgsv3npLab/Tzm5glqeTasR7cHXMTrgZF5LwAGpGBrtaIFAgWVDpr9YVuEylO tqm5YHCKgrPPE8PYm9qllDIqzPylWKoLIl1WMnTOxczrHaTPBZVOlFaOLS5M2649dG3Y8lk4YhdE OuS30dVcjLyir4ZWK/LshY84kljkzwDUimA6G1/gPtJSH6GNqhiQga71YsBCB1Kc5N6Rr+9VL0iZ qodMpDla0MFecMHkRb53YOUKNIT5f0FGOnsx8/oeCad8r3pBRMxKz54eFOIqPVravDAsVPhvIdKx ko3OXsy83kHSC3YOd0smYeLL+XS/dirJROoCMCPf7i82S0eQBoGqo0gTi+/RCTHT0kMWmS6g+HRg i2pmPXy9vPheliF9rI/Z7+Jtv/38DxDcLOM4xiUShcCM8dfoXH2wk7sbKWd3l5reQF7pdNoWXu8g fd7JxEH9ELvl/M49IyPASNMhJyG1J61uIK90beJHXs7FgGR2RqR6gR7ic0QefDrm0quYYtKAcQEW 72hAqs0XkWsxcPmr/2xLgGuX9BkGittdhgxYuQhglA9icjeRV7oswcwrdK+titOAlCBwmVjBCL1D xlpqAP2nWKmsk1JImKzcD9Jzcg9Iv0jxU6Fz/WRhAAXBY57b0Tpi+c16EWqeqFBoZVHkIPwKRhC8 skoNhM69b6v82pWt8N8KITO3fN2hn+17qSuqVURZl1LnzMTVuLTGR6VDclb5W5v6o1wwmcWhA92S P0JXfScRTFOaMVsVzFYkSGnO0ffYMzNdZh7jncwoclJ12Zsfi7Vicr0Jp7xK85ikM556J3Ll+eXT vrWMpIjc+MkD++ANRtwr5c7AC1/k3g/uOFwICwxAqHMjJwI31iSsvvOgp2EkxCKvLKbrZmWVhLnY CylebOosoR2IQLh9o5MgNkV+kwNm8UGvGAVMqP8g0GxoOTS08dSnnDOXI5oNJOUlZ57KiiRPOFIR LVzKEyLV3YQiY4AjiRrMSXI0c/rs4P1NMq7b0huKRNobPUv2nj3EZ08QBKz+AOE1Cd+lxjT51fSN UaQ4Aw+ziXblZ3Clw0ZmBWl1Sb4jrWrWQajzxEyB4E7ShDOD3pLl6NestEtyHF69M0wvSY1nTDTS ePVbSRz3l96VH/vIXTC/FkIbJliv9/83djY9uu1IVp7nr8hh9QC4556vPMyg1QNaQqLpkhggBnDp Roi+DVTDgH/P86xlv7lt76zz6qrqZK50xI5th8PhcDi2fjOm64XsfmQ1uwvG6uMX/kCX9b04xA1C slwXFtIqIaYNR430C4/iaBZiEBT7S7QDd92wChBxR8h4VI0FCPOnACHfCEPfVzd4rIXpFJDcGgST jGplQYgHjaf1d88ckZAmzL4y4nYiTVA7oiZ0Aq9FNRr+BIL7wAoMY+q7TEXEhS0dhQGV0Q7XnbF/ whIkNZKDmEPp81BT/hhe3X6jwGzufFtmTrN1dVXNtKTMPcexj3sRBlWDcccIThZU0V7QJ5/NQ82Z QlIFQDCpfT+YWoFUOio72Mpcft6TxzEFZUQM1DSQsP7Kl2oQk7AShVd5K1qRSspzLeTLSQSI+3D3 5py3/sD7CR0ZIpk2hHfZGTuaRCA4182pLCRywiYld4Y2zFb1hIdYK93nmYzuWyk6bhwIaSeWmi0n U8oNHZPpX8Qb8KUja6myf+LUGDrMh/UTpcPn5gcQMhrbdZSp6/uxhH3V36IV6bm+H1k7Xl3JG3N9 AMQIsPaONmQIuBNlxNyvVoOoYmydXgKFehJ8LgOr4IU8o7JGPf2sAKFrqdjBJeMQiAWfIifyMSNB Mj6pah0aEHQExYCsmwkvplG2jjdGFbFt3vCnFcXPw5wC1Uwt5MY5VwA2e0zi9ArG6weaAcSiZheg uH5eT+SX0ENGSrysEYBd2ehM/PFqPq6KBRs4H9d0mO1OEVqHKVYbNhilHPHZb5bDlbXX8VSdnsHI OacFBPIItPdlCdbFBqFO3Bqxl5A1KbKoE4nelYhEeAeAueKqFM61r6Sb4QcD4fwlKgcV05Coj5bK WlsqKnaqAjEOVUutDRPQziVmCG/8eJZk35Uf/Nqn04BE2TyNKky5d8OmnByMDm6+t5fJQ0p8WlUA ppPFU8LZksrOcbqLY4NgfPqJTRiMvpHIDRLbkCaW+AifBHwlYzMWCxQtSQZZDnXaSYR2FJswAefq 0RLWtGkauEPgy5lQnFas1Dn7ASHWx0vBm2ONKgCzqqZI08CX4toFg47qZLZCT9mfQcf0T6gKTuyw ZuI6YRef52qZVAUkT5xFumauq6f2KksMN3gnHWnE9h0usP6Qb8NX48MIm0gnImZDMbDGfa2rYCBF 8wQZn/60E7B8CWyzEjYVHzG/JTIinZnvdid62Cs0zPVc7nLnH+eBtRF9dMxB+DwAazEbbXyB0NnK mDxrMUuVrVw5DTTxPBJ6XVhAcjgEQlBn3gHgycjJSs/fUEC4U8Za7h40+ObKmbM1P6lHL2ex4/CS pYRW7rj1nCKn8xBOKHkRrIW8bYPkVRd2YspJp3GUHmcviTP6OZ2CcFpdNumQPS6/3J0xusEcR1Bl LU8kF093loE3CUcZSMiy13e6yoBh4FVx0SgY1b0Vb+3r4BGS5o/RgJAkXhvp0+ggKNZCVlYJWqWz mIxDLKazHaFxzf01OjCuAQjHvnap2Uj6MHaydPDCKKDZYGgtCXXZb2BM8Jo6S4jAMClZT1i4a1+4 2oSAB13lMlgHfxZAkxLtLuYljcFYwRiYKgQX49IqtVCVa6WTF2tFTmDxhHEoEqwTo3dFqPsRTpff b2h8P6aZZaycp7hsfT8wrV2wmAhbXZEbOnmRPZEVW16zuAmOS+74iHHKj1S4VLmrA1JP7qDz/Vwn XIRZMXHq+36y0NnEk+A2Xo0hpf0ZOhDLxp5kioWhxPPM6/jdDy81Y8TjgSODVYMZQWZfslEYZ9LJ 6P6dzMVXx8d+QT++4jX0enQT88G4rUaBBBp9SdiW5SiZQAeZr2cI15N+Z7jLuKpA9+VWhhgmiq7a kBu6O14H93BanzcjCUQx6Da6gXSDdjKrqepucMYdCY44uQWuSngHxDeye1iplMFpEiPN0JDMmffJ 0MMCS4pIvCyKzHLq81hYMXBR0ZXujtfJ/UCwfo3P9Cor/D3islPdg8dhAMr+5ha5ksWS4gvk7tDg JJ8/D0wBmmJDh+oeDgHilAg9BDiR5MqULCYZuS9QeuoK9M0uLSBqD3RVYPy4Y9bTLv1uM59ZQLnX 214ncOQoe6TPv7zdStZhWLGz1UTiMuVxFcIrOsOTpvx+1YqlkK1l5jN64FTNMUURtvJMKxDp2Iaw 3kqnFDuvZ5BKgeHALUQ2H41v0CnGEqsCeqdUI8ub48BhNdmusvlTSUsHMuiUYuc1kfdWJ1IpmOiW 68xuRHdZKTh4pTxDt1t+vMMJy555WDtrAWcKL3RIwe6DzGn+iJrQhQmBZ0din4FxMqLdwlHjWIdW ePoJshx0vlHsqyoAHaoaudBQrkOEF66BcpmS5hoCLyJKzOWDTl6sm8OWcSVhng9wxwpW2DL8VwmZ +8brFmQhgxPGhnfwDQmvM12VSgOEkkbH2LbCwRCDFYOVPXuHk6688Ah1hpy66Je8WAq4DpPoDN98 lxfeWnYWuD5v1LUMstLBixWKMzk6BM0kyhHnxH0ta0+0lfAIr8iazy5WjY4R5NEHnb3FaTibL6Rn fSB5avQ8GWluPegA0zXdVLCQ2xOYXbKbQJgJhlqDOGLyQo39MKEY/3bE2Py6YWMPwobh5nl3MpxS TSScImf1Gblye4LdNbNqHoBgVpACLHn/kf5EoIvOh04p2NVlk5G1cyRLuInNllc1ZjhsdABQIZcr bvbS+l/cuK6eEo2JNotl76fudut6i1gTWl6hQypOLrg7Q8eBcas5S7MYN42DpTRzWp0IdOEVujte J/cTsZ/dneMidkeFdzp9DbZgnf9cgG4plhskeQTMjdA10rDymtx5n9HqRDLaarRhlcx/a2syh9B7 HGHDTvSr82sAbRRgp7InduxA8MH2NpXBrU/iOZhNioRFBrBszJmPXdUJDCwI3HY6pdixJ5C6FlBS p7MWeqSDCXmXRKNA39BL98iFTNdi5/RzoBOPjQ6WL+bsB2cB8S0IKlh0JiZOtXdpIbAlwu5Od167 u9BpNgyRWQIzkpMBIy8WCaxxX5C6N44rSk+Bq7TiMj/Nd7pbXmerE+nAGtsdsRwCGDGEGEzKuNSg seBgEXcEKXY634jlLDtmlJLXKC+wLKpObmIY8NqQGzp40WNs+VR6LHysMzGJxn7x/xPkpokIc+CC XIicdPjRvHhmBSmM3XYQytDRQSD2mJgY12qTP4dNZ/OwUykPvnUjEprc4da6msaDI4SaK7lZXy9I feuFTl4sZEmfZHmgUkrXarAEy9gCteaCjUYgm22fO0nXv6zL7C2NmsuKoGjdWLCUDgLh2ruW03OC rGJIPFiTd0JMJKxYQOyER8SFV0hEXZn8nPQppY9ji5ItHq1YNeaRG3vpagsnNgyZy+aBLHQRfed1 cD+fB53+teEpoxSRoi4Y48NxH9MDjDMQt/BYBiK6IAYy9YQPOt9o53Ug4bQ+r1LgqzJ3M8sJMM3N PzFDMXw2C/SqN+TAIysOEHWAHMadTil27AlkmEQ8R1ymjCRHGV0crPehIWJ0ObrUKbpDFroYxZ2X dEurcFqRWhEWyhEiJ5krVw1ZkCjv7zqZpCWkYWWh8JNDRM6FVhHgShVDtkGjDXMcbWk4eGvh8w3I D3fbpZSgeYMCPZ+AlOiHkXzNsaoBku8Vn3QN7q+8zlYTCac8b2oE3hdDjf3nAkqsljEOzSuBxR7K oHCctaIQXu6Ji8PgQ4Y7PMiqDwsn1eHPAxWA2B5hRcTCK2OdZEXB0eX2gHYUK9dSQHeIZGkjmQJs nCbwaHMAFcAFOsE1I6TDsoElP8uAXsKnzszkcC3IQteZufLKjKYVPTW4T4TuHcgcB2oluf6mQsLc f7cYSzBjKnSpCNxsNZGFriOx8grd0moig1M2BVgpNjUY/g49F8IzM91a9cgdu2vxsWyaDkQ6uNkG OqQ4eD2DtC8M8nj3jgArt3giBQsJR390gVh8plukmb2Tzr7YeU2knOR+IpGCLR+zV7/J/ALmfreB fEBCvefUgFApb8lhEEhaPZCVzr7YeU0knMJ9Iu/Pm1KwsvEgrDPV7TJB4eYGshihlvDvltJWD2Sh qxQrL595jyDXeF6kYEvEGThPZKXiPk69pByzOktREK6FYRvvEOmY3IMOKQ5ezyCVQv/tGxsItouc rXfdYI9ubeG4Dq4lrf3g6hLvWtsWv28cG4dOKXZeE4FucD+RSKGz0u20X0LlREWL5cLhQomVphYQ 0xi9I05kj3nlIwGjnQ4pDl4TgdPgPhE4DaR6YbpIjjwx0sbz1U6w+mgqCLN4ADC7AAuVWrFzegLp Oq4f0hMhTsUI+qYnsJNJQkZ/+Kw000fLeSALnev4wesZpOOBR5v8UXYuhO1m7JTSW/o0xApnDS0i VPVp+MArf+KJC12WEALOuQ9HX39mDLNX4hAl3hAY4Xn0HMoTWehueUm3tjqRvhFecM8Ic1jVNRFf mZBVZhunhfpkG4JcO539umMHEk7r8yKFh+p+IcRVmOPt6DkYhw66Q2xEDEF59L8g7JV2OqQ4sCeQ oWOJH2plDF2OoJdZQLojYDhJzHAOwE+EbeA7XXRs5yXd0iqcVqQjwrprRYi8N6GdEZ/n/LUYeqHl weE5kIUuerHz6lp84R5OOx2rs0dNccywphytRC/A+DRv9YIItXvVDbmhc0R2XgcSTuvz2heeeia3 Afd21i4wb0Ehsj9C/uV3NGynUTN37Alk6IQH5W6O3C5ahkcLzFThECxYt4m3yEIXndh5yWlpFd4r 0n7wCMTtkmffRFpHXIWTa/0nMUO7BFpvkCtddGLnFbql1Ykohft+kp3semZkdUKM7aS6D8YfEx1Y kBu6Rh5WXgf3cFrbVArOXVKW11lq8qZ7GSIcDQ+AeYx/IDnyXOmUYuf1BFK9YPuGXWHNdeU3M0+9 QM9zjMeqnrJ9uB+WInaVZ+OPESGsxi7c3mLniQ6pFYRXcJ6KfearfCBs4Sy3LW8iujzkeJp0mwTM oQ052zD+jiMLDnXgkYKNJumX6UFWKMssZhy55EV/GegMYhQGa2jfYMWg02uxNGJ7kHwZ+4Eoil+x ce/H57PljnKbWJSwbU7a8KsNLXX4xymE4SJyfxx+TqQR4AvqrIsnGVopQvcl+wpWZpO7LoJ5A0KZ uLeCTnKcQekeyQigJ22G3iNTqlIaJbff7VF33TIyQSgHI6Tb+NUC9oRN3OP4xDt4imkmrWdMPI5N r4lsHOuY9ubz4CgdhoEQfjhxBj2fR9pGpeIceZTdxz8LJzLqkJxL/Ow8q0GUSjSHx49BsOeVFyrg FtDPP5IuJifehpogILxfarcgE5KHjjzm3IIGYoOKUFZMcaDYMvNNJz5sQbYYN1+CIHGJWMgyUFAR zmTS5GHmltiZOlkpFO6NhnDS4UFIkq2pdIKewp0sL6u0o81zMmiSbILuSIaMzcwMxq44GG/C5xCt kJvqso6KQom8MafD2pCRTyMqkmwaWGF0lYlaBAn3k51k1rtUmGZ9dfpo9CQS5Eogb4Kq0t1ch8Y8 +W5MWL5gGoSUvCrFyOdkT244Co+HVuQRKJL5QGmFCqS0PM/nKQ4l8rsYK6WLkClsiuBhJBE1OOUs SUTFBOnJKG0QyeQrHs84meMlL5J5BNglyYj3Vr2Ii+Ht92m+nCOAp8kswOLTiLmGmrBH/5IIq5PO bCdmDgbKhV6JMDJ5GtYxroV9aU1N6RoWhRO9q5RoRY5A1QoCeIOOtKyhPVYWZjtgt1ZMcrH8tiXT gGrWPI8hJ5VNOjMoOEYM9tVAG7Mfd1Njp+SOMAnMZvip4NCRu+T74f1SpQA6F12rUIv4vZEYFVYe EV19dVU/YKgYGE+mN1mMPDt4UU72SLaiO/zsYSUYIW/LsPk4VsRc9qbz8DbQXzb1XDzv44gO2Z3s qjGwbG9w45rEK3PT9OXN2aNjxT7k1yyGzOPMDBDyiegnyMYlN/sc2wcn3Fl0Xb0glsFIAWDbHANi YDlO5d24w5ecWvSARAqfxiA6QKpKDs9ishkzxgDFyh1Z2nDNvBqGubDMQOjcqamrRNXtE7xnj28J NmFEEwI31J9lKVLFpti/+Bi0QldSJhmEevSMpvfXkhiJ6WxyZqDvI2GYCeGX3jFFmeUyMvnQqUiS pj4VPgOResfAmc8pcYRigOkEJx7CZeSSQ4wlQKM8z0BKs9wkw1BxphJWSc7WFqXogK0oXYN10jzE 9CIAeZjTqnB+6iDoRDjPLRKSHYiLOC8QY+gFVhlRCj0TiPIf2F71gjE0d13DihY6wM7AaWp5ldLp MSqmOeS5lMCY09EuGtQylsz5al96xxo/PGTEyCHDapv3EVb0uDc3fBzTTaGQG9sAwkmnQcn0CnmR Pg6MqtmKaT4ga1MWlk8eufE8stMUHCvuhA+dKT+l+5I8UTQas6Sc9EqukjAT+bQV89wFMDV44U22 eFdzmKYeCVJl7dUJsEyBj+OOg4xYgFLcQMHdW/F6FpVJvXEwnsLr0covv0CHrpnCILL6KogJHeeH vrIalVMW2z1yuZNkb6uRI4tQTTnf6Hxlnxjn2VFmuPGsg/HR0HRNfLsPkCvdLa+D+/k86PDIGDCW xA6iMROEEEpuAYJxqYOe35GTrEO4cDpYTyDTyGdVAL2nseygDHEJ0T4uqGjRPaPRAtwi0sVhCZ0i 7LyeQSqFhtScQt6Zy+EGptX47wmGB9M43yPQZcBCpxQ7r4m8tzqRusfOzZmHr0+sSoBhZyIZo8p8 HUi4vSMLneq185pIOcl9IuUkMvsCB3fYewtAtC84vKlJ+sJXAnlLgqXMa7hpirEwvhMZXCqvk2PM ayZREnbEzO+yFQX2O9EeiM8LJwomTrPVQwHomOrpCUwZr9t1lzRo7estkqODSUdPsOpQLlbXDm1i 0vo+YpQmLMa68xECXTVMOnjpE7UfMBNjAwNG0XQtnLMcw3gHSJU3DJVSoSUJ3qFd3ADoG7LokhOb 8SClQKk8ks8hIgsWK+yDLqMYOqWic3vHARPnDSfekPWf3PpKhXF21UYj5rqKO8tYDLr2vHTyYo2O a+Ga286SMEcivqD+QlhtSMj6hpL5hvjmfBSl+tD0dzFscKF2+w0gVTjlXPGO08n7RKLLLPisml1t SXJOnpCFsRmrjpcX9/S92WF0KeUcjJ4ZdGkTOqRwTWQFq2RmTDkvzGxPeIxZQKYzCKvizILGuart kq4vLZ282KYQbYEXxr/5hc5GzoE6x97cat4ggw5eg+6O1+T+3upE0jt4e5xtVjIq0eeNwKhY2/7n ME29KRL5H8hKhxQHr4mkv8J9IuXk8yoFCzT5pUGnxunOFsgeNu7t43fczY3E52/QzwEenm0IJyBM EzYrpJp06uDDJrtZzMirE+UGudJlc0SrK1a6nyDpggyrpeRwdrgg2K8bcmLRPBtdeuyLCvhQrXzP Q2XD0VGVmX4GyFQHlu+RdsBczZcluUelWca/NAhSZbg8LZOVTV/uy+im+c4aSXcZME0MIh5mnN4k VOpuZaLsdA4F3j2azBOHl605QkCzTJWCC3rI5XbPwIZmEy8XdT/o4MVOB7qaRG7pZjEyFznzCfYJ GDn27gK6ejMd3f/xVZ3O8XyVpKzYq9eFzvYlezReI3RUNeQj3MfjoGOVwfWuU8ZZQdYP4w65zkR3 4UUjPBEMdpVdndhB+TH1nU5eiJx9GntOyvp4oJVdEdev2zXZEWQrHukZMuKd+WQZ5el4H+hYIrM3 Zg3D/ugluR1DC7IF0qraijua7pO256mmuKff5z1GtKVehsdjpgc4GF611oH0+2aRik2ByEYnL1QS L7s2i1vvSe8AIxhZnyhHBrY6kYXultfJ/UQ6fYiwMEQZR6+r1DBziD6E8Ja8pvoGuZA5DQiD4fJ1 1SQMNiciIbX2jQlzNjqAhSoTii11YkWOkg4lg8iPTd9mMrj7vEcWMnWGmMtU99jH7Gw5Th/2gvva NDI/O+s2uyRvZB1kjlacMMjQD6I4jBbmAZ/DA0yDNewm45lqc22DQqnZO5Uy5VXS4bmKpxqTFEHo AXM/LIjOC6ETpxcGgbPQk0xOrC7dV7573mDGTrI6xqu21YimjFYn3R2v2WrltD4vGsT7MEiMMW/N 0V/MjFi24WKme/jW2aml1QNZ6No3K6/QLa0mgm85njelwAujw0DZgmUx4pkEXVygwLx3Le2JSBdu oasUKy/pfoZECqJCbMUNOKEaoy/AiP11XnBfTa/gDpGO4R50SHHwmsh7qxOJFFgb5rS2jPiMXhoq 5uzkmibvycpkfRCtVPIP1F6nlkZqJUOIAzuQRAR2OnfH+OZM2Qj7iYVCw4JJ7tTD4L9l32NMNEsb U4+P7zCnNjJk2KGfA/QCnBizeSCOb1ifk/HXsPmPAUJj59vvK42PL59MzvCZSPh8gEydJCg0VgZz p53qjAPuWzTke05MBpKOeiArHVLQasUmEk7Ea1m5jzbVBjx0v+uTke99xxybJOXVwdc1mEj044Gs dKrDzutjpJrWyB3qQPSbYn11bObKCcaWayw0HmrY6kSk4y0N9aHLSHHwegbpiBjhGrMdn6k+BDqY b8xhJXAh3MEQkc5nNekdJk2XCOliSULniOy8JvLe6kQqBT5X7qvzRDyAREw8H2EAY4dwgXxmkXIr stMpxY5NpJzkPpFyEokUxv69KqzN4SApVgJspFCDGT51uyoSLXsgK50jsvP6GCknn1cpUEAzNQww DKcOF45cARcUMDaXsL9DIOMdB5kybJx+DlQAfZumjI0gHurFUVkXtCwJqteJQJUebTjONhcEH335 HfHW3/tsNI6UWYZAq9elkwgINsVJwVLgF070Dpohj41sNGIn8+137GMkcymPixD47Y/iMvj9sZNi KZyOhrLZxj7cI7NITOiQ4uD1DFIpOEDmtDeyERzK+s3J0FdK2dAVrheYh1sgVyvpwFApw85pIunm tDqRysAQ5aundP1YsjhlInY0giCJ3wyk4/NArmTKsHHaAXZLW4sI4C515ufhr8yAbot2svsjEZJe sFXy5QbCUrfTIcKBPYGwlXDlJjyJ9ckbmhnhyi00Dkx6zv8B8k6WbcnG6WB9ABWAg8Dc0NcyjZ0E TgCnfU4VsBw7fICgOmkzjvvS6oLFw1i483bb82qZCCzwYVVNk6fKGH/7QSyJE94OS3x/Q0abK52D sfM6EOTa26QvjGL2ujhuCOYuPoR5ntn+g1k5RQu/INnmrHRIcfB6AqlKQEkqYnc2370OoycDBhgb yG0dV6xb5EqnUhy8nkHaF54J5lSdrTOhbTerSSMYlaK4wWhk28XiQK50+hA5X7zyOpCzTfUC+TEO 9ac4K21cFCxHz/pTfGy828wrAredrn2x8jpaldPyvPSFeTbMnmhnEljoi+TeGJNBCvIRPMCjFVnx DwRnfadDigN7AqlekLbDBSukwEJzczMGC6w1ysDYduCX3iILnXpx8HoGqV5waBwhCOwSh4xasB7k O7CYC6pWqhaEc4j8IaqzvcCVKkqBXuXrMLTh+9WJhhC3I/jm1szMGyP498iV7pZX6JZWJ5LXwVNA KRqSI4sok02sJZ3YP/DVK/wLbD4xuRg7diRuK3c6OvXADiSeyvq8dqrLTUqioNLmdTjZCEDmK8Cq eZMJNiTeykqnmu+8nkCqYDh1HCQadsEjMYEIKcTIm6lS51jvHrnSqWAHr2eQjghvmbJ0qDRcc96M y0tCkvqUMCYKdYssdEMvcGq7uuJHV1s5tM2HR9ExSgYYqDBFYnqBRlJEFjp5EVsfGZQehCXDNFhK OMLLeHhbnUgzL0t3y+vgfj4POvwFnD4SEMbWbpwDiKWuJlLoySQ8vCA3dLzRwetAyml5XqRgm86O tlJw5yBmmYU9VbodIz527obfhIGR40DxSGP8Ox1SECwhy9etEUbDpC+NqxZu2I9h1jYE47rT3fE6 Wx1IdR/3jhNPpcAdNVSAFAqUm+HmVukqktuDXRubaJaeArP2AadRb6q+etsieWzDDQ3pAXMjI9pL aEzAoimxJzgVHMVKRbYWc4RGxCe1obrWX90Mku5J5bTxMCuEZ376yUXJPBL0ZMXtLUGLIGRpptGX BJRpQjms+lYk2/r5ahLZMHuGYTUuST/h1bi5Yis2NznyRBDqzNQPeTNiUDpO06UjHpiIP29LUMm1 kWNHUlPgTZif+tThTU5OsomCEQTK8zwMII2XRSMvw8kMeS8vIqhS18+Z/feF3Kxx/E2uH27PF4fC IxRtlF+t+PULYd9f3bj4TsmxghWvPGtjkhaOvYYO3ZI5WWKUUQBhG22Nazm9kazJ230mdJn6gjSi QBmd+RnhKPXLTgkLRLZgEI7DKyV5MYmRfGZ8U98TVpwuMHifzc5JfJ7uQTIQIsN8OzSRAvbepUMN mCERnb7gZWhFylANHQ/3ecQcmAvRi5gY5dQDzUUubGVyKZGTFDbVAMmTdvUZW8A75PU4Z+vziHjn s03ImYxHktzoKIuM0XnkkSEBSKsfgszE1M9M23xrBzpiBLZCJ91L8zi25Mx1AMIm7U3UNmmwFHjB wKosmNM4J78yCp4+53HWeyMEpGPL68EafyxKxj04QlmjiwmIvNiKsn5Vu1zJZcQZjzYZFUPxwawU 1N5MxVB2D5Bp2GVuOqgIV9s5NRYZWb7SWQxeLBVDqcOJLFMTk3vGZSESeau/WL6ca3mBiMkbXqkY SmlYuwdGvK8FQwUoeDfIDCsxeNxyQYHBVKmkfHJVlnwS6LScpE6/kO1u34vwQ3XTRobHhFoxlEYs UjJix570Ldo8do5MYaSEFeGUnvfhiqViKK2IxtFPcErFUHuuxUYYML0upQRKDW4NjMkAdgpZhyNo kBQZ2oxVBgFaMdQOxqtjYKAzqYA2jJVmDdmoGMqIY/IM49jCsj+aIzmNfBIifrTxQudIE0V36Uk0 AE9MvujwSE5A56onYFYMRU9Yo/16kK1IoZPOXPBxmyf2kaepvMmhZgRSstNWKK/+HbON2Qkn7yFk E86DWzM0GAkCtCK/xOEh39UU9w5KZg3bBIfJkTNIQvST5zEVSYC0FVJ9wXnOtGMhSatKEE5jQ08e ZMbAKZw6FTwvVUM5KkVg1R7JvesnwKlzu5sjwuQkYXvI76yYGBMGAUZDB1iaai94A5KKEx8cVUO1 WYQtqobcNNca6QiHO81Jbixi0rev0gISGk20WBMJ89wA0GRx25BGJh95WId5ogfqL1Cbu2IyfVqy 0HU/YjJWJsQ6ChSe0GgyNX8Mv5tk9fYKmtlEbhZK8r1ppe2K+qA25k7HkCd/l0FgqLPiMcQkwkZy E4dsw9WRdlOyYFk0kjit2LPmDosLls+BAqO4SZYWnlX1dUfu+sOIq+EMl0XXGXGWsrd8BEkdN284 q5TmTUbfsLhpw9TmZZFRMwAZo8qKMtSXWw5pxBSz4/p8EF7/E08RIfmwj3MFS64ujyN8Aicm2XQ5 LH4k69W/UUoWjRzMI0KMPz4Pklt2ImJx+wNdpRV91Y4zP+MkU3IMe6qAIRUGMw4hP2rsYcUrwyKt 8JqqrZzdKtZOp1hYumRaIpZX25SK98qBGqzycbM0otY43cAM8MrdQQYnzAHZkg4xfTxCfEx1Zrp5 Q2AmvmtauIbQAUzVz5PON2TucvMi/R7bpIPoVmVkBPL2CEGrlp20Syn+fUMnL034MFP4G40C00kp nc776B7YaN5XeAArlW/oth+fOfrRup/BiMCk3/E96GVbJSZj9z2QhU5emLwUv7dV635qGIlS90SC ZU3Tlc1SNTJ1P086ebFtzOcaUddR97OUuQbELl/XTzP4lU8kZMH0hOwkg5UrSOtPoPBVB1beH5ix vKF1P9OINbxjmAE4yOSECaBsXNRhFv5kMWR+d1Wz8CetSCjpOYH7T43eQQcvvaNZNUWTrpJiCPF7 kYpVgetYD4QHXpCF7IbTzhqTsz0rWzCNXq4D+NiR0YJLiyLoeeP4JDs9BnS4V6zQuFIHHSKA8aHA dgwn45m9YLjQYqw52mkSA9C1djF7cXZzB9kdq7PVgWCe2dnCnn1LhSBRPdEHsOxFnKyfPqkht8hC F2O/8zq5n0i7lW1JPFufiBdpfAunnLVnrOnxY++RK53m3FZXjB7bkLMNdPQF6yV2y2k9FgelwKlM iJwByZ4kCAbZRnC+oVKGndPHSE1ilyJlYDGaF69G+U8x3GAnrKuQ+yqRbv8MHrmxG3R1i1VMpdh5 PYNMNcen1FzrO+HL2xM68d6Bc1HDLwnyPWnSdAUpzl3dpYv6hq66ufKS09rqRCoFm+OU3XYqtvyn 7hL+Sw8zU7SxDlT3EXjvzH+arGQIwcalPgfdl7XNTUpvt2LfSA7BZWfq5RapOmhpl43IV+Evmp14 ASMvV+eQKgnBUvdT75AvjXQxJ/zFSnDQwct9dxM4WW9N6tKWsZ1raVlWXh2viURJHshKJy9WL5I6 oiB4bjnHwSqxgPHSKI1umo0o7oWCsBV3w39SwYlFiPOwqhrO4AzIsGUvlmu/CcjgZIQX4QDkPOjg hR/A1/dKN+p+BqNPIlXqfuoHkD7pgLI+kYF6Qwcv+pQbWVWsUfdTZWZ3WSx1P+PgI37UNnU/pcO0 Ojq4ZmMHCUaUq9hQIfqKLKK0St3P+bxwGvU7J5ZWwZ5Bosisy6iM+180f4w1GD86Zi5g8RfuEOnS JnT2Ks0ZoWqEdOgNvNivdZHwbs4NUCpkR7OkkhMe2Lw7Mup+inHmV07Z8N0j0oXXqPtpK3bceiww bd1PMbpZgwHTBLFvEenSZtT9PHlN5L3ViaSfcRnYAflEVa8rKtgwP2AmQetYDPNzQVY6eufgNRHe cXCfyPvzOtq4MsyOSEvaTUdohiToC+t+6uIZo0iHFdipHKEdewLpso69Y6epT4Lq6diqJWLDIrAb ZNH4ALnQuawfvJ5B2hNMOo6mIgXZDa7qxiFymQLB6BscnHvkQhZd3TiF6trmACIAcwtzqDqzQfKy qEaWaBq1gIORuGvcno5JvAgjwVLkBnCnUyGwT3wurC8zDgINWeWbGDBl0uGdua7EgQNJ3c+T7o7X 0QpO+/PapfgynrwjKjmdeSFUiQqF3Sp63EKXbkgCKwuZw4oZZCcYNWVhLyu3W0nrNgsO9rZaEFjt dPBiRaecXvuUOG9UXuxroi2sKShuW12RusULXfuGD7bKCxm8kcCYsTsg1FSnK8U/3WiwcWjYBMOe 7lrJYMWSR+Ro2EVIMvxGrcaeJTUBbHQBcPx3Kl+QTUwzrw1esYAhFH4GnwDWddYbM26Ao8nVMxD1 x0ubJx28sOCYuo6hxTjDC1dtupkpxunqtiB0/E53x+tsdSC1EPgkxBWmFHWKCCHxkvYXOwBPh3xH wtkdDAJ59WUWOi3EwesZZE5QwkIdWFdBTQSOAFrcPRCFq4xXOERjpeesdOzxrnTaCBfSK5Yt3IKc baDD6WbSsl1Wmej0YbHF8plQMdzzTO0FuaFDioPXgZTT8rxObQ+uEmwlJDgSBYkOEJRp//ywYKxz O1f9NGmEHlCLnUy12LEnkKqFM21EqWdBTlZCUnDonASusdi0YSGpVW09zo1KndigJ4B0giY4Diiz H7fa6mP44qxhGRy+DMbuh+s7lKHpnpVqHqjDTqU67Bh2fuN9tqk66MBz0MMTdcNjgISqgZ6JUIlA 329BmAUbGTLs0IdA3Tme1VmBZenc5IeRw0vAk5hkO524mf77LTLjRqFDBFstvJ5BKoVLjV881Gdp 8TP3I1wf0Xf2rE+jfo/0kzGDTil2XhMpJ7mfSKXAGrQyhzF+hr8WguO6ngHl2DjR0SbZehaYGO5O pxQ7NhE888F9Ilnm87xKQRUET9e1EPMuJGrJLXz7QgvBMqOiitBjF2SlU4qd18dIOOV5kQK2bG+w Bpi6FESgL8DIi0NZwVJb4x6RLvuP0CHFwesZZErBl5q9T4KLM7IG4UY4qP4mX7BCO++RHFJNukqx 8grd0upEIoU7jn5DAA9lui/uJangE+8oWuCOQ+VakJUOKQ5eEwmncJ9IOAWpFHjojfyNYpzucD/l K450QLx/TS+XT5hHvDcHs0ZgVyolWJGf/D5WcFwgLmRF//Dk4kZw4oPfFojYmQs4UZtei0dxU+WE 4OSVLOv3CkH1MyAvb5izeQKmxzQ3R4w76Zk+zFudolvkSqe1PngdyNlmGEvjy4k5aQ9HBJMAOmLQ D27VKA/lFFuQTMOVDilotWIHEk5rm/QFY8tUqGGcuTnMSGKZGg2P7cjXTEw5yYrIxfVdHMSDzr5g weXLw5E+GzWmudjXnPBGvwxzbUiczZXujtfJ/UCqXhw5RAZk9wgNGURSf9j38f7sB4iSl0rl2vj8 7Pf0Jt494c2u8F16cJrMghg9nLqb98hKx/N3XuG0tjraVLNwuLl67JjS58NR1wmfV0q8/V23/Irw xjudvbBjBxJO6/M6y/DI3D655HL20L2Vxb/MzADD4uiWbwjasNOpDTv2BFJtYDfaec3Ijrqb7lDZ VHe70Ep8t8hCp0YcvJ5B0hcEulrey/nDveNEFLCqPXQF44g4wa8dWKi0NwenAznbDK3g/Da1djXw XnbszCAiVrubu0Rq+YLAbadTih07ELRib1N7A9qapxz7jwg97k2ihXQOB3V6VCuAtdmpkOHAnkCG ThDCNqYazfRIm57gkJDYV33nEW67Qxa66MTOS05Lq/BekdoKgx1j22TdTXUCWuoVOh7MXMun3CEb nVrBVmfldSBnm6EVbJSp2pd1b9TddOFnBymmu0b9ACJpBOPye+pu6lTgjiMm/qLXwBWBA6f5ZZCU 3bTRl97xVftNg8bH8GH1KDwnUJV2AZ5B2oFmsyTFyMQR9j12INks8xPEVlEAwXSQMIKsGABu/aXN d3o5r4PISS8xhYoNbzxN9rDIalnifM8ZOstuBvnBeVjoZt1NuHPjPxDLURtlAfBIBE8Oo+1xW8Jv bPNTdfOV/EMiRElL9EY0U59GxInscTS/YjNJk0rCQtuqmy8k6CEJRjMObKpuwojuCkDQhfAsTXDk O5zEsDMyVE3l8KjD16Kb3Ob1Sa23yZ+xpqz2PGnW26Suaj+FTqvW26SqKjmotjJz1JM7ET4Yk8Gc VSLhlVw6uafeJlUuzMSqg53Fiw8qjaMN3YzW2+Q7kZ4a19FPwU120LyICRRxNGBgmy/5vDHISMZj n4OKJY+QzrXkps9j39FjmZTcpBc8p6oEORr6jVZJ3GpPpuSmCHO0vWB4TSBXd31hMxuZ7GE+ylXw Lp8B3KRmIOk7EwRFKARZzq24yaBz1pmcV7qOzcbLJ+4TjeqS7sqIjkj2iDiPzhSj3IusMrW+00pf uD5qSm4KkGnZCTXyIYmCmAFRCUiFQSYf92OUhEzJzU9UU+ELCH3bUXKTwIQRbo7/1DjTvj5Z+sqX KoIyFTGsRpuRdIvpcmFt/1pyk/J/LmwCpMMSW/5EHjd13J04cPZ4g66kjAgfI5E3GmvJTRFsg14L E86Sm2QD4X4OHTAB1SEAa7HF6CGnYcwb+sBwJpzoXqQ0Q59DChC0omVFpCNC3r7DN/3ywvxh0+ur mOKLFSCYykZUARxxnO6IScZR7raBpeIm8Tw0bRSsTcVNkdY+lM68IcVkX0lCQCxkKm7aig860Su8 XhLHWG3Y0KwVN8XwTHoeZcVNOJFilc9Jk/yUiptcbWAJHemAyubjMDJwL3ONnO9LKI5e4XFW3OR9 jfknYQ+73Ct4MifeKx3vSW0NBo8D55xPQJeSm44e9dnRJ3w2S246CrTimGZyp++4c4iTW4CcoarK J7LSIUO1LYIoGeaBCgfB8sFvEfOksxK7/VIL+WpCyUbJTTWMxAglUNVgpY5zbm/3epzgvANx1WHj i5QGeHycKUrjFAUNcVJzHOvFCzml5KYziJxqh4VZ2sTnzBcsTYIY1tyEzuyvx40eTqVFyE0r3ai5 qXnAGrUTGGI6gVYkbhpYYfAsuqlZ4Qd7HDmHssTUjIO3FN3U1nFpTU4oqbabfEiDWhHcmpvDGuGM F0vNTckYRF+PtzKxIUbTNF4ZjaKbikDaX0eBsxLWKEz5SGjFnmmteXs6ajjvbzqLdCevR76vz0Ol zFJkscFp9HHOWBP0YETrphBwvp6llTWBj7V3RFt0k1ZkEIzxjOtrGzK1Iyb7zKTX50t0FgRAdItu juflhIWIJaYRhHXKuZveHMX5rAme21H0eYtuIiepzzTCfKbmpssmSSohmzU3wSijX6FacxOfAFND I3PsTGmiujy+sWPOX0bNTTC86nZma25au17rYavW3ATRUSmio6K7xNE9i1ww8mj9spn8SU+rTrXm pshQu5bc3MnCikb5GrpjPEpuSpjPe6hAyci4R650t7wi1NLqROKNMYQcqrdPx219oZbYNfhsZv6O MIIbGV2zQx8CUY3e8ecwBJXlBI9exqCjCnEHxeqCguVc8B6BLh5R6BRh5/UM0m5gbjDtI9osuQk3 Km6rScyzuJL3CHSjTV1qWy28lELkvdWJVAovoozsuFnSw1nAz5GsBTYHEm4PZKWzL3ZeEymnlNw8 2sy+4LjF2cl8GSfPvsHMIm7JTb75RtU0mOE5peImTciVnFMDh7sDkspstuKgkzASRoSTPi3bA2Ga 8bhwyuO0WaRW564NrUbFzWDdEbDYmjr4AdIKCoOuqxdZyxgyFcxh/J0lBvfWNHEh7eU9AFXVSyo5 YYH5+mBkHzsXMbynmg0TV28BqfJ+ofL9Ymy0WubH5DqcSxouwDAjmklb4cjVTOYQbtJlCEe9TRf1 b+5hMlyWM/D92AWZ3CuWeptxLHqiQM94/WnStd+lQy7cD1Lsak1Hwc1QziBiCm7eI9L1HXVk7C0W e3zqyDDOF8UoFV5ZUQU7/g6RLrxCd8fr5H4iKjOzzv1Se3/U3HQl9eshkYyTN7cfOORNRDAfm/3S pEubWXPTpY2j5krm9RSMv59MtKyLPd2am7SidL59jxeRmpuDLm24cpRsKKYeRqDL5Ky5KcZdxFC2 5uY98sibHxlmBy+nutzLyVYnkt7BRWOLU+nHOZNuG5XSm3edCpsTifwPZKVzjHZeE6mGmQE/kXIS qRQu0OMUWOVRgfVeR5SFA1jVtchQi4lcyZRh4/RTAIcMJXHnkeFnpzPqboqh9a5LYNagvEcWuux0 dl4n9xNRCtdLssmcMO91NxlIdopOSP16b6eiTOQH1Ey07iZINtM0mWU3gagCVt8Jp2as4PFRLH2T OMD2NKcsE4ODAHnrmySNy+0sXhgY26RvOJkvOpT9hAQqH+t+0sELU9ILqU4D6wsyquxbuKelumHr zMLUCHHjpgqYupsnnbzc4iUnAHPpTU958Yo5iJS/hTcda7JR5eWcx5JmE8bBNAibGXNg5IVHzqY1 WJL25E7Qoz2Kw/edPdf+PPsG2Weu0ii8Kcb1lI4OnrQmOy5ql4gU3jzp4KVpzM1n+7SpF+563n5J 39M3VidyJeHYw6WSMfMablap7BehY2HubilLGU9ET5HFTZ17SCc1rVJ483geeqonyybCfmATOgpv 4kyz+x2jkcKbOq4mwytDC2/udPJC3chW0FNmdfdcVsPIwviWo1D458zgFlnobnmd3E+k8wdF0Hxk /FtqAm+DKF5VghKoBGZvkSsZOmKgj8r69fxnuRw3GqQgwJ0l1ay3O2ChUtuyCEpELkgLbwpxKmvH M1+dGPeIBW0fZOqfb5e983jN35mJ7IwYd9p5UzD7VIRbKm+edPIyFJeIpIf4zEPmEzE5fG7EMtqD D6oqExhG/VCj1N48yPKCtOZLTYhg+AgXQONNeOJbsmyHGcl2nXmeF8JW+c4bnbwwNfEtM4D0VsTC 2ZsFveKY2+pEFrpbXgf383nQsRgofUtyoAWm9/pGRLt6E9kQIEH/A7mhc/h3XgcCp73NlII5jGmh 90f1TVuSru9UBzOkfSDhttJVihWT7icIU7F9wRFPJwJhrfaFNwkS8NOogsntRBY6uNlqwZ5COrEJ q1BAOapp9U033YQL+NZGsVbfdNJaWC0KnPKbfAhsoWN8uaW8YiyNG3K2iV4YAEcFagC8uN45gwy1 /5bfTEiGgLb232CJ9yB2MmXYOH0IDM9Jd1pXFl/glxHZwA3V/QxGmCYTKwU4P0Cgg5n5xnG6Tl7P IFUJI6pe7HD151A00yP6WDVJwU1jcWjojkCHpINOldh5TeS91YlUJewLbROn9HosaoSukq+pAUs5 iIFUIx7IlczB2DjtAGO6tWg3GF3ydOZ9+dQBAavnz8bA+bkhzM+dzm7YsSeQzk93iJkEmOgm7sXU WolVI5Him4mevo2Pa7EGGs1cyZydG/QE0G7wKoixAhcJExU1lmAdnDhDuv23yJUODU+rK0ZnbdzP Np0Z+JqkzNanG4U39SM5Nu8W2B0aXt2G4AvudEhxYAcSTuvz2heEyzwWTFRhenVuxF1UCTR4v6k7 83eAd9yp7IkdewIZBpuUve/OO5cItlQOhxl7rr1CXke7R65kMdcbJ6mubcJmAdoJrGa9QV1XPQrB BqU3eFgxKMAJKQ5w6nprJjXarg4LXRRiw7K6ra3u6NzQsTmYW6lRgVPsc4/FOLHimQzjhtzQqRA7 rwMJp/V56QtPhSiEEBtB/DijAcZpWV07K3B6dHQF4LVTKcOOPYFUIThiIsKl50Uwr6sWEBezu5Dl wMxzqBO5kqkQO6efA3aCDjf7AJ/mERUZ5JpqnufRgFgrcN4iCx0KcfI6kLNNLIRhGnztvrNnPQph dLMrVI/8N6AtrkRKsPH5EMj66JOiCfjSnAx0I+qGwnkp1i8fGEE1oHGPQBdmoWMcDl7PIB0KNwef mxlK1s3shdROctW0/mZe8USkw4LQRrp2xMrLnlhbnUj7AnvkObXuyKi/6aJFPq8xJ/fw7M4n0lYT Wensi53XRMoJs3vTJlLgepAiiRRYxVF/U1eDEEuNJ0uHC1cRfIpshgay0CHFwetjpJys99m+YHI0 ycHbV43dstGjVLZSgDXOfYtAl+h06OyLndczSPuCqC8bi3pOFkDqIk5CTD0s62/ylrQ6kdwf1uOS zr7YeU0k2pNWJ6IUnk/hQ+tKjIQW5igJNgRqm3nf+psDaSsSKW/o0M6D10TyjkmXmcj786YUbP40 Cxylzmt3HH74uas40CkNAH+RaFlL14ksdJVixXzmPRJOeV71Als5v/JiAc6MCLrYmB6LgQU41TKi Lspl2MUDkZLBDKsvmWpBONp5IGYFzpgesG7QzZYCS6sTgS68QnfH6+R+IlUxgxbpMEy/Sq2K0Rkp 5UVXW4ETBEdhbjdTgVO/R7pIHzpVbOc1kfdWJ1Ip8oGGGrJRgTNRNi6GVvkbpKaVV0WzkXggROCK eL9bKXZeExnTyIjx0aZSeFKQrb3ubRcDgud4jEZZzUiK6SlShZ3ISqcUO6+PkXDK8yIFcdAkjqvU VuB0RMB6FgvGo9CoW0S6KGzo1AsyKFrQjgiOyubyRkywx/cEhqzAGc2wepWuCCUTXfBKB69B5xux FMzPGliBM5pCAJQX6/iaCGKrE5Eu+hq6O14n9xNp75Bdx2FcuCVvzt4hKhy9YCbpyXyASBdJQ4cU 0K28JvLe6kQiBXE61M59DbOGTk+/ml3FRstxSwVOl/8vZDLRilNFkw8N1K10Ltiu3XogzB5sF6wK UYtCrFYsjcaR9wW5kN1w2lknpLI8Ky9DeV2umto1+FDelrFL2VPk6BIf29qbApQA7Buz7OAN4yE2 jwpTpW2wQ8HyiXIqbKb2pq4oMUu9XDqFtEjasHKYvS7CCkKRPCEW3nqiFt/k6oqOF8aFrM8U36Qg sAcgXYNI+syKhty5bqsPgKeOkH5QAF3LhEqdSvKkSNfwvIXpa/VNpaSULLcVO6VTfdPnUYVI7rh+ Of2kmDBH2a5vIuwQpCNw3rQ7xpWwP4hpNvYcHkGqb8qbS0tKznLb6pskHhF9GN+j+epZ/aeUz9XF hc7qmyAsapRyKp1awPO83hhrlLQ/XBwAruXSTzC3+uYLnjM5sOaSISbqVjJCoibV0Cjuoo26ZeBp bK8YA4aH6HvbpPgmnNjtkDIKGeROFJHPuPEMlFEx1Jh1z8QY98iorMezColezKIgFt984f+a+OUA p/imdF/5CmukxJiWzri7GmZzFxJOOc1/7WxhFnNuxJ+oqlkJRvFNn0f91ggFVYViiXXsENzam9TO 532HmATOeRysOFwixBbRU3sTRWcnmgtK9KrnBlTK5yTFIxWeO2pvSkex446LtTfhpAAJ0XueyJRE q9BNutVu4Y5ZDn8suZeULKRK8U0OAPVM2gnICiduiXurOb3Z2ptwIQdgrHBk2KEYMJoHAmSqEJ+n CakHnQmtvQknvIp8Q1PJLYtnK46Zq4ccXaM8ICRd9U1mui90zOG2svYmnPD1+kES9Ne1UIRSlF1i k3XPoHMnnQt/VYTU3qQuLuqeHHDe16JsIiTbtg3TNDOPyxY9RkejnIwyIisE5qoItTeDYMvVAmYS ySGMnTKlo4BSe1MyHluy1N60DTNLvYDMZDylxKxwYA6mfSHvPpx6EIml05pxaO7eSDq0r8U3xcje UwQcd7MC0ne1Yhov1ljbMNfpOQQfxTcdz4Y2DJ1ARCCcMoQ0wXmy9iZlhhgCFQXG1t6MkExF4tJj PeNZaBO5yOPdrGWp5nxq/TjmX7MUOKtlVPJuKJ/RNPWSfvFNcBEovommKr4isoi0pqUQZdltRA96 i1ilJ4MFdUJKa28GIScURVHK1N6EFcrTior4A1ZlA2e1k8ye9HVpQj6wcvOMkZejCWr+JDJZMMn5 hF/b7IohAMG/ViX0kAkrzsihxsRFFR1fi4qxeRyh42EKzCClCWasUlp600CIbz6/5J7SmxgGXJyx pU3pTdvkNWU9Sm/GzuiUZzBJl8ca8up8BjACpPSmdGyy2r0tvakVpaPVL/5mjcYIYMnPyG3pzU/0 KsGdOuuj9GZMbWYdT2Fn0VZUY4ZMm6RawprtvJ1p97ZT+COBexSFOWPhTe06gVRFQocMA/Akm4wx cA9Gp/i5zF6LRFNixTnmTAarI4+99oNGqV1ij4xscr/DWdY2MtPXtaclCxFaCwMZ68RQL69bMlP9 wmbKYdt/5mjYik8KtEdSeNPVsLXkUZO5IKMUs6wpWUhoVxjxNfeMUp7PUssiWrswCm+6/FILwX6D J/EP6FiHxyDpY/j74tqoJfCm6HIFj+HH3bG6fPYRcEp+mwhXQ1RwfTdZbWQj8kaa7ZgFeiV6TkxS 9CdDl7qbIh7ZK2XKbsbfuZJFKs1spj0SYJIVCm+Ki37hlLKbIizXU1HxBOI3XMjkhCHAievMGGU3 NSpv1grI5LTspkYFC1RbRPqZy99GF6k0PcMaU/Alu0NcMQZetbeLIoShhWFEU3ZTh2qhS2dFzzqD RtnNOIxzwFJm8x5BP9/p5IUlzcUdVZZQt70FRMJU+z1VNu+RK1l6i1BzUntU/vq+mETmlr0M5hUD bRvra5UvVTdFrmThxMrDzj/r+Si6ab+nTonOSYpuam/JoUNMkNySAFjI8nqW4o11xyZWGVi+yTat CCm66RJEsLh6laKbIleycGK25tAJ5eMCfTSUtZJlpOsi6ypaJBKfRksW865ncKWTFzOAeLEiMJIY c1UUqN9PdXANld4jF7I7TgfrA8hGRQvY++Kolxd/kEAj3F7H37DoprabHkZfMP4W3QTZ6DSLmErM eDvBopuD12N6peimJpbts7oXq6VXvNHd8jpbnUjfSI8xXYqLMqIvPLM5SDzTqpvx8hcEKXY632jH DqScludVCl7OFdu3tOqmI8uP+GO1rVwc8803pKvkQqcUO68nEFSCoyFmG0tFRyQrg1IwzeahjFU3 g+CTtZW3lA4y9etg9QwSIZjXfJadua8vP1SMYgCkWLCqgqXsJll+iKU3AsIyqfHc6OLFbFjcqIX7 LZ1dgVLnSwjMx1F2M1iziXHd8EnofvzNr8PBS9nNk86+2HkdCJz2Nu0LjGyWKXcVLbupQ5XcRvdI qZmoI8jGnlWKP+HZ4Rvzw0qHFGxjHmU24zgzuBZH5etusbOW3gShpPysI2zpTfzsnQ5ePJpNfi39 F3No4aU4xGrCK9U3I+ksa4bTTWbQQQcvl3lsclR/VN+MM8ANtmAEhVF93YMrgqez09nTfmekajKK b9qxXA1jZtEnJp2kp+PZav65KZ5RXKgUip50zybVKL6Z0AbpHcHSuyL4xto51hbUBaF2OnjZgdx4 Ct0ovilGqumwkMRp0vF85aKrksU32/ELHbx4EN/e0E6wTJjQZ8ezif0+tispvunkINznuoSrTSSC jjfKkRAXSFOjxUb+opGP4eLj5YQstTfPx7mP30V4Bqk2u5gnLkKwhzCKBt+VPleLUA02eXTELbLQ ZWYbFYiPh7VTt9oRlEyrwbT2ZkIOO7BQhRNedBNVPSQiWRZOlmrpqTzpst1/HgjO2kInL+hIa3c+ sZfF/R28sFTdETR8nVYncqG75XVwP58HHbYLz4E8h87EUXszWD9IxiAQcUC9aHVFbuh8o53XgZTT 8ryOtjEDIxv0BeeXWdLcWROTK0b8L1vtC4B27VQq/Y49gXRBM1LTL6KwbrT2ppEEojc1CCnp8gFy pXNFO3g9g3Q8cAqJ98cAtPZm/UT3u9gX+gafKZ7jgVzIohMbp1Bd2xxABMiebLjYWPhYDcKy+Oqq JYu+tTcN1I7LMubCGfY46IZCOCMiOYuAFgjnlUgbas/bwFPbhdeQO6Egqb0ZtVno7ngdrapcGx0q ThSFr/Y60Xh0i28mIKMBBcpByw6gXDuVMjAAn8dBIXup9I17G4vqqLqpvZndzhVBrp0OXl8JOeZT y/QpYd56cSbqjNy+1N50kVoQFqCdTrnYyOfbQcrQ2pv2MxkANXCpvWkrQrhKGruejl/JFItR6Tc8 ZNUtJBh7axcSJrjBhA1AqJ1KTmiGNIauLqt+tobGRAwc0Ib8ZJWB/a13N3cq+LBkJZLExG4xnyDJ 6YU8VTc/QHq4FqqTz853/712iVQvr3TZZQT+LYVrSNs0f6EU29RRQSs0oYncuSxtZE7HHUPD9lYn 0hnJRO4+GH/fZQ8h2LdxGtOxNNrKjGTV7qeLxibWeMtKhxQHdiBwOulcKB5nyqxlw0SLOSYOcvYA aXVFomTjLHrQIcXB6wmkRppZSQqc7+0BCCaJvsAJIPc+3Z9amwJs+x014pGeL+5UmugdewqpiaaD veOfgANXWbJwu/YPjLCdNhplGDf0UmzTCbmQxUZvGN21ITDakSoFR0mtYmiAj1MTlcIpP6Kultzk qE5jkUMhZm5OPzyZW+hUih07kDirO52m1W1XZjT8CdI5GkA6VLGHmt0DQfM3Modjg34O0A2IxSvP HLxRcjNYjgcZ/pTc/AC50qkRB69nkA6GZ2He+cACWPdMjWDLQZUdtQSsh5QnstGpEh4/LrwO5GwD HYOB/ITRkYK+JA09q61YdwpgljdJqytyQ9e+WHkd3Mtped6UIpWHtAkEE2qt2DSYqFA74akFci1I uK10lWLFQmeBoAf3A6mdwIYRVbIvOPy1/IYjAsY9/GCprfEBcqWLXuy8QndtVd4L0r5gP5nQJCPC NtIqB9ISsei+MyU3P0CudNGLnVfollYnEinwPijfbZ8Rnnj3WigcokeHTxS9sNUVwfDsdIzIgR1I vJ31eZGCLRAbR6RgREbRzeEXVS/i9hvV5ps87R2LbmIrdjqkOLAnkOoFESq6wKWB9Bi2lwyIKwlJ YoFSfDNhgFmOk7wWHZ6VTK3YoCeAdAPWgHOpOvOj+KYht3y/Bi1J7c174EqlQhycDuRsMwwF+2hc Nt6YeHVLb2queO8urCm9eSCo7k6HFAd2IEztk05zxbTKDp8XmUk5weYxjqU33Wjw6VVNK8Nk6c2T rn3xKG09Sm/aGwk3Sck5BfGqHcHbpM0siR26O15nqwOpcuF3EOtsKGUU39QX4bBlYO4KPkCudKrX wesZpNOdgA41B+ix98WIDSNTcmwGDAW597tBrnTqmK2uGJN7Q8421TEiP2yKfW96f/rt5vvEXdRB MyvJVleE997p7IsdO5ByWp7X2YZ7MO+tjiKc7jBYl9V0PDQv1B5IdiErnXqx83oCqV5QjZ/DnDrr BEzjJolhbZCCs9uOyC1ypVMvDl7PIDXA+cpBIz2jCKd7ns8/El3i4cRQ7wENZeZfSxql0RWj9zfe ZXRtM7QCZfCqo+Z3FOFUr7m4VyxFOA8EbjudWrFjB4Jce5v0hEvw/FT1KMLZpTMlY0YVzgOJ5Vnp kOLg9QTy0AqyH7pvYfs4teJbAy149UTeMt43yJVuaMXKS634GVJrgY/MLjHjS2poo5BmjYwxJ/rs 8fMdstDFWuy8pFtbnUilME48EoNHGU7jdtSsr7tmGU5ND1fj4kCQTYSyEhjnNKeaM+pwyp8dieuF fgPenq0oxtogVEPxBtR5WhN5R7rGwOBOrCanCE8gkZ3MKQJayX2YxWxIeCILs3ugOLCmQPUDuXO2 Q9X4s+5Qq3CSKJxkqGQxsrllrbDVvJaaKpy2ISjEO0OXUA86SCu+Rt6eSRlOTirM0vEOp7ka7EIw MewJ4ncQOx/JTFQvJ96GBsLLLEjJrEjpEUXKcFLty0MiW+AL0tXqmnVNk2+lU8spKAja4Tghvif/ 5KExuXO/2o0IPp9URE3yYUrlJvvmhdMNpB7Fg1KKM0jO2mGsL1IyEnscPFJFUr+EQqvzPZIYzJkr wlv6ThlHQoxf8zDppsf2GBfuLxNknDlwyeKhaCwxtvbaLMRp/VSchoxAC3GCcBLWtyO6z9txc2JU xiTo1a9ii5GdpFdH75pVxl6ZWA3TKX3J1RIQvDt4p59mIU6wbz/GgVMLcaYaQnrFjD7UF4Av+dRv ZiwyBL4MvPK4VuI04bh5CvRdKnGCcMQ/PGnkpjO5gMvOo7rTSpyUSqEoT2dLK3HShm/4lmz2Jliy BXwXdBVFoQTFDyNedHkrcVq5guHIIMxKnBSywmd1D4ZwqcRpK18qyus3rdA2daiPm5U4rZBK8dcO qOlgJGZzojvSghNMBOHmulFqeI9KnFzrJkvPg0AwdQaANMJkDvMnIs2UGeESxPJuXvbhlhA0NDZP 0zZsT1ALFubU4bSaAlm7YxLoTfz2AkZcJs83mZmDPu79cu4e84S9YTPzCmvCzlEddKGJpmBvv3B1 MzKmDqf3NUkUqQQpxOnlE5KThmK2ECc3VAh0muHmVMU0vnolop/WU3JKrb5YPeA7ZZjSZhTiBLMk o5aIBdei6NwY5XJtYvnELx0eJGcTHbfVlTgahgy834hooLnfXrmG4Efl7RfC9TiF0rm5FeFN6fff Xr20xBUFfU8Du2x4uZlAsDDHCUQinJ0wou7IiBmNQpxWwuE0Uj1Uj1gUHQYOy+kW3S5SRl7Ixedo NrnEjJkRkt8ywrxMB0vNJqJOLDZhZwIMKcQJQgkeewCn067gWBKtI9OfEdU5RaGih8wfBWcmpxIn 1/BIZaQ3aTMrcaKZxPIUEzqOVuGEt+DarZitxImOs3ArOGIa93Hi8c7EhULXSpzMavLAbMX+gCgJ nLCejy8RjNxwpieRXrk7euZRQkc0tXS/ZmsKQrUaZVLyN7+hrjnSqDgIqcOJvcDd9l1y1AIfLlBR x6dUsw6nVPOKgHU4MdE6SuP7Xa3DiTkkUbBvwoFgzAp0TexPrzAaJAszKYbWWYgznBin6sosxCld rr1BR7qui5Rh5NFPKcT5ya8AsO3L21mIc7wd6U9iqBTOq+sPl9rcazhlCTllJWlyOs8YXivrFoVV OngW4swKxDolHcMZ99fC3lE6X0ldyWJGr1aC1OH0cdwi6ONSh1OETtEHgK51OMmHQDMSaSBInkwn l0kqBPE4ZhcWDt5MT4YUhC2wEWufx0I9S8ClEKfLe9Mm0W0LceoDYDOq0tlbSabbMnJwU4hTMhbh KrCFOJPjPeuOzgJ6kGFM7ACrcBoOARkREmyVASEZkcdVRinDaRurVU+qPh7/pFpvEc7Bia1vx7wu FXQnIl16LnR3vCLTwv1E6oo52imfR0SFvvd16Nlmn/A3tx73iGQZBsmUYeM0gUebA4gATJhU4XKh bA1O5xBOli4FmFnpE8ma80AWMgTYOe1AptRGRFCF+dJUVS0cxoceECLQEslTfvNA4LWRKcAG/Ryg B9Ax1gmvD6jSoxyWWNIUg3l0dI8sdPE0d14n9xPpOKD7LWrGzPaK0eyHnI64XDHr9FNHiJ75a+1N 7QbRwc6sGQ8S4yCFN2KS5DYBCDPaHi0SuuV5qhBGEJtdOuZ2TmjAqI/YCWftTXp+Q27oWOdY/rnN whRUiTpRwd6oU44UYiw0LwdyQ4dcLH4srTXhc8MCRi2JvjcZrFkhr8ANlZyyOzGGwSRzNaGX9RWT 9AmG3mP6dUSp/ZJWNNJ73Ol4Q/cOLLzpUzYRmbsst+zg5O+qwxzCK4jhFEjxzZMMVnpwLdoIWfOe QjgzGCy+WVZX5IbOV8R/6TUNhnqcN4r1+9lgdnxaXZEbujteB/dyWp4Xdc4aP1bdWXwza3xWIfrC 2112tJ8YTndZfBNu+gZXOqTAsrElrTVPEU2NJM5SnTR3O+iZCLuITmOLbzKxdzp5oeKtP+Fa0UN+ MWomZrhTfDOtrkiMxEp3x+vkfiAYCWweHh53oPtGRGZz4gSGx9XJh17VMzyRhU6Tc/B6BlEKJh/l s+PzoBU56hEi7Ww4a25e75ErGYbj4LQDRwuIEEBnjyM+7AFzycOC38XcniGBmBHXA7mhQ4SD14HI aXteBgPF+c4FFoZfX7n5Izo+ncf68kxyHT2+fVvLYYIqKsGmr1+UZjSNfKkSzP9+K44/jsBCty4E E0xzUU3Xp+Hc6+xaw09vcBbfZCJg25HK6IMV3gmqkOeSY2qcR2sEHnSog/sS/N/KOYpvuq1jh+Go Ip7Z5hghPrySBCN5sVc/6OTliszJSibGKL5JH3IIPdymBIo0aDh5WmLb43ey1WTvGkfSqDk5KPDC sM0yKEnagzmfrBkdau3Nm8fRobw0oYj6m9bezLIIaT+YGucZL5yv8FCtpfPJ2psnnYPjzj2euV2K ZZSX+6res6ZrUnvTHRNBt3QWb28YBB1gv5mhYGXu/ojm5BxETa29ieVSZRxEAyoJ0u/Pi4IQ+jH5 bHE22FAn+MQaQf+xs8Kjxl5rkUbtTZGVTmVjA8cSFF4k4uRoUCxRFZ0ZpIDXhtzQ3fE6uJfT8rxM H1wL9GEMPyqv34IZsdpYXtJ974Gg8xuZMrCPaO1LbLp+vHaevknpJhdUlOQGKFV8+1kox52wQRvm U2tvMojwdJsuxkmiYao7BDI4DTJ1BjGJxeZVUitUnSFU2c+uoyqpvckEJq7WUeWOpytb6bJLCB28 0GX294iAhhBoa1cxTHhm0aPU3sS7+p4XphH9WlWWDHd8kCkWXjvZthHL2pvxY2BPpYW8YayIng17 975za28OuogVOsVyp559mPN3eOCG6+blLbFEIw9EuvAK3R2vk/uJRI3056g5kbfEiiQVRCxFfHlz NkIGE24Ry4raO6Gzd3ZeE3lvdSKVQgPskgi3VExzuMG43xjJWBv1Bou01QNZ6JRi5zWRcko9tqNN pUB95xnvrL2JtuYasI5ka28OhP6/ICudUuy8PkbKyb6PFLhPhJNQfVZia29mOjJ5uDEULLU3dXCI L6nUxD2svanbJR1vOeiQ4uD1DBIpjJVzDhzZsA4xL8RqmrmGs0DtTZQzIWTtPwGhXIMYZCDGyxIW 2TklDN8j5rY5gAqgS56DaKzCqL3JTEbjaylI+3IpLpLJ90BWOrqBVis2EV5vcJ9IOI2anXqMHCbU I2U8R+1Np3fXQRbcHJkMJJ31QFY6VWLn9TESTnleVULvLBYs8eq54hBhd1Nn4AvlceU4EemiEina qUrsvJ5BlAKHg83jr43AjA07GFXEsJZZciyncYuErm1MiMUtOXhN5L3ViaQvLEObDGZMxazACcb2 KvO7BTgBWladzmEh1ILtZA7Ijk0knMJ8InTzeFyFwCpYYSdoP87o/KYnnKO0NLAxkXJ7IAudUuy8 PkbKyedlQIgXkZTjes+S6tfV8ONZoEacMh9JuPk9NFGw0MR33fhA9VMkEnBHCO/cOmZEFrrpZQP9 nRC9DhmYrvs9Il3bSIcUB6+JvLc6kdEPxFjm6pFgni/AptRDtbGgTCTDkyXGrlnI0hMrtLfxlGJt UXXwq6t1xWaxfFaYR/3BVuA0tD8/hGUFTlzXjUxl2KCfAwjw4qFPri3it3Iso1sCRGWicYTHHz/f IyvZbyeng/UBZAjM2E5pFleCFN4Mqxw5amMtvCnlAnB2tFExBAc2EVR28J5IbEWeNmRgxB2FLitM BnhRAqPht9TdnEjUfyILVSRYEGj+3O9sshpNpYhBN7N4JnGjWB1HSgNenYEq18sTWejgZqsFewqJ FGyDcU9rEDjMc6MFZHAtvTLO9++QKxmTUbIrlF33FThaxCJlJWdi1yKNrQTrP7WJBqZDZ6sF4QXx NhY6u2HHDiScdjoHwzv5daBG0U37lDPbOlApunkgYbaQVYYFOlgfAOPAxNaWZSPOFhY7qPcExtrn jgYs5TVvkYVObTh4PYNEG7AlvdWJDbTgZvbdnDUlZ1wsBTdpdSILnfpw8DqQs01VwrfMBpDlYBbc FKN+TAw7gWmC2zvS/lro2hcrr9BdW5XTFRlSsElLmF9vadR1Y+Flo189acHNHYHbTqcUO/YEUivB rhr30KUR/8e8FSeo6+VINUjBzQ+QK516cfB6BqmVYC5g0aKJFsCMmXB+5D4Z/nCqAnACd4Nc6dQL W10xDMWGnG3GiPhRjkSl2bc0CKk/nCwgTbgFN+l/KsE0Uu0OlHAzTVYyhOCIGuOhmecwbxTcDJaz GDBiA0xvW12QG7o7Xgf3wen6PLuV2CtlOPT/kCKFM1mAsOSEPtPTrbfJFnle5bPcpicxGxUL0IE9 gUTBaEf0dOwdR7lNMVSjpo9sDLJdbpGFDm4nr2eQ9ATHOIbr1HKrX6JfdMRntuEVIteVb5GFDDWh 0QKZ2rEAR4voFkFPc4VdjYn6ttImGHvpHDcmekmayI4YLN3oVAia9bYcW81hy5P/MKKj7gNQCdMB xkFfK20edLwODjG5X90vj0qbYDBIDBW1IQz+ciA3dHe8Du5y2p6X4WEmtcgFiprEOMYHjCI5lSz+ y4G8iKx0SHFgTyC1hf2Cu0Ey3ntYZI6y+WZQhq2FNm3EbiJIC23uZDGFqdbYmTcqbZqPSDS4NmEY tFvk++Nrf9/zwV7prhjm6+eI3UqaFdkUznV6lSQutZ4oMsNd1wfD/6s5VXxxOml0eAF+cNMsK2JO 9RwphW3IBIwrpEY/WaU5GUvGFtcEPLkC4Y4u3jwHDhxEGzJjLWlOFfH5lOJy54XRbOoXpejtGc5F MKavVPLl/NXooZMzyX58Tpp0LzXQ+7MWG6cRn1XKCRVv4NU0Pzn9I+sDZCR8WuEOjDviVATMRk+f nzuEbAJGXp13Z/iyA1+9Gq4YG2D3edS35bKwcQssOTfyBEhJHRF8Dkx+fQGhjkOis5wYWKAEMt6X rY0+Az3ANH2lQj95X3ZAVo1fX6k2alWFLq/4/eySXyjRxRUAL5RJ5jdWucJIMddkEBumZc2zuCnH YbYhWuDr/vbKHVnC1tnhcybAF5RfqHzF02JHOWhwxlqVg21nDV2uS0GH6P0yElIZnk/BrH6SgN2I xTlowiHDzIA05hwysph0khGTLMPRKp+PhBFfuv70ynU/RjyvgjX1ogR05tqRE5jh5NAIOtZvDvvD iKS7zwKcF3m26NB5KRgyl8KUCoY5M+3tlSpwlA+yepx6QRrdi/fJWRPaK/hOJnCBEfeL44bScfbx Sh0US59pOHg9c4bMy/vc2qn0NFrEDMUMkzOKjjtUlhVmfafOYx7nMRtOGE1MGnR8ebvvyReDJTXW hp9I8uePF31nMiw6xHrYNCFZcWhY7Ptvr44ik6yaQRXJT0G+8A7tA1yeV2qZcFTWzFE2W3YKlX74 grmBfBiQ3fhVhDI2ng2LWCmVWwIMaifdZ0/fQ0Y6YCofsrHSw2caUZYxbh7TxtM3c6sfX9Di8NfE ITAs20h0o2O+vdI5qI5V4TEhXz3G5LG/cDxTI8nZukOuHjPQGhqcJDMR7QMKu2pCDEj6diyT+UA7 jLwwwBBANm9Ds+/9Yn9zusmbQO3hD7+bGc5ww8TcTh4FNUhSLbDzJm6KEFA0Aqu542YY/76RhNaH j8922luzpCIV49AJHo4y2gjj+MZAoDccb2QpZLfOd9x5GhONQVYke5kJRq0AlDR3Dz0zYqbZBv3r y5uuo5RuYMjnhQ4dIiP3BfUm6y75ponew4mpTteqpsRlPFhhErDFRTrpMByem1qbgHCmiMfIqAdt eGxOBOmffrLVa7fYBl/GYA0WzNcjstNlipIIvzrBTMX2XaDTx+Z5rCOY58rAPhgD4lRpko9X5jEW GDncCBQOkXL1ETImCCa8iwj2/ccLrdrhvgpTB4NCqH049JyoG2D1YWpzXoXPbn/TylGRNXf5WAM8 bcB+8Z17Q/y8kampkNHjCFQBkkDD47l9YOzZUeHOgAKxpg0hRy4i5pLTYmtYYm28LY1xJgUyGQ0o ioUiLZZIoc8qCttmhw6LzcZ0nHdxDwI6rRUqHE6kAr6JtKizI9dqujDHY4iUYFoPvhiDnrrOobxe 9KCJVfU6c7Ic8zSwcYcJWYyiuhbhhbdvrXznWjSSkHX7WKYgwwqM7xrRTwQ7afSdWg++CWe8Ohl+ zZRBriolNA6ZecmPcpQONwum2chDcfjgxIvISIGxvzJyisDap9HBepi8yXLM89NLvIEHDiCUDI4q ZT3Xc8kSbbEtpSJOT7yN5ZyU9UqVTwbiNKCC8QewHUlQ15EwQdkh70zUkSH/ceiA8u6ujZ2CRaOQ WXmP3Q4dxfi49qBQlr51+ef+kd3LDCP6clLBiSmNWlXBSLQwE5HFnszQOCBwYljcSHDIhVZgCOh5 id6aM4tX7ql/GXE5dgwmWZC2Is9mvBrvxIDvD3NeppujzyiPe9/fo+Ms0c5fJiI+jWrImZsHboiA hjHtdjp5Gdli4EKXaxbwYr2nNJDdgiqHDk6jmKv3AE6i3154LLkPrmH8RI1AhYKc0eP9VAytKtll nFlrUFTRb1rnjQiJUCxOxftxYeQw31avgYnQcSHphzntm5NVG1YsA7hJgw6En4aXwk/Yn44megEn +gInrmqAd4NN00rUzNCaPgynkblM5pjGScHJHexJ0jjudR3hjE4JeGF8tqwsGzLo2saD3Dtek/t7 qxPRYcfGc0wz7Bhf/bZnxHBwhmQ6SxMpt4msdEhx8JpIe0vuEwmnPC9SsJwzRTrQny1UTa9iBHve R19AygrD+oUVDzPsDEN9kCHEgX2MhFMepxAs2MSgtJ/8lFK2vwdjOR6Yh622OhHp4n6GDkfj4PUM ohROTpLdVTDss5MOSwBWk4mp9Wr2LSAV3TqoagpWTpP3e6sTUQa+7sE9/nFJYsw7rC2q2XWSUv4Y Vu9GWFo31gH9vyFjF3ewmkiH0Uk9kXDK4yIElykoYc+sYqbnzgXnOWAWhgiWryFPhM7X/3ChOOiQ 4sA+RsJp3PHIcHDLc+wCMVjOdzqNLZ9xdLWZZI4PEOl4S9pIlwHZeMlp5X4iUQoUEoPU74LkbhR9 ocObq42xxZifLJoUWsjwoqQsNYMuPTvuVE0s/R9sIu+tTkQpmH9WT2TEVWYrUGMrcLKNk6fX4uuw PWInnYw1t1o4/icd0/TgNZFMo3CfyPvzlIKV5Ad5OV1JcmEuq8sPTLnrkp4mBpjlhqzSelDkZODn HWQsCwf2MdL56P4tA8JExDWeCyEqgFqAEXhUMDwUP7Gmt8klExcGFmgzi20jHdxcQKFDLQ5ezyBK wcShfPkPlSzuuF6DGNOzDgDpKJmWN4h0GXDceDcCJ6+JvLc6kUjBW5JF1s7PZUqkUB68+Lwn2Z44 Hezi5odR2N/gvh1kCHFgB/JyIBkQHsiF0FE0IF9PQAg6lpiBXWEMijmIzfrqVixOCHvDl5OM8TDc hAMTI5PcMsaWXXwOsGXlsm0rP62gKcLBYqelH7vR3fE6Wx0ILhSGB5FRc2Rlso2C4mBkGjwCyCxV t8hKp1d88HoGiRRsKzlLcGyx/6Z00hfoMkU366RQHxgprPiTsJRuC24OTvBKpprv2MuBnG06tm4s HvcPXY0ZWzYIlOpSCDwsasC+cJmSvc5IS2T1QsMOOjTswA7k5UAiBQ4q+pXtjRY9LgruGjlQziMj MPyNRtTlw5fMckQY9uUgi3+8cjraHABj8YIfY17Fw7ybogpmcEIJcKuN0twiKx0acfJ6BlEjMPho 4NjOMMM9XwcjODhOfYizYfLvkJWOTj15HcjZJoNBfxsJGlMb/zpeq/eHG4TLJ+EdlAXR+1zJkGGH PgSwZcwjnpVuILBJVmgnRkwoErDvYU/UfcAPI2S3SOjeTXbWwo0XdD9FIoX7MnI/wo2YVFZkN4t4 QpmyXgNKvOpAQpc2oUOKg9dE3ludSKTAqrJV9onGJNiR0Bd+T0K5QEhH6a9t0F83Cp5/cDmQlwPp WOgffh7B7B+tWIo6s7uIEWdKemf/QJxQGx1SHNgTSAw2qw0R/RGg4N3tBdYqLuTj4toPuTF6g+x0 cDt5PYMMjaCsT8JghEeYik5PjDLXkcf+1ISUW2Slc3qiSSuvAznbZETY/5KU0HWWeGE2yWzL8UZc Lw0ZfCJASZyPHbhuNAISqjW4T7xvOLDkauRQQOx7Qg4GNPFnYE54UTcUm8eVNE4l9sdlHMkBMsjD 49jMxEL44OwyxXRGGNsVUSc2ujteZ6sDiU4QY6D8puPPIs7JhDohxmGFkoGxjtwCCxW8Tk7PINEI fHUKTFYHDTKjEEaiOaeLWuIgxUVnlR8hT9xSposnYzktQHVzTSy7Wu86V/RWW6YnuamPB2k/Y0mM 6HPP0mFmCZAR/5LO4/P5KY4M+s1PLNouW+gY0SaEshgC0aliJLJSaQFXKydKcW+/e3K406FtBoLR Al4GR8zLnvAC48ggJ4WcGxkmwrFndfQUEilytnnQyYtIOSx0uggjcAQsLwJ6LO3Kj7a4k/CU27ry smJME8KmLEJOl8h6NcqZyUPYMjVVCB5zSmC/Q8nJWtkT76Pfb5GF7paXdGurE3HwiS3jmztV7Gdc Ndw3Jhte5Oh7QrEvB3KS4b7tnD4Cuha1iAC7NUbHg9VMVjJiYwpQETzI2qOUFKPfWTZyfqKLy1nP pIMbcSDpEMGwdvOstZlYAN5GI+K3qHxDvKOE+EnlYsK7XOuQP+jCK3SostX05hkaEX15MZxeX7O3 PKUkos5JF/W77Sv+xoA9yLpJlYyRJhuWPvaBbD5bu43ZY9EPLSBC+64sXXxnLkEDrJYlUCZdxBpV l+OX86Fi6Dxs6iuyjeGwRl8HW+i5OUFXpPP4uF4fUXU9fOjS+aFjkiFXDj9DNxYknFg+YdXQLBfn cjrOFbJ0oHaVqO2kC6/xdUhlzWWmTGLChSgzPdhy2PQNy0te6ERClu7ypLK9tXA6WB9AFBmPiDm2 JFkTK2F77fGOM98XvEVC1zZNsqbVxmsi761ORCnUEIypQ+2wxt+q1nBzO5g16ibSVhNZ6WJMN16T eznJfSLvz4tFJ7jBxrYLYE6JMxqaaxdT1Mu76XRjELhN5KBjOA7sYyScxql0IsfWtleKsUAgBbOX O5v1BC1Dc4+ELm85FhYd65XXM0j6gqWMlEbjkiQwNIOG5c0qPggGNF2/HQhVm0hFTxycJvLe6kSU QYfkS08SsGOERlk0UA/WgTrA7Nk48BhIumsiK1nWnxXaWevqrC0iAAaVaEYtBAG6YWSxEIlQYRiN 2rEErsgLyEaHCAf2BFJnx91RwkAECGpuNINcTtZQ0TNiRPWxP+O8wWQCDpcXKn2dDXoCSC8Qc8It 9GGkTJCr4eLt0QGR02AG02+BhQpVsNGCvRzI2Qa6LHdUDGZh1+bmoCcOBKdLOXZn8ExEYBApKeBJ A5K6FLrcbXRZ7vj47ag7Oz5PxxJoTp+UHjHxMUcQz0vyPHJHXOw2qnAiyGdMEIMyInS089bywAxo DSC22qvlABvVHaez1YFEO0CJycRNY/XS94krQpmu5BfppKOjOBU7stPB7eT1DOL44C5wsJWjSSOy SVATI+G2a3UKoN8jCx2jffI6kLNNtIT4LtfYHUUWrh/9Lh8Yp73pCzCSS3bAOPFGhQwH9jHCwI6n RVM9viGlKpqE+xKbwaE3mQ8D0yzi/J5I6GK+Q8d8OXg9gyiFLjUBszD75vV4vDCgL/heD5NxC0DU FhKxmJbPA3rZgaNFBsJDLc5fGAfcfasosA0hl4Cdp2OjL0/dpgOxzUqGs7VDHwGMwnhWRoHTOubz sNwtCYKJ5Dva42CtlvsOCR0dh3WXjlE4eD2DjFnxhstsPiR7FW9GxLFGQw1niJmRgHafSOjaRrrM io0XdFurE0lf0IUkINU35WzZzQp2NzkQeU8yArP7es+KeCArXSz4xktOtionuU8EpTH+AKIUcZtm wfmRNg3GnVIaaD+T1DaRGMuJMDsNgtEmdPF1N+zkPpFwGnRIQbSEyhCsW87Zb5hNnCvmepOQxLw0 f4MMOrgNOqQ4eD2DpC8IqZPB5SmOKYfNv2D7bCEleo1lmoWcNf4AQkWLQYUMB6eJvLc6kegmGy/S Z7qdo1hIzrhI3SBnS6cPnbeYAfafGZngr89kRfW8aaVDCs7RyfvVvuGo9o4EcwQGI2uL8laESwke UF6ja6rpcicZrDg65EzeicsDqeKYVuTdisAcv+rljg7l4GPxeR1OIriyzMAywcg6SdUP0qUMUjh4 /Vh7I57fXkRQCBd+4kdoKg9JdTJqU7kZJM6CRIQZuiswhwSAMFNKdLAB8KAdO4m7/2ZRrngeHFhQ NZh9sPsGJXN/Sr4nYf2cc7D0yggyOpw9bk0u/j1Po8NJOlMeFlLS9V5ECNvU16NzNUnun73yQCs2 nn7bl303X0UcB0oWrAyA5eAojWnD83974WmsiXHaGDC+wPrKx2fYR9rICkqwponleWXMOJML1Wfx cXkH194jE4inW2+Kl8Wj/MWHQ8XXZeVDl/sRg5CRHEu0yUbkXef9+ao3b4aBIEsUPrw9P4joNHwy 0QyMfGLTpVnqfuGarU8jpGVCnCplIiRtaOHygguNn5PH4RZyFRHlAkPtvr7QAWQ92ggf6Bs9ASNy FC1ICcIBhrtmsK+E8BGBnT6uI4+juyiGyOui+1igCM6BpDm4tKFQo5samHNYY8+BvRFclY6kEL1K W3FsJ0J6uhEAvSjLkYaOwcBVJWxMAA3RGQLr+UJHeiSZk2/pgnYLB3n4t1EUBzwbZGw85pC3IXxG kp6cUHinEwga6Cx0k018pr3JubgQAtutPI5ceyYTAfOvDJo9QOf6fBCy9t4cBPdUniWTC8xzsYg+ jVI1AEaDUBz6BoeGScHRL9Gh9AkYeY82YsqQ8+4QcMHBMJlJLbqCDl1+d5rzgIhIMSEfz3KYboMN LoOIOfw4Sz6MACGH+yCUT0qiMgOXSKtkfhoPziR/q28gb6ZSgdD9vhkBT3KfBxnRa4MKYFg2+p93 ZbmDjipI9Hb7n3ReVNDrJtbgzbhR/1OhqBubIiqMLpPBHAFaYUCST41WqZZc9SE2msmD7sEB/bKV tgiDQ9BTBafVJ+NpGAjm3ldejzYcsWfgHNOEVZHKgJqtiF2rl7SiijHdwiaQszp711Aw2xDkZNay GWU1BiMfAj2hEyn3zPPoF+KtlYDLuiKeObY7zQ43eGYXE35DL/D8GHF22gaHPe6CN4Wc08Notol9 PI9QER/WxV4og2nxPo+XUXdYV1linQeknEYm+o6YmHRMUkx5GmFKIqb5G3QUKsdFAsg89YspghHi DjJTEVVVzNcnvVEzv+0CF2P2qAqJIRTxg29xncBwbcKbFSTKYgw9d0TJ7WFF+OE6QKkJVZO0Ada3 TDqsJMcaGgeWLo/+7F6fzwTjwgovC+fKCMJXbKF6AUMxtGpQ8c0fOo7u4sCHzgXpVGXZxkzSbSLW 9aZLVBWuIYC56FKIBJl+xViIYLlRyTzvYRpYljPkKBQFixhOWlmYK63wb6VDoUgUDSe+zqZMJvey OmboCGjqDidV26mA5Nyk8P2YcZaUQAKmkqqieYS5xgHjgiZjadkScRpFrzDhyLQWgbuJUnCiIpnL CKYWwaPSLJFc+dBC68hxL5elFrusgaQVaUXRHfZvAnSwq3k1hZUOvcf8469kEJgZOgS2wnz7ODyF LEgMlJm10IGlephbJt0H5abTZW4jjBkIt6M0/rYh6btkhDUsDGS0xFmtfTG710Ymp0FFHUnNAwKx GkQvGX06gL5kjaScW3qAx6tPtEKfP6sX1PGJp+Ei2emDtmJyYc7CSaCOETZM1Fi5l314Ffty8WzG GGj84U5IhmVWb0dX0EParJNZkjKVGVhb/epVB/tgoZMX/B9+CdPYAIIvTf4m74hj4Km3lGwo6Src ElYJgJ2srMixVs1Y0L95DhWxuD6igafbuclIj9JFHNQpvLyqLitdX5HkdRZIDQIxlhwk0PVkvfOK TneL2MOLJRNNZ4Fhpcwor2QVyysVkOEL4QDp6vKGhP61QDo6Tm26hrtKDoUBXl8Z67iQVSoItIH0 A0XH0/EOefwKsB853rhFFrqKxSqdN+SJ+mXtraY8s4biZ2fK4/SpbldkoRu8MmE0e96DKCscIAYD ++mBhS/EhHdUTY1iqRLxSMdODpmcdMWy9mvkmMJwYph68gMdwXAmKg4NlWC0MGg+HvVBVpnwe9UG 1yKT2ke3554b6y+GOnOXsY9HgtKN+0UrnbyYquRkIqirtFn/eUHC5FKyIuqG0wgFY0j5XZt6EmGd 2XISx3MANTHhA8TqgIYCMbZ01C2ykN1wOlgfgPsuvBJMVkwjWmLw8HeFwnfXncd5tUA7/ctlL9cH bCU3DBHpIMvMJW1b64whzOEwrFjP+Po4nRATqkuPjcGBsFV2QVnIN7obXtqrrdWJ5IWS+RUrSiDD k0KGBoyPrGl5OM3yWsuBpA1FPzQWgy7DjKm4YtItSDgtCFabbtVh8sqpqxJakYiXa3pVGYxv0dtq RcJtpasUK3ZyPxCUNFKMtYH1ktXVVDJa4pfaFfpfzHIA/GRV0MXRq2ggK1k1fsXOVjdIhNCjj4bh 3OjuEK9HoTBWZpKB5WPq+sscemoM9Obcr+x0Loc75nZ05X62mQNCpVdzVVBh/NbMfu1cvqaAcvqx JbufdTet+IkojO+00WVANuxoJaetTfrCKsDxfnFN8s0P+sJ1PB+/wM2Jyeed2DlpAUA+//oLjuVB hxSseO4jPWWBCzaNLCf6z7RG4/pIQFp2DC7v4kJXArct9SwIk7kd0S/UQ4YJPh9+2RgEOwkm7KT1 ymiFoxarvdLVtHpG7kpPikZ0nU4eHhcYKSeZ9weyUGHD8LWzq8G3YWnICsT4kuLRaem3B2iD+xVP BhvEkIqsVNETClK5hyEGxuIUTtnrJfEEc8ZmU0Jei3dKZNDDVJDQBQldeBG/McktW4FEj23HbSZ7 G88iGQPwIlKC9Wfp99KnUkmWJuxcsm0zOsIaxSaZ3rRb6XMUpaOPq2XaISYT30iLzGLGHToGAeR9 qGSOVMwltSasKAmbVpz5JFLATb/sksfjOng+DroDm8i7UBO50mWlMOePzbEBrSzEDkB8AfOmvcPh siACr3dkoUICF4BJRbxqaC/Z1jrD0OHcZ5kIEk4T2ejCi/srKnEcLqZMOjT7u2C4WFmILzu+ICwm K114EQPXMpIZweXR4f/odzrOeosoiJvcvOAFWKnuOEm2tjqQGuyxc4hfweWT6Tjhh/CO+BpsUjOR caB2xB3Hg66TMruQB6bwP0XGsoEi5a0Jr7AN1WK7pMdRMeTidzlvkZWu+rZiWsYVkdOGjHWDdTPe Nbtz9y5IwWyjygfDIUT9kB2wxUbFeBzYxwizfDxt2GvjRE5iJqxlQJGBzRnTEV0Nxgy/R6SD26BD CuhWXs8gkYIZR1UFjJk+EFsBhOBwKWEBd2q5HYNB4GaM96jYVWDLYnElAxhkleGNbT1yYer5xufo U2948T7EWIy8IxcXfd1SG/IyV09JpUub0N3xOludSN4HpzB7YbNdlZT3QWatHoKxXhByfSA88h1Z yZCBTSYLqlaXRczbSLByfbe3gFgA63FmVbkAGxWc8Pa5H69fRG8z4mFE3I/qEPF6zVaDdZA0wnMD 2ckiE/m47txMbBw+vX4FBr/ROcLHw6abhMZuBPuG/dYmLXTlNSIQrAFEGcb7GThALDEjybzxCCW8 I5j7uN2DDl5oIrEl9AGXFLcgnZ7Ad+IrifCYnpA62/iLLNr03UYEG7YJbJ5cCNxWknMJI37yVUDI zYtp4HdM9+X3leaOz8l5IuGUZ0V9eFocHwJMfKdoOPjc7jdjFY8JRw7BXTtzZ5tWnE1UKMjgNcgq w8LJB/55YAgwVjlmFjGy2QXUZdBPwdXmCFIJUO5kArLRYUsuMi8QD7qIsPE6W51IpDB4Vyvt/O6K zCwwGITyY1MjxUDQs3dko0OKg9dE4DS4TyQam+dFCtZ5Qp5aSEPxDEEmDn6R4SemLhuKRA1I1ow9 JFKSIORBhxQH9jGCXON5QwrOKow9s9fm0WPdJHqtZKybHCJhp7F5uP7dkTe2blQOus5L6SLFxgsp fooMveAGTq5DsIZ4OklfMIG4F4dkOMdk9GS7SxqKnjp8GyTWP4+riOkOXfRi44UWbK1OZPQFdbxc s9xbWVMhI5LdCMqPPK4SPrv7oQuy0aUvNgy6IHAa3Cfy/rwhhf6LG398QtaXSkGdEK21/r0/QBsE W3ZBVrpIsfGSbm01kXDK88aIYMATuKD3jfXHWHFUlD0eGEX2nZc3iHRwG3QZkY2XdCv3E4kU7hEI P2QB55Qn9oLtwQijol1ci8iG4UBClxU8dEhx8JrIe6sTiRTM8cb8eCfKCw7tJJ3YU5WElz3Hw16I xI4l3dd5v9IhxYFNJD0W7hOJ5geJFOyO+n0h1MfqFgwIG+AvPa5FOa3LNBE67B1ZyZBh5/RToC42 zs3XrF/wphpTdqtgxO6YpGLuxuB1gyx0utgHr2eQoZh4WsNxoeCJFdTwgX5UAdjMeD/hDjGscKWr i71iDT4srVDMtQ10bOk4vO3RogFsIuSOBj3OsqKPzdab0zuDD2Q/ZCerJxanYCOLRmzYyXwisd15 XIQg3sOcMP6EJ2Qx7XQFGqkHSkyKYih5JvXiYjsSWWF9HXRo3KBDioPXM0ikcEefQ124EZOPWrBv qMckxhYyO4kDCV2kDx1SHLwm8t7qRCIFdm0cAZmrNCIpiYnzmhy0Pm7aJEp+QVYyZNg57cDlAAg2 PmsIwNmgixP7Ckx8lnO9uFaAsBuIaMOL485xWuHCLrONLiJ0s0asiyz3sQJwoGfcHMwcXugOQCKW l0F0w8fHZxc42xxAXgWxzQlA2xLbz/PBmpMAhgbGJ7tBRi7BoEOEg9dEmCaj1YkMKcYagR+VMCja zUreMBAYCWnxFYPA7R3Z6CLFhsEpSLy0cJ9IOAUZw2oZHwycMSWLDSEFT2IJMuaCX2ohr4nQ+e/I Rpfh2DDoPkDCKc8bfWHFMUffjA4WmfSF55vFiOvVcz+Q0MFt0KUvNl726sr9RCIFPhYJRM254JO7 ifOAtWade2DvtWE3bhDpuq+TDikOXhN5b3UiY0QolqdnYjytQUXU2lNxXhPILJcBtE2BlSijsUIQ LYBTcwGm5Se7KMk5xg/Y6TEUnnsYXOFYLSd1O5DTqpUKATicWrEnkK7Epj2hvhhF0+Nj7ID0lAJx 14pxuEWuZK7DO6efA1MfHyPKvsnivdGZxtZIMbDk5j2y0KkJaN+C5SxhQc420+SygXIGsE/JRYDM TVJi8EPEjPM4iisS07nSRRs2XtItrcJpQSqFu+Smt7B6kUWiQuhh5TiAfRxeEXMTXx5XTueA+DPr pSphYRgjQ7S2lFVUgti0qSPMJvJK6k4xnG1F1g+2Zn9e3alNhqPVSXcvPSP5969/8/q/naHkwdC5 HIbnm3hEnNkhIgCRGybAp9c//d3rf3j9x9d/8Zf/RMLFP73yKRP++6ffoP30+gv/cXsze6mX335/ /dd/fEV20fHPH39//Rd//KMUf/z71//4+oe//tt//xev/4z0htc/vP7Fa/79PIG3+cOvf/HSJv9y NJlN/3K2+J/zh3+cP/z9aPrfJ/Df+sOLz8Fr/fz6h3/17/7NO7//9PrHv379qz/SB/aCEnONhNuJ v+zvy5/++Tf/97K8MwPpmeAz7/y3/2vK9HdTpt/mG/3D9qfXP/znifzX+cM/7d3wV78/3vIfZlf9 v8nxrx9/e3B6dNLok/T9ewe8D6Qf0Wbv/dRIzuf928dj/vQ/Jva3/2d09J/+75Tvv8y3GX3w+oc/ Ic27EH/z/wGsZegICmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iago2MDYzOQplbmRvYmoKMiAwIG9i ago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgNiAwIFIgL0NvbnRlbnRz IDQgMCBSIC9NZWRpYUJveCBbMCAwIDcyMCA1NDBdCj4+CmVuZG9iago2IDAgb2JqCjw8IC9Qcm9j U2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdIC9Db2xvclNwYWNlIDw8 IC9DczEgNyAwIFIKPj4gL0V4dEdTdGF0ZSA8PCAvR3MxIDE2IDAgUiAvR3MyIDE3IDAgUiAvR3Mz IDE4IDAgUiA+PiAvRm9udCA8PCAvVFQxIDggMCBSCj4+IC9YT2JqZWN0IDw8IC9JbTEgOSAwIFIg L0ltMiAxMSAwIFIgL0ltMyAxMyAwIFIgPj4gPj4KZW5kb2JqCjkgMCBvYmoKPDwgL0xlbmd0aCAx MCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA3MjAgL0hlaWdodCA0 MDUgL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgNyAwIFIgL0ludGVudCAvUGVyY2VwdHVh bCAvU01hc2sgMTkgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUg Pj4Kc3RyZWFtCngB7J0FWFTr9odRj0qOiYgi0t3dIN0wM+g5MICF3d3dgdjYYmAgKqIiqKioiCAl oKSFEirmOefee+69/3v+69t7ZhjCRmJYz7OeeVBx4t2bmZffWt+3RbqFimAhASSABJAAEkACSAAJ IAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAE kAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkAC SAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSAB JIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAA EkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgA CSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSA BJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJA AkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkg ASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQ ABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJI AAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEk 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 5FOVBBqQnOpNN/Xzlq9CKszHPrVio6szXR2QiXpWqoEGsmQNpPNbr1I3jmPHEgUlO9JiyWSoregk I0eyTpoTAtE6jlc0T/eTXOSNEtmTkcbmD+FyLhbpROu6+UcNy8JxiVFYPhhplIeeSqcxS1ZwUb2g lwUigXL0YMnQXZ8QSE0rLlm0CyUVyRk0kDcqyb5cbvKAMRIe5xioSTLls9Olo6CssDuRWtE1PBIc 8tUJDqiqlMLxboWVI1yObv3IZKOpik5/SkACEpCABCRwvQjwZp+9nmVBzPIQEHbJndum7Tderxpa rgQkIAEJSEACvUyASSK8ca5YuQu7XCwfjhz9LvkN6x406OU2VkdObIsEJCABCUhAAteSAHFUFz91 /tc/ww4TI1UcmPynybtrWUnLkoAEJCABCUigpwnMH569aDOLkjA9xecG602cSXEwRAISkIAEJCCB q0IAW01MONiwJnUmpac7kFZeAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQk IAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCAB CUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlI QAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEAC EpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAIS+P8RWLDpBjcJSEAC EpCABCRwNQn8C5Uqn3IKZW5kc3RyZWFtCmVuZG9iagoxMCAwIG9iago1MDYyMAplbmRvYmoKMTEg MCBvYmoKPDwgL0xlbmd0aCAxMiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9X aWR0aCAzMzQgL0hlaWdodCA0NyAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA3IDAgUiAv U01hc2sgMjEgMCBSIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4K c3RyZWFtCngB7dAxAQAAAMKg9U9tDQ+IQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED Bl4GBrf2AAEKZW5kc3RyZWFtCmVuZG9iagoxMiAwIG9iagoyMjkKZW5kb2JqCjEzIDAgb2JqCjw8 IC9MZW5ndGggMTQgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMjk5 IC9IZWlnaHQgNzggL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgNyAwIFIgL1NNYXNrIDIz IDAgUiAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4 Ae3QMQEAAADCoPVPbQZ/iEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMfAMDEV0AAQplbmRzdHJlYW0KZW5k b2JqCjE0IDAgb2JqCjMyOQplbmRvYmoKMjMgMCBvYmoKPDwgL0xlbmd0aCAyNCAwIFIgL1R5cGUg L1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyOTkgL0hlaWdodCA3OCAvQ29sb3JTcGFj ZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0 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 7wcGDuEyJ1AnRBU0oSojWIWEqpfgDquBENgkS5pYOcorK55ImrZHOQSZcmXlEqySgnVSwGoXZaf0 a1qqyZJui+bCwWmi0Bk+ZGD/Pt250EmUKnQC1TsCQyNj6zZKa6EXz8ESOVAkh7ZYWAZL0xiFaIwC O0bFG606DbKQIp1YEEdQhBTKWSDK16BV8oiEy+C6PKbKPDAGRgqSUM3uTevUhO2i6DQqAvFKrUvN 6tWj272dMls2pfI5Qap8DhQaCgqjkkxpzVq2bgslmajoEm6wKhLusViRKn6EDVG+iI2iUhLYBIVI TAEfQqNIKu+VqmZGmyDhRL+aqL4SPCpRQwoPT8woZ22X2aZ1y2bpKVpRJlFpCAp9hUXWrJ1Q/w4q 9MWlt4xqXtinMlh6+S5ZF8tcnUuV5xIc6aVKWkJXMm178tsmAqssJvY/EaWlpjZJSbqjfmKcqdRX VS6KFhgSHhlTq3Y8Vo+jMmvmDRRfAzjUWpNG8hMHir4xV2Mkipp0UChO1XUjhmUjnfpEYiGuRS0a LrsOovIggSO8YqWJCXXia9eKcSogB6X2gkJCtZqEVNOPKvjJEn+q5h81hFU3somr/nFb93KdQSVG DZNfDTBZbyGqSFIY97qAtOs2SdIOz+TGThTUJQwPDQmSZQnh+qvCJUGh0qWfqnRpqQiJXfcKS5qJ dg757WbD4jSPG6Ih7i5QzWQWdZqWq11ail1WhWsQql1CtKB+qlFz1Kg16m8Yb9UySLcaWQH/byLq p1RdrIRqqHpxVVA6p/C8whNLVuU1VbR16Nir2DoM0k1I0Pu/RrvCi3BnUhLVlor9atXshXk5XBgy D0wRoFOJN/8FdMmYWQplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjQyNjIKZW5kb2JqCjIxIDAg b2JqCjw8IC9MZW5ndGggMjIgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lk dGggMzM0IC9IZWlnaHQgNDcgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRy dWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt 0r9LAnEcxvG7+96ddxWGpXlFwyUp1FAtESRZQluDEU3+mB1aiobo555TNIuES81BRdEUzUHhIhS4 1BYUgeBUF9Rf8HnG57N/3sOLR9OV7bg8qYBjm4au6XbY80dTPJlAcmQo4ihdhRPpXL7EkwkUVrLj sZBhe+lypVrnyQRqR5tLqbBy/Fzl+qnJkwk07qrl6ajpJvPVx/c2Tybw8Xy+NRe33FSp3mx/82QC ndebveygTU0Z4993oLlPTQhlEKEmSvK3Q01qIgWQLW6TmkgBZIvbpCZSANniNqmJFEC2uE1qIgWQ LW6TmkgBZIvbpCZSANniNqmJFEC2uE1qIgWQLW6TmkgBZIvbpCZSANniNqmJFEC2uE1qIgWQLW6T mkgBZIvbpCZSANn632ayUGt8dngyga/W5c6CZzuJ1eP7lzeeTKD1cLqejluh4cWtk4tbnkzg6uyw ONVnWv0Ty2vbBzyZwO5GMeP3KKPLG5vJZHkygfnZST9iG7pye6MDcZ5QIBbpDjA13VCmxZMKmCqw 1H4AccaVLwplbmRzdHJlYW0KZW5kb2JqCjIyIDAgb2JqCjQwOQplbmRvYmoKMTkgMCBvYmoKPDwg L0xlbmd0aCAyMCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA3MjAg L0hlaWdodCA0MDUgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0Jp dHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0EERAAAM AqD+ORbUtfDhQQQSDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAgfbAYWBo4AEMlNyUCmVuZHN0cmVhbQplbmRvYmoKMjAg MCBvYmoKMTI5OQplbmRvYmoKMTYgMCBvYmoKPDwgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMC4zOCA+ PgplbmRvYmoKMTcgMCBvYmoKPDwgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgplbmRvYmoKMTgg MCBvYmoKPDwgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMC43NSA+PgplbmRvYmoKMjUgMCBvYmoKPDwg L0xlbmd0aCAyNiAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZpY2VSR0IgL0ZpbHRlciAvRmxhdGVE ZWNvZGUgPj4Kc3RyZWFtCngBnZZ3VFPZFofPvTe90BIiICX0GnoJINI7SBUEUYlJgFAChoQmdkQF RhQRKVZkVMABR4ciY0UUC4OCYtcJ8hBQxsFRREXl3YxrCe+tNfPemv3HWd/Z57fX2Wfvfde6AFD8 ggTCdFgBgDShWBTu68FcEhPLxPcCGBABDlgBwOFmZgRH+EQC1Py9PZmZqEjGs/buLoBku9ssv1Am c9b/f5EiN0MkBgAKRdU2PH4mF+UClFOzxRky/wTK9JUpMoYxMhahCaKsIuPEr2z2p+Yru8mYlybk oRpZzhm8NJ6Mu1DemiXho4wEoVyYJeBno3wHZb1USZoA5fco09P4nEwAMBSZX8znJqFsiTJFFBnu ifICAAiUxDm8cg6L+TlongB4pmfkigSJSWKmEdeYaeXoyGb68bNT+WIxK5TDTeGIeEzP9LQMjjAX gK9vlkUBJVltmWiR7a0c7e1Z1uZo+b/Z3x5+U/09yHr7VfEm7M+eQYyeWd9s7KwvvRYA9iRamx2z vpVVALRtBkDl4axP7yAA8gUAtN6c8x6GbF6SxOIMJwuL7OxscwGfay4r6Df7n4Jvyr+GOfeZy+77 VjumFz+BI0kVM2VF5aanpktEzMwMDpfPZP33EP/jwDlpzcnDLJyfwBfxhehVUeiUCYSJaLuFPIFY kC5kCoR/1eF/GDYnBxl+nWsUaHVfAH2FOVC4SQfIbz0AQyMDJG4/egJ961sQMQrIvrxorZGvc48y ev7n+h8LXIpu4UxBIlPm9gyPZHIloiwZo9+EbMECEpAHdKAKNIEuMAIsYA0cgDNwA94gAISASBAD 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 nRsDiwb67i6+e/9e3D3pfd790QepD14/zHo4/Wj9Y+zjoicKTyqeqj+t/dX412apvfTsoNdgz7OI Z4+GuEMv/5X5r0/DBc+pzytGtEbqR61Hz4z5jN16sfTF8MuMl9Pjhb8p/rb3ldGrn353+71nYsnE 8GvR65k/St6ovjn61vZt52To5NN3ae+mp4req74/9oH9oftj9MeR6exP+E+Vn40/d3wJ/PJ4Jm1m 5t/3hPP7CmVuZHN0cmVhbQplbmRvYmoKMjYgMCBvYmoKMjYxMgplbmRvYmoKNyAwIG9iagpbIC9J Q0NCYXNlZCAyNSAwIFIgXQplbmRvYmoKMjggMCBvYmoKPDwgL0xlbmd0aCAyOSAwIFIgL0ZpbHRl ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB3VrLct1EEN3PVwy7uVWxotFb7OJgwE4MBF8qC8wC LnmQ+AYiBYfwR/wlPdKcM3reaxc7KlVYlmZ6+nH6dPeY9/qZfq8fPm6t3rXadv/anY7lX5nEOs9i 3bzQL7tVk5fP9bvhRmX10sY4KnP9UeS+0Zm+7Dc8vuoOiPXVYzncdr+cWJ1kOivrqFa7ffdqr4uy cNtjfaOvRAWnQOxOwSarC5tHhS0TbbMor2xda9l8utVVt7T7r9ru9cPt1tm2fal/1OafjY6jRBvt fyYbfdK9iPFg8VDioV+rzLnfc3qJ3Y+x5Hc8NH/gKbz6Ga8+eAG/bVR/KNe82+if9PZCn22dqVFW xnlVJfKUp2WSZ7U81VWW2rQcu8DWOqs7p4ndiWyQf/7H1PKLq++hx0mKpwoP3g/KfD5x0NxE0bXX /iXN8S9e4Qs8NjhTXg0s7BQdBTNNdMoISkCrPop88pFM+0iazzZ6+6Z3VwBElh2Wob1PBK49Gh59 h5g+mJh9xTi+gFG7wRpbORBtN6rDDn30BMCgq7mb8hjzgaedZ9R9Y3/QWpvbqI4lq+JZCryGQYAj flLFFqo99F7pfyrDAP82lUGhf+LLL3iIvJAdLd8/9I6jd3Y3WE3JQRuugjr0t5eozB0w2WHxIAR7 hzoGkmQSiMdxnOjtztHLCI1pnUdxYR13jZLMaAk/UCnUqqwsTG1eCSqLKE1yYbkskt9LnUZxJQmd OYJ1XGrx+8fAknMWELSBBabsGeVZmlqd2VrUzlPHhLa0USnsoRMb2TRPK72X71lUpzZRfNezqysE Byh+gXzzWqeVO0eJs6Yecut71xzMV6HuXoZz+IKMGXRPSaUtQfErkIPcI8wICu3htie4dg1XEWfh 1YzYiM4XYO6TgGYeM9vGdIFq12bAghLNO/P8QU/ZuoyKwqb/y1wfx8zXzXvGzJenUcy8pPWYCdkc ZAuGZCkBMpf5dTKniOvNmCN0UlRCDZlQQhX3HFFXUZnGQhqeE9S9OGLQKRzhCEd0jpDKykrdLMkR eZZEuZUugu+OcoSS/nGFI4QnekJdyO8ljujLYKjpzs1FfFRG6PAGpdfHmAlK9tivsweKIQuaX6rY MhJ8FLd7y0emPE9A7gNpQjNerz0+kYsabo980aSY9QqpTCBDbBtnjcc/FV9lOmUGTOd3QUk4hsri wxsQMJ1w+zNM/AsK3ZcuQ+pJGe2wZbUrOWl+FApHS05a+Bq/DskAp6ewLtQOxsQDaxgAdE7inFwo QJtH9Drds5tiK4wjT+G49dP0INwIwa1v3ztBdJ0KWeRcJw3LvTJx2l27TJTO4ZiM4Lpzj+G2ZVNI 1/WaKwNUNcE7b7moGXiTVh0ej9RoqOhVXjG7TqMsk7EDrUpQ3McnaActGcuVDlmvdsjKMOh0xuEO WeyUEYO+GOb/tAqG/JeiNZ5ImK0eq9qAhzzCBk39YFqDHMJwKYbtpEKqyXx+0PtplUS161mmPbRr ofsi4JpSW0jHHBeFTmPpbPM80UktfVNRh/p4lx5aeq35JH2kPjrY2Ew2FqlQSlxFWSzH71WWymjg mm2+O1of3f3KQn0U8CVVdTSjDhKazBAio4e4uguhnf1FFBNcDQAOQvnKd8yhUhC13C1rQ1JKpAJL JxL5VZq4yyAv+w/KAGY4yPPSJgddw5ILDovfbbSM7TaQ7dlXPltARisWVW5w8y5eGlNmbYzCEBi8 InhN5Bpn1SuwiBdVZ0h4ZZiEdH1IeJj5pTeF+c54MfF/RW0h1SLqPIC7uQnyr81Z6CluIOkTPl9Q BIVTBHuaByN3a3Pp1yrTvIWgK+jU0ADSZIArRV5vxkK7Lm0JlS6GchtyzP8h1VZiKOP0MRlCDP56 6bwzWJlTXhhO3OhbrPu4UZmpzdoMWl4vcTYUf428YHw++BSH56/NBR0sNaK/4UKxwKJLLmkZXx/6 Qe840hBXZdpKA2KIsIAmRpwY+gX44mk4/9p8MTPklvtmVp8SqZQUVtOAdowhPXAEveUXK3PChpCm EKlUpIW+l1zE02AurxK4K5DtyIFdQReBa7CO3XS0NITe8RbGUVN8oDec3cKAa2g3JwCaAiND59d7 RNBrnjAW9MlcABz4hBH4m8ft/ZPwBr/OPUbe5xoex6DwQW6IfLs+rgla9GXqzPUm4BpaLkzWXwqf kbf4QAFNO9cXFoebZ05RLM80hYs/tXA1he+JPklpWvgaOUUviAxvcxiH+VGkLuGtx8pKx5IXVrqs Su6cZ9Vs0Vx3wHTcF562ZXmUYwNP88I1zImi5F1kBJ7ebtxdhwxrCKMyMsJOqZQhdv5dRcsjutBL CFMEY3ED2YyZSCRPelX4rXXz4pKvDtppqywq6u5vQaNLavkbmAtGj1HA6FtfmUM+ofsYTCBYPOBg kHiwsWEte0JzG7qELqQHuOh2o8ssSpQZkDFdMikdjA2RTlLmp3fAO3sFOrRZReN05HVo7C7T/xu9 2vxA5zGj13MfDHqNLEP3hSLGb+REeoA+5rCKCF7RFaQm7iKf8I+U/ESFIOcL4JhLOqz2fx3kan+Y sHWXNjLULoW4Rz0tpPJUlfJAsChDPJyR5hvuoRTK7XUIt3rPkYFcGmAbXsHyUMMGGvuxfGBdV7oR z0ApDcSg2IB3tNl7/ytDIyTEK1S8jqusTqJCkOuYWIU/gLs7zPlsIpdDNjk+mwjnKvmz6fKfXmVi s+l9rmlT5Cd8sXBDiNIW3EO8shno16jQWDYzuD8FTAex8uTON/Q2eQN6nTL6RBN3kb2g6Tj2KvQO 3BKaPJBnN5COqY7a4GJ5cH3Eby1vlCgcOl+bS76DamjFlKETueaAqB/gPKTbBQ4590WEbsGwQK80 eyoLLXgkF/ntXSaOvUDHhwtTnsXtN9CPb14BWZ/6kjLimy4jCQhoRRYdVYalmutwHhdH+5PQW4Sh 6pOwtqeIlsrSIHj1G9hD17U7Om3YqHlRMEEkLrFEUcr9EPqpwf8YM+rQlJH7Y/DCs38Bchkflwpl bmRzdHJlYW0KZW5kb2JqCjI5IDAgb2JqCjIyNTMKZW5kb2JqCjI3IDAgb2JqCjw8IC9UeXBlIC9Q YWdlIC9QYXJlbnQgMyAwIFIgL1Jlc291cmNlcyAzMCAwIFIgL0NvbnRlbnRzIDI4IDAgUiAvTWVk aWFCb3gKWzAgMCA3MjAgNTQwXSAvQW5ub3RzIDM0IDAgUiA+PgplbmRvYmoKMzAgMCBvYmoKPDwg L1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gL0NvbG9yU3BhY2UgPDwgL0NzMSA3IDAgUiA+PiAvRm9u dCA8PCAvVFQzIDMyIDAgUgovVFQxIDggMCBSID4+ID4+CmVuZG9iagozNCAwIG9iagpbIDM1IDAg UiAzNiAwIFIgMzcgMCBSIF0KZW5kb2JqCjM5IDAgb2JqCjw8IC9MZW5ndGggNDAgMCBSIC9GaWx0 ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AZ1XW3PVNhB+169Y3uSHONbNsvtUONBOw2QGGnd4 KH1oDwkQYih2GcJP4l92JWtXviW0zJmJFJ1daffbby/nIzyHj3B6GBUcR1DxMx6hwo/XFThbwXAJ V1FqdfgC3s8VhYI9xar0Dj7jvddg4XxSOFzEByq4OODjKv5zokBbsL4tW3Hs41EPta+DegU3cIEm BAOq8AopKaiVK2vlNShbuka1LaDyow6aKBr/iq6H064LvnVX8DvIrwVUpQYJadUFnMSDijaKNp42 k6yQvySdR+ekfSCRD7QZ/qZdPvqTjv5JF7wtxPQoy7wv4A/ozuBJF1wtra9c02jcOeO1sy3u2sYa ZfwSAqPBNnUADf3WqICftKw9P7v4lewg8w0dNLTRZNkPK5y2nqLJkxNX7FU6eD19IwLIzpUG5MNn iN3MwWjnIpboiGl9CqCqo0Baul5gCM0UQvmggO56wikzwTrUbu7QnhNAyJ+StQz90HN8bsglAujI Un3/ib5Mjgv5lk6OfEOOcMKCL2C4Rrw8Q5F9cC0Yr1Io1wgEH+5FwJugvYfAJgV+XseLjKb1kvwa GIc305GQG0/XREmSIOk2WjkxxklFyNNkCK2JN5CBJV1as2WRWZjHZbxjFouebmPZI4eVA5ZtYSlS O1AGfCAUOHJ3ER1kzK29oE5h2QTVaFW2VR3ydZGmIWO27A7MsHaKrfguZpA2LLQ3zHhRgGpCdWRU ePOOQfzCpGAu3BBmLBRIHsvqS/mZcOS7/tqc3JJ4f0lXsTTFnoPH8WC+vCxIfx20WIMmn7pkEROU E3oYX5FF7NIX9iAVSSFPLEkxfXp69zf66imdbMxG11JNgELscSWEWd1VAu8qANh5Q81XEJim/ksJ BHnOXjKmKXCzPNqiTJ5xkFl7JGdzMRDUZfc8bRzottorVikdFqVOxKaYCyX2ed3ulrplMmG3f3LL oUroCzmQseQP1cOBycPMYG2Szb2Ce/gWju+ATsgM3aw7/I9JgFEROAnkNFeNKZXHzrqqNAhObm5s 8KrCCckpdjYOJ0zgDaqQUR1/jDRXsyKCBTjNO8wYBnbkS8uUnxyFAR/P7KH5T3yTCDgJTGPhyuV5 cQ2Dr25Uqdsa2dT4EqcoHEJVXVqDQ2fATDXeCZx/w6ir0v84zMZxOQyx9w5p6+G2dNYYBVa1ZVU5 ExqCdh7nW+NAaZx7DQ5APY7A+DJym4+m2TdYG/yfTeU0gAuc3Ama2WgcMqxOLWPGhiA5NZxFhsVx agXsvdpoYZqnH1NR49COx08U7nHkU44qc20vpVKBnKVUIg5rMSFJfSabtHeqUeTRXh3Z8VLVOLI2 Ovx8WPTmWcYIyfasMgZyxlwTMpg53F8Yj4BStFfIcT9lkjes8e2Uwdo2hyfnTk6Z2lvQ1GNmv5OW rkpTCBpDnv8LeGLT+AplbmRzdHJlYW0KZW5kb2JqCjQwIDAgb2JqCjEwNzAKZW5kb2JqCjM4IDAg b2JqCjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQgMyAwIFIgL1Jlc291cmNlcyA0MSAwIFIgL0NvbnRl bnRzIDM5IDAgUiAvTWVkaWFCb3gKWzAgMCA3MjAgNTQwXSAvQW5ub3RzIDQzIDAgUiA+PgplbmRv YmoKNDEgMCBvYmoKPDwgL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gL0NvbG9yU3BhY2UgPDwgL0Nz MSA3IDAgUiA+PiAvRm9udCA8PCAvVFQzIDMyIDAgUgovVFQxIDggMCBSID4+ID4+CmVuZG9iago0 MyAwIG9iagpbIDQ0IDAgUiBdCmVuZG9iago0NiAwIG9iago8PCAvTGVuZ3RoIDQ3IDAgUiAvRmls dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGlWNtu20YQfd+vmOZpBSQ0l3fVCHJxC9QBAiS1 4DzUfXAZ2bFjyQ7p2NAH5aF/U7Q/1FnuzllKpGQ3jYBoTe3cz5yd5Rd6T19o76A1VLdkuk9bU8yf Mokpz2Jq5nTW7dp4+IGWfUFlaEwwjsqc7lnvJWX01gkcHHUGYjo6YOOm++OZoSSjrJxGU1UvukcL KsrCisd0RUfsgnUgtlZEyFBh8qgwZUImi/LKTKfEwq9nVHVbu//VbEF7s5mNbXZGv5H+c0JxlJAm /51M6Fn3IJaFkUUpC7dX6UMv8/qtSB/IlmtZNDeyCo9O5dGtV3AxUc4o9iwn9DvN3tDPMxtqlJVx XlUJr/K0TPJsyqtplaUmLddTkBjKprlNGsedsAB//Ndm5G+OfhU/UllUskAafpyotfwMI2RXnfNn iMY/OJdfOD15HqVKv3onOeNHIcBQQue/r1scxXGc0KyWEDiSJOYc5EVB8XoptYm4YrNLn7Eu8DVw pAwoVuYyY1ieP/5rtlCMidRhQv8Q1AS/smqHdB9RSn/wafgk0a9eyGpL0IWhtMrGXNuI8a8x18ps mzT1S64Y7N9VvK/ifTN3K4VmAZABciyuROpCFjV274S9w1IrHXUv4tAj0sivbxql4alsESXiOWn4 B2fqz9AMJJ9LP4oCUQibPhWkF/u+3LIVDjder9IiDSHZ2293F3c92NMgqqV4tedN1kP5nT3YNTKK eAdTzQpODwO0uRvrVMBOMdOEfspLZqaismTbR19HsNKdfMKk9oTZoG+rsSg8d3XEJ0fRCNdzO6fc lOPtbBuS21kxxW9t5yAdaCaEYS32/Vf6l+v7F1w3iSFQg+3eNN7hiT9stHSvsqesO+gM2aAfI83d ewTwonI1Tg4p/EqwJaAbVlR2DOCjtGhBS4DCgcIGnSMWsLkHR3+eiSlsQYvJLwMnaNMJpUecQAZE TwvjwdPQTK3DsOpQ9WDy0ySJqrwDQx8Ddlx4im53x2ILazUSLS4hUSAzeI003IEkGgSAHxfD/ZJz sXEHI4Fu8OgP4U6QMRS2IRA3/7SrVnRj04ImalvrxzJcbe8Zmy9AlsPzmMAj2GnEMmCCnwZ+XrqY lEaUIQUPY4kCliJfyRvxKxTg/3ioNOooUQEYiKqR8tWAD7IPcZv9jrH/U1iiedAPSje9fuBtY5Vl Lkuq8kEuU+Cy7i7Q47LHSFtczHz2P0n2kRsJ4DuiVnoQNW1G3WUUFQkg2rDfw1cblDLd+tEWglJk yH+ULRIIgN/gJ6hBq0MfWlXExYDHRRi+oA2moQ0YEmFsEa2gHdkBjgr8DnWjE9Iofvg0YwT4Izww Q5YXUVLykb1+qK4NBYGVLQh5wO+OdhWUbB7JtB2EIt2bS1h6fZhmEL6qex2BBDwOeJ7M0L8hbZJR FBnVQEKlCoH9uf5j/WjzORIM33H5Imjs9W7tgOLBXA0HFB7Gkmz0erEh/W1svDGxvYxng5oOysEJ fRc4FGd2SMxi4VEeJmLkKFwO0ABYYKTBE2QUvfUZhQB5c5LHUmpMztdJmRy72Y/fBdT8zoCzyVfC 7stDJfNXwoPr5dnFOdXu6zm5vznau4uP8yY6n9+6Jyf6ZLLPdoc16KyaxGdxi1VfDrHqzFntx6dX X+cn+u/Fim3e/POUjm6bi+V5VF+dtm1nEmXfMltb+2bqm8rdkXcM14wYU1YPl1xvRQyLj50igxY8 npCpIkMaSAATSpPg0vqTMOthd3gEJnR/k0Z/+SGBNHiv3tWVYVjdBhhTyJuDB0rHL77spePl4fJy Xt/SSyDlZt7crk708nQxf/5ksYpaV8Ebrqf95cnJxBeVXJGP98dauSsjfAmQzfMsyqb8ekMIQTAk YFy7czARGxAC3zvlLcsuriX3z2J7c4ouLEvJ0NB717bBLlnoi/f/ArpBM8MKZW5kc3RyZWFtCmVu ZG9iago0NyAwIG9iagoxNDQyCmVuZG9iago0NSAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50 IDMgMCBSIC9SZXNvdXJjZXMgNDggMCBSIC9Db250ZW50cyA0NiAwIFIgL01lZGlhQm94ClswIDAg NzIwIDU0MF0gPj4KZW5kb2JqCjQ4IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIC9D b2xvclNwYWNlIDw8IC9DczEgNyAwIFIgL0NzMyA0OSAwIFIgPj4gL0ZvbnQKPDwgL1RUMyAzMiAw IFIgL1RUMSA4IDAgUiAvVFQ0IDUwIDAgUiA+PiA+PgplbmRvYmoKNTIgMCBvYmoKPDwgL0xlbmd0 aCA1MyAwIFIgL04gMSAvQWx0ZXJuYXRlIC9EZXZpY2VHcmF5IC9GaWx0ZXIgL0ZsYXRlRGVjb2Rl ID4+CnN0cmVhbQp4AaVXB1iT1xo+/0jCSthTRtjIMqDsGZkBZA9BVGISSBghBoKAuCjFCtYtDhwV LYpStFoRKC7U4qBuUOu4UEsFpRaruLB6zwmg0Pa59z7Pzf8c/vd8Z3zrPd9/AEBdyJVIsnEAQI44 XxoSy06emZzCpN0DCkAXqAJHoMrl5UnY0dERcAoQ54oF6D3x97ILYEhywwHtNXHsv/YofEEeD846 BVsRP4+XAwDmDQCtjyeR5gOgaAHl5gvyJQiHQqyVFR8bAHEqAAoqo2uhGJiECMQCqYjHDJFyi5gh 3JwcLtPZ0ZkZLc1NF2X/g9Vo0f/zy8mWIbvRzwQ2lbysuHD4doT2l/G5gQi7Q3yYxw2KG8WPC0SJ kRD7A4CbSfKnx0IcBvE8WVYCG2J7iOvTpcEJEPtCfFsoC0V4GgCETrEwPgliY4jDxPMioyD2hFjI ywtIgdgG4hqhgIPyBGNGXBTlc+IhhvqIp9LcWDTfFgDSmy8IDBqRk+lZueHIBjMo/y6vIA7J5TYX CwOQnVAX2ZXJDYuG2AriF4LsEDQf7kMxkORHoz1hnxIozo5Eev0hrhLkyf2FfUpXvjAe5cwZAKpZ vjQerYW2UePTRcEciIMhLhRKQ5Ec+ks9IcmW8wzGhPpOKotFvkMfacECcQKKIeLFUq40KARiGCta K0jEuEAAcsE8+JcHxKAHMEEeEIECOcoAXJADGxNaYA9bCJwlhk0KZ+SBLCjPgLj34zjqoxVojQSO 5IJ0ODMbrhuTMgEfrh9Zh/bIhQ310L598n15o/ocob4A46+BDI4LwQAcF0I0A3TLJYXQvhzYD4BS GRzLgHi8FmfII2cQLbd1xAY0jrT0j2rJhSv4cl0j65CXI7YFQJvFoBiOIdvknpO6JIucCpsXGUH6 kCy5NimcUQQc5HJvuWxM6yfPkW/9H7XOh7aO9358vMZifBrGKx/unA09FI/GJw9a8w7anTW6+lM0 5RrXGMhsJJKqVTGcObVyi5HvzFLpXBHvyurB/5C1T9ka0+4wIW9R43khZwr/b7yAuijXKVcpDyg3 ARO+f6F0Uvoguku5B587H+2JHscHFHvEHBH8K4I+jjFghFk8uQTlIhs+KC9/t/NTzkb2+csOGCHX izjLlu+CGJYDG8qsQJ7XEKifC/ORB6MtgzxF3HCAjBmfuxEt405Ae0mrHmB2rTx1ATDr1ZrPy7XI o91JNqXeUGkvSRevMZBI5tSWDAskn0ZRHgTLI19GglJ71iHWAGsPq571nPXg0wzWLdZvrE7WLjjy hFhPHCWOE81EC9EBmLDXQpwmmuWonmiFz7cf101k+Mg5mshwxDfeKKORj/mjnBrP/XEeyuM1Fi00 fyxTmaMndTz3UHzHMwZl7H+zaHxGJ1aEkezITx3DnOHEoDFsGS4MNgNjmMLHmeEPkTnDjBHB0IWj oQxrRiBj0sd4jJxxZAc674hhY3XhUxVLhqNjTED+CSEPpPKaxR31968+Mid4iSqaaPypwujwZI5o GqkJYzrH4ipnyISTlQA1icACaIcUxhWddjGsJcwJc1AlRlUIMhKbJc/hP5wE0ph0IjmwMkUBJskm XUj/UYyqlTd8UK0aqd4OpB8c9SUDSXdUx8Z7AHcfiReqaP9s/fiTIaB6Uq2pQVRr+d5y76iB1FBq MGBSnZCcOoUaBrEHmpUvKIR3DwACciVFUlGGMJ/JhrccAZMj5jnaM51ZTvDrhu5MaA4Az2PkdyFM p4MnkxaMyEj0ogAleJ/SAvrwq2oOv9YO0Cs34AW/mUHwDhAF4kEymAP9EMJMSmFkS8AyUA4qwRqw EWwFO8EeUAcawGFwDLSC0+AHcAlcBZ3gLvye9IInYBC8BMMYhtEwOqaJ6WMmmCVmhzlj7pgvFoRF YLFYMpaGZWBiTIaVYJ9hldg6bCu2C6vDvsWasdPYBewadgfrwfqxP7C3OIGr4Fq4EW6FT8HdcTYe jsfjs/EMfD5ejJfhq/DNeA1ejzfip/FLeCfejT/BhwhAKBM6hCnhQLgTAUQUkUKkE1JiMVFBVBE1 RAOsAe3EDaKbGCDekFRSk2SSDjCLoWQCySPnk4vJleRWch/ZSJ4lb5A95CD5nkKnGFLsKJ4UDmUm JYOygFJOqaLUUo5SzsEK3Ut5SaVSdWB+3GDekqmZ1IXUldTt1IPUU9Rr1IfUIRqNpk+zo/nQomhc Wj6tnLaFVk87SbtO66W9VlBWMFFwVghWSFEQK5QqVCnsVzihcF3hkcKwopqipaKnYpQiX7FIcbXi HsUWxSuKvYrDSupK1ko+SvFKmUrLlDYrNSidU7qn9FxZWdlM2UM5RlmkvFR5s/Ih5fPKPcpvVDRU bFUCVFJVZCqrVPaqnFK5o/KcTqdb0f3pKfR8+ip6Hf0M/QH9NUOT4cjgMPiMJYxqRiPjOuOpqqKq pSpbdY5qsWqV6hHVK6oDaopqVmoBaly1xWrVas1qt9SG1DXVndSj1HPUV6rvV7+g3qdB07DSCNLg a5Rp7NY4o/FQk9A01wzQ5Gl+prlH85xmrxZVy1qLo5WpVan1jdZlrUFtDe1p2onahdrV2se1u3UI HSsdjk62zmqdwzpdOm91jXTZugLdFboNutd1X+lN0vPXE+hV6B3U69R7q8/UD9LP0l+rf0z/vgFp YGsQY7DAYIfBOYOBSVqTvCbxJlVMOjzpJ0Pc0NYw1nCh4W7DDsMhI2OjECOJ0RajM0YDxjrG/saZ xhuMTxj3m2ia+JqITDaYnDR5zNRmspnZzM3Ms8xBU0PTUFOZ6S7Ty6bDZtZmCWalZgfN7psrmbub p5tvMG8zH7QwsZhhUWJxwOInS0VLd0uh5SbLdstXVtZWSVbLrY5Z9VnrWXOsi60PWN+zodv42cy3 qbG5OZk62X1y1uTtk6/a4rYutkLbatsrdridq53IbrvdNXuKvYe92L7G/paDigPbocDhgEOPo45j hGOp4zHHp1MspqRMWTulfcp7lgsrG37d7jppOIU5lTq1OP3hbOvMc652vjmVPjV46pKpTVOfTbOb Jpi2Y9ptF02XGS7LXdpc/nR1c5W6Nrj2u1m4pbltc7vlruUe7b7S/bwHxWO6xxKPVo83nq6e+Z6H PX/3cvDK8trv1edt7S3w3uP90MfMh+uzy6fbl+mb5vuVb7efqR/Xr8bvZ39zf75/rf8j9mR2Jrue /XQ6a7p0+tHprwI8AxYFnAokAkMCKwIvB2kEJQRtDXoQbBacEXwgeDDEJWRhyKlQSmh46NrQWxwj Do9TxxkMcwtbFHY2XCU8Lnxr+M8RthHSiJYZ+IywGetn3Iu0jBRHHosCUZyo9VH3o62j50d/H0ON iY6pjvk11im2JLY9TjNubtz+uJfx0+NXx99NsEmQJbQlqiamJtYlvkoKTFqX1D1zysxFMy8lGySL kptSaCmJKbUpQ7OCZm2c1Zvqklqe2jXbenbh7AtzDOZkzzk+V3Uud+6RNEpaUtr+tHfcKG4Nd2ge Z962eYO8AN4m3hO+P38Dv1/gI1gneJTuk74uvS/DJ2N9Rr/QT1glHBAFiLaKnmWGZu7MfJUVlbU3 60N2UvbBHIWctJxmsYY4S3w21zi3MPeaxE5SLume7zl/4/xBabi0Ng/Lm53XlK8F/8HskNnIPpf1 FPgWVBe8XpC44EiheqG4sKPItmhF0aPi4OKvF5ILeQvbSkxLlpX0LGIv2rUYWzxvcdsS8yVlS3qX hizdt0xpWdayH0tZpetKX3yW9FlLmVHZ0rKHn4d8fqCcUS4tv7Xca/nOL8gvRF9cXjF1xZYV7yv4 FRcrWZVVle9W8lZe/NLpy81ffliVvuryatfVO9ZQ14jXdK31W7tvnfq64nUP189Y37iBuaFiw4uN czdeqJpWtXOT0ibZpu7NEZubtlhsWbPl3Vbh1s7q6dUHtxluW7Ht1Xb+9us7/Hc07DTaWbnz7Vei r27vCtnVWGNVU7Wburtg9697Eve0f+3+dV2tQW1l7Z97xXu798XuO1vnVle333D/6gP4AdmB/vrU +qvfBH7T1ODQsOugzsHKQ+CQ7NDjb9O+7TocfrjtiPuRhu8sv9t2VPNoRSPWWNQ4eEx4rLspuela c1hzW4tXy9HvHb/f22raWn1c+/jqE0onyk58OFl8cuiU5NTA6YzTD9vmtt09M/PMzbMxZy+fCz93 /ofgH860s9tPnvc533rB80LzRfeLxy65XmrscOk4+qPLj0cvu15uvOJ2pemqx9WWa97XTlz3u376 RuCNH25ybl7qjOy81pXQdftW6q3u2/zbfXey7zz7qeCn4btL4SW+4r7a/aoHhg9q/jX5Xwe7XbuP 9wT2dPwc9/Pdh7yHT37J++Vdb9mv9F+rHpk8qutz7mvtD+6/+njW494nkifDA+W/qf+27anN0+9+ 9/+9Y3DmYO8z6bMPf6x8rv9874tpL9qGoocevMx5Ofyq4rX+631v3N+0v016+2h4wTvau81/Tv6z 5X34+3sfcj58+DctXfAcCmVuZHN0cmVhbQplbmRvYmoKNTMgMCBvYmoKMzM2NwplbmRvYmoKNDkg MCBvYmoKWyAvSUNDQmFzZWQgNTIgMCBSIF0KZW5kb2JqCjU1IDAgb2JqCjw8IC9MZW5ndGggNTYg MCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AaVZS28cNxK+968gcuo5mOazSe5u gmyUYBEDQR4aZA+bHISxbEuQZHtGceAflMP+y/2Kz37NaIS1AE93DatYL37FqvnIfmYf2cuLg2S7 A5Px77BjAn9OCWaNYPtr9iaumhH/zR7GjJ1ka4yCO8v+hNxbZtgPieHiMm4g2OUFNpfx5YVkyjDj Ag/d7j6S7tngBmIX7I5dQgVSQNAuhUmyQVo+SKeYNNx6GQID8zdb5uPS+H+3vWcvt1uybfuG/Yf1 /90wwRXrWf5UG/YiEkR5kOXBlYe0tuu/zzzf/FC4L8qS9+Vh/6E8NdJVIT1mATebLm1a1zxs2O9s +4p9t43eTm6RzElmDKITzVIq2pU/kmGWyQ6G9X9t2PZ2zu39iFtwIQS8sGNH5MBBXX/5ePV4s2MX 7x/e3LxtMgXXQUk7BDhv+TQJitfMSElhRCTO2ZT1X3//cHu9g3OKCYIbJ6z3MJhb7ZQ1oRM8eKOl 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 IDAgb2JqCjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQgMyAwIFIgL1Jlc291cmNlcyA1NyAwIFIgL0Nv bnRlbnRzIDU1IDAgUiAvTWVkaWFCb3gKWzAgMCA3MjAgNTQwXSA+PgplbmRvYmoKNTcgMCBvYmoK PDwgL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gL0NvbG9yU3BhY2UgPDwgL0NzMSA3IDAgUiAvQ3Mz IDQ5IDAgUiA+PiAvRXh0R1N0YXRlCjw8IC9HczQgNjEgMCBSID4+IC9Gb250IDw8IC9UVDYgNTkg MCBSIC9UVDUgNTggMCBSIC9UVDEgOCAwIFIgPj4gPj4KZW5kb2JqCjYxIDAgb2JqCjw8IC9UeXBl IC9FeHRHU3RhdGUgL2NhIDAuMiA+PgplbmRvYmoKNjMgMCBvYmoKPDwgL0xlbmd0aCA2NCAwIFIg L0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBlVfZbtw2FH3nV1zkSQIahqSoramDNJM8 JEDQuCO0D508qLLGGWMWZ0ZJ4Q/qQ38n/qFebqK2WRwDES3zbueee0R+hWv4Ci9mBw7VAbj+OVTA 8CcVDGLJYF/DUu8avPwTtl1DwmHKkNE0hn/Q7x1I+GgMZnMdgMF8hsG5/uU5ByFBpjnNSbXRrzaQ pIkyZ7CGOaagEmAqijPikPCYJjwVwCWNM57ngMZvCsj0Vv0/KTbwoihUbcUS/oLgvxAYFRCAfYoQ nusXzC24W6RuYfaS4L21efPRWc/clp1b7O/dyr8q3avGOliFxARt92xD+AzFB3hXaLQNLBxSDlJi d3RZQui67MMUFgMnWFjwbwjF3dA6yzrWjDLGEIUKjvhBgEjw232z2m3LNcx22+XqdsqrTEFyl9Nx rwRhx+wU7AEAAjbO76ynKKcJSySSwPbROTTZQaWThCub7af97vvqpt7T27oxOxbBInw5FToXEOVC kQ354ovgUkNsHwZiaYswwZRvB9If5fpbvQh+bB4w8v3jTxCScZEqUprYFl4Wad7sV9tbWq3Lw2ER 0t3+3fpg4rytl+W3dfOoqjoXy9ciMpwTmahZ6pfkukKu1WxGSgUGI6ayT5jNXpPTyQWjCCCPkxzh G61Ib06zCKIIvQ/APs5DCF6/397VFc5LcUd0WEZlyuIswxmgcZSKWKrAeSYjHqV9WeiFM8a6q4eK eO1ABkfM5WQjjMrolNYryBiP2aMQZsBjlE98thOqZ+C1YaRiSr1vHjwp0YQMUO8l1+FM61+wlDKN Xz/IItiWm/rKc4NRnijgECyk8UQRo65g9rYIkXDKIoY6Opg+JPy8KZtVZWl/Y1ipx+Hqx9/r8stj rzx0OBHZwufjxSj4TDV4gNwi7Hg7RYM+63og9mjQ+YTgJpEOaCDzjClxQBgo8lb9G+XvjXx7PJ9H 7SfB/X71vWzqTiUa5iEup/1iL6lUgA0aAkYx3Di7ryV+PkUuuTibPel9FUSKNUUT7Dq0Tb+gDNte D4pkgjIc3VF/JwW62xijAEcUKs7w7NDrYG/IBe/+jbTqNYk+R+kwKnVeEUZk88YXUcJrXCvkT9A4 hMfH8+QeJxVfXtGIJjyORhrn+zkiOVb0NI1D/yP58f6P0vCJInc6SiRzKmSMB67BTD3bPLx9QDU1 KvfsHON9FF9BLFMqUpSXoe+LFe1ES3zTx5uEw9XS2Cqa4nxP0fDYrrUeFJ1aowvp21c0PEIoV2Ol P+23VTSv+fo8C+6M9YuRtlcXa9swXl/bjorQje/12VYLNxZTrfaF6M9+R9xOjvdgcnOQmbvORObc bx/mg5+0F5oP6k4hIZj/jhDhrSIiQaQX+C5zC3PLwTc/u6uI3QyBucJwCPAuoh3hVQTd4N5lSPRz 5Wxu0SiWNIfgV3uR+WRt8Gbkry/X/wPUFSuXCmVuZHN0cmVhbQplbmRvYmoKNjQgMCBvYmoKMTA3 OQplbmRvYmoKNjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAzIDAgUiAvUmVzb3VyY2Vz IDY1IDAgUiAvQ29udGVudHMgNjMgMCBSIC9NZWRpYUJveApbMCAwIDcyMCA1NDBdID4+CmVuZG9i ago2NSAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgXSAvQ29sb3JTcGFjZSA8PCAvQ3Mx IDcgMCBSIC9DczMgNDkgMCBSID4+IC9Gb250Cjw8IC9UVDEgOCAwIFIgL1RUNiA1OSAwIFIgL1RU NSA1OCAwIFIgL1RUNCA1MCAwIFIgPj4gPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9MZW5ndGggNjkg MCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AaVVzU7bQBC++ylGPW0kWPbP3nVb KiDqAVQkaKz2QDhExomCiBNs0yoP1ENfqs/S8f7YwQoqbWXJHs/OzM433+zsI1zDIxyNaw55Ddw+ dQ4MHy0YxIpBVcDcWg2UX6HcdYw47HNkVMfwHePeg4JL5zCe2A0YTMa4Obc/hxyEAqVTmkb5yqpW kOikdWfwABNMoU2AtbsEJw4Jj2nCtQCuaGx4mgI6n2VgrKl9R9kKjrKsxZbN4QbIzxEwKoCA/4oR HFoFCwIPgg6Cs43Iufc5uwze42CyDkK1CVKvmgVV4wMsR5HbtLMpR3AL2QV8zGy1XVk4aA5KITsW lhAWl/84YDHwCIGRHyPI7ofexux4M8oYwyrk8EIcLFBETqtqtoX6abNZVw2iDEEZlTpRmiVYPSVS w2SKkjZaxXzAitKguGp5RCoEo0miXd696HLXHSkrX5ftVahU4TWuYhGpw8Lx3XpxkPtVLKzlLtT1 ABenU6/shIF5RNC8LzZmlSouGHYX5QJFKwkLbC+ywEYPx4MULKWJxnZkvut6gNDlvwnIAoalT/dX QBgM7sAtRaSEABSC17rs7Bd98PVTFQwwyg5GS0CdR/3ZcSx5LIOuwzVpYr/W9w2essBlL3qoxnFJ NtXy26wpYNJUy3Jxcwur7VXR1HAM+bqcLxd0UTRfZg9PxZS8cUtvDjpjmj/M6no6egejKDQeTifZ TqcBFSIFmZjd9MMYw05NBY+Ttj+9FHXS8/nR4ozD6foDTnA9a3DSteft5Ly8L/IGTsYW1lW13hRV s52ScrYqjgM0bMU9BbFnrK3KLs6emRaa0K+rfsjKVj8isHNi/yEg1zRhUuAZH7D612g/LevmveuB D9gC7e/LgDkHyZBkOzBeSUMHeD/kV4eUMRUsieX/Q54Uu4jxbwgYB6dmsTE4H2gstYhV26KpUZJL /bwxeQrKhNtMurHvPp6YpBudF+34UEAmn5F7vFQkEGkF1JkguEsONW/DkMET5ozHVsOB4FVkA+FN hCtoO/cKnELuslrgDrGiKZBTP7NwXKOpvRj7YXP9GzQM5OYKZW5kc3RyZWFtCmVuZG9iago2OSAw IG9iago3OTgKZW5kb2JqCjY3IDAgb2JqCjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQgMyAwIFIgL1Jl c291cmNlcyA3MCAwIFIgL0NvbnRlbnRzIDY4IDAgUiAvTWVkaWFCb3gKWzAgMCA3MjAgNTQwXSA+ PgplbmRvYmoKNzAgMCBvYmoKPDwgL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gL0NvbG9yU3BhY2Ug PDwgL0NzMSA3IDAgUiAvQ3MzIDQ5IDAgUiA+PiAvRm9udAo8PCAvVFQ4IDcyIDAgUiAvVFQ2IDU5 IDAgUiAvVFQ3IDcxIDAgUiAvVFQ1IDU4IDAgUiAvVFQxIDggMCBSID4+ID4+CmVuZG9iago3NSAw IG9iago8PCAvTGVuZ3RoIDc2IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGN Vslu2zAQvfMrpjf5EIaUKFHqMW4PDZBDahU9ND2kbtIkiLJIaYp+Uv+yQ4nz6B2BAYsezvrmzcjP dE7PdDwfLC0HsuNnWJLhj88Nlc5Qf0XXo9aG8Cs9rBoqS7sMjfYl/WG/d+TobDKYL8YAhhZzDm7H H0eWckfON7pRy24UdVT5KpgbuqcFpxASMCGKGFmqbKkr63OyTpe1bRpi45OW6lF1/FZtR8dtG2pr r+kbZf9mZHROGcVnPqOjUWDkYOXg5TDpquxTtDk5E+u5qDzKoX+SUxJdiuglOridqSkodB5m9J3a U/rYjmhPsHDWNRXexbJsNdYVH1NhBVnFhWXvZtTebVoXOVuXB6wTLF+mFFWG9JfIrbuV/DnLKe9f chAgrmNlV3JxKSVKzb/lpofOINYX2Wr5RjtvyrrOuVNl4fPSNcropnaFLfw6A/ZUaJ3TpsoDeTb7 f7OZl+SHwof3sZbjjSeKBh4vM06MyXQjtaHIHyLR0ckKnOIXOCzvJ22VwXPKBlpits05tEW6AH4h 5dPFZ8lI/KS2xvCUIdYgqDwKXIgBHfHD85Kou2NK0SPFo5k47Bqrfd0Epq/1KLuYMS2EzGFBWe90 VeUVk9lqZzzPhKu1zyuWaOtt7UvFeyqsJBt/89IZ11pYNttsYpmwaX0J8R7hgTGOiiYPp7CMbGV1 ziHINrqoLZOqo9I02ljH4yOyaUeFbPcsSsUbdgc4Jcdy/sCI8oCHzbUy4IoRGV3xAgxQHLJOA/5B 2v8XncSIJiYsZSITXaGeyLV7CahseJQgmIN+Cb5g2o8kCEgO9SFO0sokID64LOavg47DJRI4RCL3 wl9wHCO233EH859SUKxCZfDDMRPtU0tCQ628iBLbQ+uxsWNDlZA8WYeGHrTe0VCkttUgVIgeCFB4 I4mgg+RJEAOYb0CsRweBD9KSEJJeD3Q7uXob2+I7U4yQX3IIEQruZZH9FbMIispQcQdt0REjZCoX 0AS0r9i1KQ1cJs8QiWvx+Io0eniCCG+RTVQpC9O0h395k/NCWd+2u/iHJbvGv8k6/I1aY+/WH6kF Wg7UcQBugF/K5U7HNnZpygCOaA3bOCeRKCVXsH+FHQInybAK2Pl/2Zov7QplbmRzdHJlYW0KZW5k b2JqCjc2IDAgb2JqCjg0NAplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAz IDAgUiAvUmVzb3VyY2VzIDc3IDAgUiAvQ29udGVudHMgNzUgMCBSIC9NZWRpYUJveApbMCAwIDcy MCA1NDBdIC9Bbm5vdHMgNzkgMCBSID4+CmVuZG9iago3NyAwIG9iago8PCAvUHJvY1NldCBbIC9Q REYgL1RleHQgXSAvQ29sb3JTcGFjZSA8PCAvQ3MxIDcgMCBSID4+IC9Gb250IDw8IC9UVDMgMzIg MCBSCi9UVDEgOCAwIFIgPj4gPj4KZW5kb2JqCjc5IDAgb2JqClsgODAgMCBSIF0KZW5kb2JqCjgz IDAgb2JqCjw8IC9MZW5ndGggODQgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4 AW1SwU7jMBC95yvesT3geJyxnVzJrlZdCWmhkTigPVRRugQltE0L+038JWM3hgohS87z87x5M54c cIsD8vpIaI+guI4ttCxvNCxrTB22MeoLeY/nS2FG+E6olbf4L3mfwLg5C+p1NNBY12JO8XBFMAz2 laqydozUCOddkGsMWEsJoQAdXJKI4MgqR96AWNmSqgoivm5QxtC4Z82IvGlCb80WD1i8LaGVwQLz 1yxxFQmdACXgEzjHZovVrLm+Seo6hewSmPYJfVKbRJ3mBP0yO5t+xDwv8RfNb/xspNX8Tze13f70 shkw9dKwPTdvPJxA40Kf+Wpk/NjhNjvEaYUQ1iy7K+d7ivfIf8mA/x0lT1GwKnRRxfdheV4ieRmj KnbEKLXSwpRhBJLdzuq7btic+teu3g27qR+709S3oSwxVNoZz5YCLFwpBxsmJIYmGMp4YuaMjFWF 9YQRBbMyVkxnZkhMycqxrUoZd9Lhgnv8YC+zyb/5DldQmL4KZW5kc3RyZWFtCmVuZG9iago4NCAw IG9iagozNzgKZW5kb2JqCjgxIDAgb2JqCjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQgODIgMCBSIC9S ZXNvdXJjZXMgODUgMCBSIC9Db250ZW50cyA4MyAwIFIgL01lZGlhQm94ClswIDAgNzIwIDU0MF0g Pj4KZW5kb2JqCjg1IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFn ZUMgL0ltYWdlSSBdIC9Db2xvclNwYWNlIDw8IC9DczEgNyAwIFIKPj4gL0V4dEdTdGF0ZSA8PCAv R3MxIDE2IDAgUiAvR3MyIDE3IDAgUiA+PiAvRm9udCA8PCAvVFQxIDggMCBSID4+IC9YT2JqZWN0 Cjw8IC9JbTEgOSAwIFIgL0ltNCA4NiAwIFIgL0ltNSA4OCAwIFIgPj4gPj4KZW5kb2JqCjg4IDAg b2JqCjw8IC9MZW5ndGggODkgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lk dGggMzM0IC9IZWlnaHQgNDcgL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgNyAwIFIgL1NN YXNrIDkxIDAgUiAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0 cmVhbQp4Ae3QMQEAAADCoPVPbQ0PiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwZe Bga39gABCmVuZHN0cmVhbQplbmRvYmoKODkgMCBvYmoKMjI5CmVuZG9iago4NiAwIG9iago8PCAv TGVuZ3RoIDg3IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDUwIC9I ZWlnaHQgMjEgL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgNyAwIFIgL0ludGVudCAvUGVy Y2VwdHVhbCAvU01hc2sgOTMgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVE ZWNvZGUgPj4Kc3RyZWFtCngBvda5ThxBEAZgPwAkRAhWQiAkAkICAhDG3Ie5zGmuAJ6AF0AgAl7b H1tM0fTurAiQK+ip7vrrrp6Zq6tWuri42N3dPTs7a0V0BWBHR0d7e3s/Gjo9Pb29ve3VOj4+biBv T7Dr6+vLy8sSeX5+/vLywmZf+tslin2l5WEgBZ8eI5ESg+edx8RgnNCtYDw+Pz8PtdDo6Ojw8DDd kZGRFsin406nMzs7Oz09PUBlYmIio4K3/WSi2Wxvb/8ZSGtra4eHhwMhH8KTk5P9/X1+Dw4OpPwh aDiAjErTNRQ1wvcnC4+Pj7+6tLKysrS09LMh29XVVav0ySvp8vJyaFnxKPRsFxcX+WUq1J00Jt+e kBkVZKgHoGvmzSzdh4eHhMlOl/XaVJTqATCQpFaAUipZhwYG9eqGVkgDMD8/z6CYjVOeYyAFkMEE Yx4EE4OH2draKgFzc3M5lixUUQkmFGHo5mXUfeBUDIwsWAZLrdQt+5ved3Z2fncpGpfnwWh3SNfX 10tRBEyKTIYYSqnhCRHjpPjIKA5DJXlvoVIXPzU1RWpKEUZzSwDXZj6kVnyaynMB4BcWFlJRAOoW WiV+c3MztWQafqs3XhiZnJxU1ai2sm9sbKRxDPsKXvUiKp9rDFU5G7TKDrJvCw+TWsILs9a+HRSz kYukSuMR3s3NTUoz8YopEwmendCyKni4EP/d3Z0TUnc8ATmQaec/1Eors0QYwSiUyzi4VkLN3OWV AQdTSkvRF6edZW9siunCDbUtzfZOuzdDzoABcGV6XUdSYN51KXXT844D0M1GVG+GGJsAW11JRmBo heu+c6XLAPAsG9T0G4yCk1oBSulX3qKhG7Oqd2JAbh/LrhWDtjABCHcSR9U3xfbbvzjx0rBKKl8g BoB3J0H4+OK8fxRbHipsJluE9bEWGBvJGmyJV2KHRGqrMsHb+gg6QQlmwde5+X2on9/7J8NatMYA j4+Pj42NxdZaOx4aci/K21rypghJuTzsywfSmo5MpjlJcAAUBMCvglolUi/MVSIxPPrro95GMN/1 h8x1XLGZmRnDU0blJ7kMQMz+kP1gtxGAIRRbGyDOwXzFnp6e0peT+/v7SiuumFV9EulOVTDuXl9f /wHBONK/CmVuZHN0cmVhbQplbmRvYmoKODcgMCBvYmoKODQ1CmVuZG9iago5MyAwIG9iago8PCAv TGVuZ3RoIDk0IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDUwIC9I ZWlnaHQgMjEgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQ ZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGNk89rE0EUx980 TZrG7KyhbabpRqmI4CGIAX+APwiK5EeTg5dCNhGqGyOIXlpqQYiHIorJKkGsiEJSS6l/QNGLf4HS iyRp6EXpOY1/QXc3vtnJFkRC/R5mPu+77zHM2ze9Xl+7gU8O9nq78+MAsNk3VGRY7gcbtb7q5dGi w7VafX0Okx58tJ21WYLBQxGsFiccjRHqIN+V4yNAg8IJYcFoSHCQ7jn6Lr910N67C1DvCqeDFQvd jghWNO1OTlXV24VZT8ymOU3TbmVVNXcFrhdsR81jxcUcetm8VogBkFgykfCiCXA5GU8cxf1UKh5P XBsWDiIFlo6jUmd5FoR/WaZxnpNvxzL3M0DgtWUYZsMHIDdNA/EmLPHdsD7zNHBNKori4USYoky5 EHyMsRDDDpExxiZDzAsSNxgL8DSQH+uVyjFO7iWkV9Vq9aWu6yUJHe+irj8vVZ5cKOsvSuWKXuBp wL62Wq0IJ++XbcS+Fvlh/s3t1taHxrc3P1pb7xvN9jueBkMSlST+GeAIkiPbIH4qUbdEAxL1exDx aqjDzmheeorHtu/l284ZrnG8kpvXEk5DCH/dnI0A2rJtipuHf5qmcY5X+HZMYz/9T3dTxDKsZzCP q+juYX8wOQHpeEaBEzPiD/7HlExBKn8V4HQua0/JwfQNnMTODVj/vQxwX8ziiphhXAdPuwdoGNvq s2c/SJ1XNPhF1c9A4C52MLHGc1eLBy918KvNgDTjJvBIpG5EHUWGpx2MRiNBPuonhSGDSyYEmIim /wB8HoGQCmVuZHN0cmVhbQplbmRvYmoKOTQgMCBvYmoKNTg4CmVuZG9iago5MSAwIG9iago8PCAv TGVuZ3RoIDkyIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDMzNCAv SGVpZ2h0IDQ3IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRz UGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dK/SwJxHMbx u/venXcVhqV5RcMlKdRQLREkWUJbgxFN/pgdWoqG6OeeUzSLhEvNQUXRFM1B4SIUuNQWFIHgVBfU X/B5xuezf97Di0fTle24PKmAY5uGrul22PNHUzyZQHJkKOIoXYUT6Vy+xJMJFFay47GQYXvpcqVa 58kEakebS6mwcvxc5fqpyZMJNO6q5emo6Sbz1cf3Nk8m8PF8vjUXt9xUqd5sf/NkAp3Xm73soE1N GePfd6C5T00IZRChJkryt0NNaiIFkC1uk5pIAWSL26QmUgDZ4japiRRAtrhNaiIFkC1uk5pIAWSL 26QmUgDZ4japiRRAtrhNaiIFkC1uk5pIAWSL26QmUgDZ4japiRRAtrhNaiIFkC1uk5pIAWSL26Qm UgDZ+t9mslBrfHZ4MoGv1uXOgmc7idXj+5c3nkyg9XC6no5boeHFrZOLW55M4OrssDjVZ1r9E8tr 2wc8mcDuRjHj9yijyxubyWR5MoH52Uk/Yhu6cnujA3GeUCAW6Q4wNd1QpsWTCpgqsNR+AHHGlS8K ZW5kc3RyZWFtCmVuZG9iago5MiAwIG9iago0MDkKZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1Bh Z2VzIC9QYXJlbnQgOTUgMCBSIC9Db3VudCA4IC9LaWRzIFsgMiAwIFIgMjcgMCBSIDM4IDAgUiA0 NSAwIFIKNTQgMCBSIDYyIDAgUiA2NyAwIFIgNzQgMCBSIF0gPj4KZW5kb2JqCjgyIDAgb2JqCjw8 IC9UeXBlIC9QYWdlcyAvUGFyZW50IDk1IDAgUiAvQ291bnQgMSAvS2lkcyBbIDgxIDAgUiBdID4+ CmVuZG9iago5NSAwIG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94IFswIDAgNzIwIDU0MF0g L0NvdW50IDkgL0tpZHMgWyAzIDAgUiA4MiAwIFIgXSA+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5 cGUgL0NhdGFsb2cgL1BhZ2VzIDk1IDAgUiAvVmVyc2lvbiAvMS40ID4+CmVuZG9iago3MyAwIG9i agpbIDY3IDAgUiAvWFlaIDAgNTQwIDAgXQplbmRvYmoKNTEgMCBvYmoKWyA0NSAwIFIgL1hZWiAw IDU0MCAwIF0KZW5kb2JqCjYwIDAgb2JqClsgNTQgMCBSIC9YWVogMCA1NDAgMCBdCmVuZG9iago2 NiAwIG9iagpbIDYyIDAgUiAvWFlaIDAgNTQwIDAgXQplbmRvYmoKOTAgMCBvYmoKWyA4MSAwIFIg L1hZWiAwIDU0MCAwIF0KZW5kb2JqCjE1IDAgb2JqClsgMiAwIFIgL1hZWiAwIDU0MCAwIF0KZW5k b2JqCjQyIDAgb2JqClsgMzggMCBSIC9YWVogMCA1NDAgMCBdCmVuZG9iago3OCAwIG9iagpbIDc0 IDAgUiAvWFlaIDAgNTQwIDAgXQplbmRvYmoKMzMgMCBvYmoKWyAyNyAwIFIgL1hZWiAwIDU0MCAw IF0KZW5kb2JqCjgwIDAgb2JqCjw8IC9BIDk3IDAgUiAvQm9yZGVyIFsgMCAwIDAgXSAvVHlwZSAv QW5ub3QgL1N1YnR5cGUgL0xpbmsgL1JlY3QgWzE3NS42NTYyIDM3MS4zMTI1IDUyMy4zNzUgMzg4 Ljc4MTJdCj4+CmVuZG9iago5NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uIC9TIC9VUkkgL1VSSSA5 OCAwIFIgPj4KZW5kb2JqCjk4IDAgb2JqCihodHRwczovL2dpdGh1Yi5jb20vZWNsaXBzZS9Db25m aWdKU1IvbWlsZXN0b25lLzEpCmVuZG9iago0NCAwIG9iago8PCAvQSA5OSAwIFIgL0JvcmRlciBb IDAgMCAwIF0gL1R5cGUgL0Fubm90IC9TdWJ0eXBlIC9MaW5rIC9SZWN0IFsyODIuMjgxMiAyNzgu NjI1IDQ5Ny43MTg4IDMwNC44NDM4XQo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlv biAvUyAvVVJJIC9VUkkgMTAwIDAgUiA+PgplbmRvYmoKMTAwIDAgb2JqCihtYWlsdG86Y29uZmln SnNyLWV4cGVydHNAZWNsaXBzZS5vcmcpCmVuZG9iagozNyAwIG9iago8PCAvQSAxMDEgMCBSIC9C b3JkZXIgWyAwIDAgMCBdIC9UeXBlIC9Bbm5vdCAvU3VidHlwZSAvTGluayAvUmVjdCBbMTY1LjA5 MzggMzAxLjI4MTIgNDU0LjU2MjUgMzI0LjUzMTJdCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5 cGUgL0FjdGlvbiAvUyAvVVJJIC9VUkkgMTAyIDAgUiA+PgplbmRvYmoKMTAyIDAgb2JqCihodHRw czovL2dpdGh1Yi5jb20vZWNsaXBzZS9Db25maWdKU1IvaXNzdWVzKQplbmRvYmoKMzYgMCBvYmoK PDwgL0EgMTAzIDAgUiAvQm9yZGVyIFsgMCAwIDAgXSAvVHlwZSAvQW5ub3QgL1N1YnR5cGUgL0xp bmsgL1JlY3QgWzI2OS4zMTI1IDM3Mi41MzEyIDU2Ny4wNjI1IDM5NS44MTI1XQo+PgplbmRvYmoK MTAzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24gL1MgL1VSSSAvVVJJIDEwNCAwIFIgPj4KZW5kb2Jq CjEwNCAwIG9iagooaHR0cHM6Ly9naXRodWIuY29tL2VjbGlwc2UvbWljcm9wcm9maWxlLWNvbmZp Zy8pCmVuZG9iagozNSAwIG9iago8PCAvQSAxMDUgMCBSIC9Cb3JkZXIgWyAwIDAgMCBdIC9UeXBl IC9Bbm5vdCAvU3VidHlwZSAvTGluayAvUmVjdCBbMTk2LjMxMjUgMzk2LjI4MTIgNDM5LjQ2ODgg NDExLjgxMjVdCj4+CmVuZG9iagoxMDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbiAvUyAvVVJJIC9V UkkgMTA2IDAgUiA+PgplbmRvYmoKMTA2IDAgb2JqCihodHRwczovL2dpdGh1Yi5jb20vZWNsaXBz ZS9Db25maWdKU1IpCmVuZG9iago4IDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVl VHlwZSAvQmFzZUZvbnQgL0ZQT0JPRCtBcmlhbE1UIC9Gb250RGVzY3JpcHRvcgoxMDcgMCBSIC9F bmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZyAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAyMDggL1dp ZHRocyBbCjI3OCAwIDAgMCAwIDAgMCAwIDMzMyAzMzMgMCAwIDI3OCAzMzMgMjc4IDI3OCA1NTYg NTU2IDU1NiA1NTYgNTU2IDU1NiAwIDU1Ngo1NTYgMCAyNzggMjc4IDAgNTg0IDAgNTU2IDEwMTUg NjY3IDY2NyA3MjIgNzIyIDY2NyA2MTEgNzc4IDcyMiAyNzggNTAwIDY2Nwo1NTYgODMzIDcyMiA3 NzggNjY3IDAgNzIyIDY2NyA2MTEgNzIyIDY2NyA5NDQgMCAwIDAgMCAwIDAgMCAwIDAgNTU2IDU1 NiA1MDAKNTU2IDU1NiAyNzggNTU2IDU1NiAyMjIgMjIyIDUwMCAyMjIgODMzIDU1NiA1NTYgNTU2 IDAgMzMzIDUwMCAyNzggNTU2IDUwMAo3MjIgNTAwIDUwMCA1MDAgMCAwIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMzUwIDAgMCAwIDczNyAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAK MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTU2IF0gPj4KZW5kb2Jq CjEwNyAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL0ZvbnROYW1lIC9GUE9CT0QrQXJp YWxNVCAvRmxhZ3MgMzIgL0ZvbnRCQm94IFstNjY1IC0zMjUgMjAwMCAxMDA2XQovSXRhbGljQW5n bGUgMCAvQXNjZW50IDkwNSAvRGVzY2VudCAtMjEyIC9DYXBIZWlnaHQgNzE2IC9TdGVtViA5NSAv TGVhZGluZwozMyAvWEhlaWdodCA1MTkgL1N0ZW1IIDg0IC9BdmdXaWR0aCA0NDEgL01heFdpZHRo IDIwMDAgL0ZvbnRGaWxlMiAxMDggMCBSCj4+CmVuZG9iagoxMDggMCBvYmoKPDwgL0xlbmd0aCAx MDkgMCBSIC9MZW5ndGgxIDMzODQ0IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aax9 eXwURdp/VXX33EfPZO6ZZGYymQlhwEASCIFImiMgIpccJkgkXMohcgTxlqByiKjorniu4LGKB8uQ BAzgLlnl1fVgcddjPVZld9FVV5R1WVaBzPy+VT0B3Hc/7/v+8ctQ1U9XV3fX8dz1VLNi+dXziI20 EolocxbPWkrEX+haQuj1c1auiOnn9gAhhimXL71isX5ecCUhyjdXXHnd5fp55DZCLv9k/rxZc/Vz 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 MXSpMN80pO+eJg70RqdzETuzYQOGJLoWv/SUk8rJN1xG4D4HeqQXPYl2M7LAgry5kxHtY0S7GMWE 3A5Gffcv+t+7FfXdq2i4cLdwD3RSR2J31dHCGOzlOlYYhxjueOzeORH7Hk4RpkJDdZrQhB1p78NO hS2IYq7Dnow0Tixc6eKGZoBwz/jGYY3DM3cubH1g3tjJ/wO13Wu6CmVuZHN0cmVhbQplbmRvYmoK MTA5IDAgb2JqCjI0MDQwCmVuZG9iago1OCAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAv VHJ1ZVR5cGUgL0Jhc2VGb250IC9JTFhCUU4rTW9uYWNvIC9Gb250RGVzY3JpcHRvcgoxMTAgMCBS IC9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZyAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAyMTEg L1dpZHRocyBbCjYwMCAwIDYwMCAwIDAgMCAwIDAgNjAwIDYwMCAwIDAgNjAwIDAgNjAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDYwMCA2MDAKNjAwIDYwMCAwIDYwMCA2MDAgMCA2MDAgNjAwIDAg MCAwIDAgNjAwIDAgMCAwIDAgMCA2MDAgNjAwIDAgMCA2MDAgMCAwIDYwMAowIDAgMCAwIDAgMCAw IDAgMCAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAwIDYwMCA2MDAg NjAwCjYwMCA2MDAgMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDAgMCA2MDAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCA2MDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYwMCA2MDAK XSA+PgplbmRvYmoKMTEwIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5hbWUg L0lMWEJRTitNb25hY28gL0ZsYWdzIDMyIC9Gb250QkJveCBbLTYxMCAtNDIxIDgwNCAxMjIzXQov SXRhbGljQW5nbGUgMCAvQXNjZW50IDEwMDAgL0Rlc2NlbnQgLTI1MCAvQ2FwSGVpZ2h0IDc1OCAv U3RlbVYgOTkgL0xlYWRpbmcKODMgL1hIZWlnaHQgNTQ1IC9TdGVtSCA3NiAvQXZnV2lkdGggNjAw IC9NYXhXaWR0aCA2MDYgL0ZvbnRGaWxlMiAxMTEgMCBSID4+CmVuZG9iagoxMTEgMCBvYmoKPDwg L0xlbmd0aCAxMTIgMCBSIC9MZW5ndGgxIDE0OTg0IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0 cmVhbQp4Aa17CXwURdZ4Vd89PZnpuY8cPZNJJpBrEnJAICQNJBxBwi2Ja5YECDcSJERBQFAwEnBl VdQ1IKvgCe4OEdgh6OIisoK6iuuxHrvqR1AUo6igCKTzveqZQMi6+//9f79vOq+6qqu6qt6r9+od XWm8eVk9ikNrEI0m3FDXMBvpv4F2hOjGmYvqGqJluQohvGZmU6MvWuYehvofZzfMWRQtGzYjxLrn LFwee9+aj1BK2dz6ulnRenQZ7oVz4UG0jKEepcxd1HhrtGx+Gu7hhYtnxuot/4DyDYvqbo2Njz6G su+mukX10faF50i5YfHSxliZ9LOy4eb6WHtcBfMpQRieZqIGZESViEUUkuEqRog/DXU01JJ6CqGX rFLbdHPxeWwR9O5+/T+vrCGZd+dnPXZJufw4t1h8FYqi3p5UwHsC0hDaxXx4Selq5BZfqSG15JcZ QQMyVH+o8vbKP2b/cQ4TWhDakrPgzQVvbjm7gAsNzRn65tC3hp4dykbw/LasQuVFfB7/iPxIwedw R1uyMmFYPF4KnZ7V01rciBoA1gB8CsAgH6SbAc4CwMJBGgag8HeqSxigTBQcSpyUp/BcniIKuQpN 5SoR/PL+FI/yEkAEh9r022FyGxaHD+GDaC2M/SI+KGC4vxArH2wbvFZ5AbfjA2gSPD7QphTAy5G2 4Fq4/alt8CCo3A8V5J19bcoIKD6P9+pt97alZEOjPW0p5JXw3rS1iqAexE8CacQoyhGc3paVpQyT cDKagVOhC3/snoQCDN6vnFICysnBEQar8cqngQrlz9D6QKBUiQQKlScgvzNrl7JjEtS3KY/P0G+P RW/bAxEMDx8NwMP9SmugXGmOZtcHhig3RdvMjN4mR98fHa0fFRiljAhEBHh5OHnSpvSfEcGpbUq/ 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 6Z3lS00Jvf5eZ6f8+Y8k0U1jsJLBcHSDdewwUQ4SYCN+B5kAfMa99gHjgQMTN1bPGDZ1ORyY+E2v 0xPcolW2kYsq5w0ZCacnFh9uka8t9pnnQBXUMMwTTXexYxIlMs1ZcG6DzHKWayaZ5DvvdXbBHLt6 phidoa3vCQ6274O9veaEbx51HRzvqBs2FY530PdfO6O+EwSmjZ0C636e+K2/8MuEZ3CGAKw+I6ya 5coJLXI6i5zNykQD4MR5ISpCZagcjYQTFqOB3StA5V2HxsHJ8AloIvwn0mT9hPg0VAWCcCNqhhNo +/SxMFhUIMPw4+A0GRpzXdXwiZUZ4xbfVDdzMeGXnh/wCDoC8A5AB8A5qGQA4JgOnPNB5P/YcBnA FIBZAI0A6wAeANgJsBfgCMA7AB0A5wBxBsAOkAKQD1AGMAVgFkAjwDqABwB2AuwFOALwDkAHwDkg CgNgB0gByAcoA5gCMKs79oN5oit5jHx9yuQEV+96/YRbr/b6ybReZbISvdtn9ykP6VOG/7C7pv3Q PmVwoq+pV/uUQWCvqR/Rpwz4XlM/pk95fJ/yhD7lyX3K1/cp1/Upz+hTntmnPKtPWf8fxV700/8n sld5Tp/2c/uU5/Upz+9TXtinrP8PZq/+b+pTDwx9Db0a+pTJ2cze67u0T7mxT1kPxfQar6lPPcQQ evfn68NvPv1I39X3feT8JfpfsmlflQplbmRzdHJlYW0KZW5kb2JqCjExMiAwIG9iagoxMDMzNApl bmRvYmoKNTkgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9u dCAvTlNPQVJXK1RyZWJ1Y2hldE1TIC9Gb250RGVzY3JpcHRvcgoxMTMgMCBSIC9FbmNvZGluZyAv TWFjUm9tYW5FbmNvZGluZyAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAxMTEgL1dpZHRocyBbCjMw MSAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTI0IDUyNCAwIDAgMCAwIDUyNCAw IDM2NyAwIDAgMCAwIDAKMCA1OTAgMCA1OTggMCAwIDAgMCAwIDI3OCA0NzcgMCAwIDAgMCAwIDU1 OCAwIDU4MiA0ODEgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMzcwIDUwMiAw IDI4NSAwIDAgMCAwIDU0NiA1MzcgXSA+PgplbmRvYmoKMTEzIDAgb2JqCjw8IC9UeXBlIC9Gb250 RGVzY3JpcHRvciAvRm9udE5hbWUgL05TT0FSVytUcmVidWNoZXRNUyAvRmxhZ3MgMzIgL0ZvbnRC Qm94ClstODYgLTI2MiAxMDgyIDk0M10gL0l0YWxpY0FuZ2xlIDAgL0FzY2VudCA5MzkgL0Rlc2Nl bnQgLTIyMiAvQ2FwSGVpZ2h0IDcyMgovU3RlbVYgMCAvWEhlaWdodCA1MjggL0F2Z1dpZHRoIDQ1 NCAvTWF4V2lkdGggMTExNCAvRm9udEZpbGUyIDExNCAwIFIgPj4KZW5kb2JqCjExNCAwIG9iago8 PCAvTGVuZ3RoIDExNSAwIFIgL0xlbmd0aDEgOTc1NiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+Pgpz dHJlYW0KeAHVOmtglNWV936v+Wbmy8z3zUxmJoQwMxnygAnmRQjBCB8kkwcjkAeYCTBkAoQEChIx kSBW8VFJI5J2WwmtVl0XC9vWOplGCbst0moRhVhtkVqrlm2pWEss7ap1kUz2nDsJYtt9dbc/9kvO Pee+vu+exz33nJt0betuIwrZRXiir9vS2knYY7ke0PC6W7q8ybokE8J1buhs35Ksyz2EiH3tm3ds SNateYQ47+poa12frJPLgOd0QEOyTmcDnt6xpQvm4WMRoKjZvHXdRL8V69lbWnsmvk/egLr3xtYt bYDhyfoIiumdW2/uYlWSFQNc07mtbWI8DRMiPJHsu6qkQNvIEmIgISISjqgkn6wATi7SceCXwg+w AS92vZ7eYi3/gKQDm/A80Xo4DfEPnv3myfG6sfPyIcN9UDWx8dgB8wx3J8oIkX8zXjfeIx+60oO9 +Nh00/JnHqf641pq1YFhqsSLPH8/TFP1uMez9flC340AWwA2A3wGYBPARoAOgHaADQBtAOsB1gGs BWgFiAK0AKwBiACsBlgFsBKgGSAM0ARwA8AKgOUAjQANAPUAdQDLAJYCLAG4HiAEsBigFqAGoBqg CiAIUAkwTEvjW2VAc+I3IiqJb0E0O74ZUXH8M4iK4psQFcY3IiqIdyDKj7cjuia+AdGseBuivPh6 RIH4OkQz42sRzYi3IsqNRxHlxFsQZcfXIMqKRxBNj69G5I+vQpQZX4nIF29G5I2HEXniTYimxW9A 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 RNIJAZG8pMEx+i0oQElZupsMkIPkMHke0jZpMsGAaJxlSYRZJfGiuAgYL5QsSiQs7yOQCUJKwO5l iHMTTyHT49stFE52DsPLNgu/2L7SvsnOW9htkqXByK5QnagDewM/kZklszQzbJDkTSMST7GsDkQO ORpL0SBqYtcw4EeuUgDUPlEA3Fdg6BkI2GeT4iIbZGH+TGJXfeBOIPSUFlLz628nEpfP/nqcnKAZ nxtInLvrQW7KR7Qw8fPE5cRY4lV6DSWJLa/9M917Gq+qIa/CJ/ExuSNJ/UlpgzoPp5+TpJMMMp1k kzwyixSTEjKH1JLF5HpSTxrYHAr/GwX/yQSPBBRZ2rhsYUNTYPm2trXd6zraupY0/jtMxnN5CmVu ZHN0cmVhbQplbmRvYmoKMTE1IDAgb2JqCjYzMTgKZW5kb2JqCjcxIDAgb2JqCjw8IC9UeXBlIC9G b250IC9TdWJ0eXBlIC9UcnVlVHlwZSAvQmFzZUZvbnQgL0ZQQ1VIRStUaW1lcy1Sb21hbiAvRm9u dERlc2NyaXB0b3IKMTE2IDAgUiAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcgL0ZpcnN0Q2hh ciAzMiAvTGFzdENoYXIgMjIyIC9XaWR0aHMgWwoyNTAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDI1 MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDU2NCAwIDAgMCAwCjAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCA1NTYgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDI3OCAwIDAgMCAwIDQ0 NCAwIDQ0NAo1MDAgNDQ0IDAgNTAwIDAgMjc4IDAgMCAwIDc3OCA1MDAgNTAwIDUwMCAwIDMzMyAz ODkgMjc4IDUwMCAwIDAgMCA1MDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg MAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA1NTYgXSA+ PgplbmRvYmoKMTE2IDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5hbWUgL0ZQ Q1VIRStUaW1lcy1Sb21hbiAvRmxhZ3MgMzIgL0ZvbnRCQm94ClstMjAzIC00MjggMTcwMCAxMjcy XSAvSXRhbGljQW5nbGUgMCAvQXNjZW50IDc1MCAvRGVzY2VudCAtMjUwIC9DYXBIZWlnaHQKNjYy IC9TdGVtViAxMDIgL1hIZWlnaHQgNDU0IC9TdGVtSCAzOCAvQXZnV2lkdGggNTkxIC9NYXhXaWR0 aCAxNzIxIC9Gb250RmlsZTIKMTE3IDAgUiA+PgplbmRvYmoKMTE3IDAgb2JqCjw8IC9MZW5ndGgg MTE4IDAgUiAvTGVuZ3RoMSAxMTM5NiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHV egt0VNX5797nMWfe71dmJjlnZjKvzGRmkkkmmWSSnCQzIQ8CAQIkQiQBIg9FQDAVFIW2Kga9Uqio +MLWWqu1TALSYK1yNfVR8a9ttbYU239btP23zb/tLdD7r2TmfvtMoNrr6uq666671j17zn59+/nb 3/6+b+8z22+4cRSp0W5EI3HNppEtSHqMLoTwoTVj24ViWg5ppuyaLes2FdPqNELs3nXX7bimmDad Q8geWT86sraYRpcgTK6HjGIa10BYvn7T9puKacM0hAPXbV4zRzcdh3R008hNc/2js5AWrh/ZNFos HxmGsHzL5m3b59J6CPu23DA6Vx4PICR7pUj7hI8hbkVbkQwdQgpEIT24RoS430JZBmFw0nPiYPo3 q3TpC9ggl9JfbVohhe/tK3Pmhy8d1BxWRiBDcbk8CWUoD1ma7+WH88Oaw1coUj3wrFOoKjyFAmFR p3i7H+v6ccs7IfxYPxZbNfhjKB6XfEHy9ZKP8MeiCiMB7+fwfhn+U+tCiozxjxQN/imKjDaHCygH sZcoOazXUYgdhRiFHqPIS2K3UQheEsrRvRC/F+K7KRZCOeLQZsjZDDmbIWcz5DBoFaT6oIdVkKLR QkiRXhdKqTikWiAVl1Ix6C0GqZiU4in5JJaLz+MPcS9e/JyOf3mrln8B9+BetBrxuGryjoX8i/hJ JCANvlfyPy9qBc3PBc0ZQXOvoLlN0LyI96E+IF8n+VjU9ml+0qdp79O09Gka+jTfwY0oCGRaNAc1 3w1qpoKarwc1twQ1Y0FNZRBqT6BuIH9d8r8sCt2av3ZrXu/WPNCtub1bs7Nbc023xt2tWe3SlLs0 TpdmCt96QndAt1+HFBA9vl9zYD/kXThWFeNbp/Bfnkvw4UiSn8J3TfZHIPjCZP8zfKsF70EhBsOM dqMQAMDjW1BGCnfguBTehOMS/XOTsRBU2zbZ/CgEWyebzwEc16KoRNw4mTgHufWT/VfzrQqcmGuz GmXkpM3KyeaDQK6YjLzFtxpwAEWxD7LLUUIie1FCasUzF8om+/1QnD0OAy2EpjCe5PN7pyh8gv84 tpi/GJ1iIOdCdEoOwS9DU9Qzk/wHMQhEG/+z2NX8T5u7+Wlo4ZX+c/xLsev45yNShW9kXiC9oKdw HB8WVfzXYgf5J2J38V9plshHElJ7h/ql4L4QZJ7g74JmtkWn8LJJ/oYE6UHFXwstboz08Gsg+7Co 46OROn5J7Dv8otgN/MJiT10ZqcXO2PPStP4ialpL+dZYKd/U/BbfmIGZTPIpUn2Sryl2Xh2VplfV PJ8Pw/SYE3xFfxXvgS6xWMkvXcet4pZydVwtF+f8nI8r40o5s9wo18u1crVcKZfLZXJGDnwrN08V /l0Mg2xDZhmIEIxkDPEZKa6H3YFhDxEfUVhOAWtN4cLtOXyPdazF3mJsNqQ6Mp/hDUuZw5nwZz2l uUM9SwZyT5cO5qpJpFA62JOrXSKsHDiJf4M/zGZO4o9IMAhpN/5NdrGU784MDtp7cvP7BqbwR9kN U0DYMJITCfEjyMiJI1CgJ7dMageFICtzEvWTANqhkihE2gGWTUrF7ioWi0ErUCxDAlLsHIpJxWLU OanYW6TYxN5QNjMRAg+KsFG0Vyqyl42SIgB4ceRxqJqZiIEHpZQ5HJfGHVfmpIZKpYYSCSjSDN7g wER1AgpMJKolcuzv5EiRvLhIXiyRV/ydHC2SjxTJR4D8WRD/n+SNtv1rtY6teGjPw9lRb3bYmx2F dzi3b2y9Pbd7tSBM7HmIEIQc7R9evWY9CUdGcw95RzO5Pd6MMLFCqvcP5IcJeYU3M4EezvYPTDws jmYmV4grsl5Y0GN33LM1+6m+7rrS19Z7PqOve0hjW0lfd0j1/qGvLCHfQfrKkr6ypK87xDukvsjs sxuWtG37jGf7jTdevW3b1Yjdjii2B5XCa6fvRyaECr+Gdwbe3+XbwAIAWv67hR/TZbBniAY/TuVb 0siPXGgXegD0yS70c1SLbCDHf42bIX0cvYN+geajq9A07K1n8Dw0jhagFNqEm1A5/iFKoix6FL0I NXagzVC2A30JuaHW84WXIS+JnkFT6CLo4VLUhAaglbvRg4VpdAT9Fl0oPF74HUqg26HEe4VfoRja DVQKOZAP2tyItuBKanvhTtQM/T2Ankc/x9ZCM7KgGpRGGbQOrUeb0PXoi0D7LnoPvY/B3kGVKA79 dKDlaB86iO5HOfQq5vHN+BFGUVhf2IiWwQg2Qr0DMJt30G/Qn7EBv4RfK7gKxwsF6NuL6lGbRH8Y PYIeR18hM0GvgTuHZvASvJz20jUFTaG68DGU1wFqIupBK6HGJnQLzOQB9D30JrhfQK9BnMRL8Ra8 G4/j16g22sRw7ILC52GUcsC7CdxCGP82GOl+dB9g+BR6Ftwr6EeAvAJ7qVZqN3WeNtAis4gdK9xW OFp4sfA2rAiLtIB/D7j5aDu6Ce1Fd8F8DqAT6GX0E1irP6FZzGE9tsEYjuMP8O8pRBmoELT2fXoz PU4fZRDzMPMB28zemX8yf66wrnBf4c3C/4TZU2Bv+GDl68DVQx8taBFaggbRWsD6Wok/HkRH0QQ6 Cdi9h86gD9AsyuMymGcdbsNX4Z34q3gan8Z/pShKT/HQZ4i6k3oM3CnqNPUe7aBL6SBdRV9NH6If o59iDrJr2a3sl9kJ2e+5vfk1+bX5sfwt+RcKPYX7C98snILRuGE0ZE07URfMdhHqhxW8Bu2UsB4n vATjOYaeA3cCRvUd9AI6DWP7JToPPHcJcFBIONgBiThO4TRuhnG24wzuArNnIe6H9VmOB/AI3oh3 4VvxF/HD4B7Bj8M8joM7ib+D38Tv4PfBncN/APdXiqU4yk55KT8lUj3gloMbodZQ66kN1CbqHnBP Ukep49QUjehmuoMeAZejT9Hv0e/Tv6D/i3Ew25mbmf/OnGbOMOeY/8FcZPVsnF3KLpPZZSnZmOwJ 2THuWu5Z7gyaBIy/BXP65LMG7aAOUX9Dt1LzYJ+9Djrv+1QnrMQufAw/AUh9DT0M+6MGbPGzwJki qgKnBPd5wLACHBIDfl+51+MW+LJSl9NRYrdZLWaT0aDXaTVqlVIh52QsQ4OZFMl6O4aFnH84x/i9 nZ2VJO0dgYyRT2QM5wTI6vh0mZxA6o0A6VMlRSh5zT+UFIslxSslsV5Io3RlRMh6hdxbGa8wha9a NADxezLeQSE3I8V7pfh+Ka6BuNsNFYSsfX1GyOFhIZvrGFs/nh3OVEbwSRHQU1ZGgDkADRVpOIfa R3aBOkDtpEQ25/BmsrkSL8SBRvuyI2tzfYsGshmn2z1YGcnh9jXe1TnkbcvpwnPVST0Q277FA9B3 ZWQDaPYc2qde6127b0pEq4dJbGTlQI4eGcxRw6QPQzhn82Zytp0f2v+evBzL3v0JYo7ydYyMjnfk xOF9ADpJDpPUyN2Q6iFaNkfdPjiQw7fD4MggpLEXZ1FUbL7hjUJO4W3zrh/fOAyYo8UDkw7RIWmQ HOobmCwRS6REZeSk/dZGN4BysrK1spWEjW77rcXwN18o5v/wFAntt07/O4Q9i6/ggknf3i4YZk5Y I3XihbHWE2+0Ho2vqQf44BnEMMsNOUX78Li+AdYjx/r0XmH8AhyLhr0zf/h0zshcjsynv4AIkSzn FY7IwTYtcgec0SI9U0jRNzCB8X8bJPbeFMqUngQtQ6+6unIKBQk7bMhAbUiEIpBR4YZYRUTogFF3 kHUTxoXxrrXjQoewHhac8UkhEEbHB2MwnSUDG8DvH3DnxEHnlejo4GADtBMm7UAVKD4+CC1snGsB QikrNguFIpEeotr7BhYN5HZnnDkxMwiQAIud6hvInQLuGhyEUjDHuZFCuGuDfW7MURhzZQXQY8VW wAbdDU0Mjo+TNpcMeN25U+PjznGyJ4rpKYz+MUOcy5hCpAhhlSm8uw/qQuB1O0mG1+11w7AGM9BV HNjr8vLCSfifI1x9ZdxQMwGjrZYQrvm/hHDtv4Jw8l9CuO7KSD+FcD2MuY4gnPp/h3DDJxBmX0Nu CmQTvO8zX0BNzDZIpwqn6HtQD7wxOONUQRiEMEmlUFCWQm6Ik7cGXgX1NFLQpWg90EogbYTXBW20 QJOX70jUSIb3QlpAL5HT0Wc+ZAj//KH/OXmOCt1/5sNeyZVBjAPLRwGhEl7VHEWNNGDP6CClRwZk JBar9Jjnwv//A8vcFJJgDd8CZ/VuvJNaTf2JPsEsYxvYJ2T7uQZuUr5afk6RUxqV31TNV1uhBgW2 D2LvB3udBtzaj1O4i5XBsV10IYbropGSZbpomnIoZFwXRiVyxe/dHYvt4fCC8+ne2fQC/cV0r342 jVrSs2n9efCq4gmD2xCA182OTX38N7bnb89N0T+75IO+MHo/fxZfBMvJhLpF/+sMpik5TdEyDUXL 9Yc4lcVmczwmw7KwaVpTYrZMu29aJnXVO3vLzA32BdnRzEeopXcmlUhgg9GWQvo3quJ4iJFxgWZc W+P3ch5/bU0yUW214IsH+k3DXUZle0VHQ1vL2r5v+YPJWyu0cq6uJjh/zQDMuwn9mZlHO6R5R5+T Vek4zE1htWigq+AODCZMwWzvdvfOzRZmimIzvbNDM9CnxV1LXmbexxcZ5ccX8a6778aP3H33ZTyZ pYCnFgXQ98TOVx3fd1EnSt4opYyisiwsN3brnIFgucnttAXBQHL6K71GT1nARHPuaFlU2cPN4/w2 Omq326iAX67t1zvjzj4n7ZyilM+FZJ6QyThF0ROhYOw0gVt/cWgGwG9J62cMxtRYzH5+hkTgl4JT XFW8fYdYVlKq0iBK7cN+Val2KaZKwNO4lEsRctBLcTgMv3B4z549qKt/h6hQ8NwqJOcEN9an9ekw HkJDKOD3emQWQxlOVNcla8G6rTXU+AO1boGxmBmvx+81mK02i5se+8ry21tK6zz6exYdvPTMjQ2t 11MuzGBz/t8+cq8rmXfz7CvMwQ5/SXj2dywV7Hr90gLVvNvoz12bUfi//7UfvEDn796eVgCjYLDJ EXUTux7WplUsoSlqoRGTixcwGcHHSuxg6RKGfQFPIzcexX4EXFKy4Jz+ol3CApgjlbqzNxrepf9e VdyEvbiLit05+za7/m8PQKPQak/hz/Rd9HGQDiJqhTW/5nf+j/0UF+iQUWrvYeXh1DeU31A9pXlB 8X3Fm7E342cVZ+Nnqv6gmInrlssjVRU2F2/mUUKnw7qu6mgyVRXRKZHMLDcnfFy0OamSNzepWrnW VECvirVWiFU7QrGKoxVUxRSFRGW7PeDMeNqYjAhXJhPtbbCQM+dnYfBD6Y9g4LPpczHU0jJDHGFy yBqLDdlnTpNJkZlJi9rY3OINqm2Yo3wav8xv9GMt40dcM1OGLOW2MmS1mfz6MhwI0mrkB+y0OrZF XoYMAXMZRuFwcWlheeFXfGD996AhvHUIyziZxWyzJqqTteV1SV9tDVl9kgcWPCeD1Za2GNjzhmKp OgvUgOxAMajFVM+2nv3pQLxtRx59aSU2mT3XJqJRpc9SWhl/9usvZ31yTchW5hN89Q2ZJnp+csXi ZbfiXVSFPzq4dUXY1Z26diS9buk1wXaHM6ZOyeutmsbyjgdvzX4xv7nBGtA6awIl/oGmNiG5Y4iC Cwciw2KFGbqHPoo8cLL+hti1z/aEfNrwY8OP7b8yfFTG1aqyqmWqjYqNyg2WDdadih3KnZadVlVQ brNzSr3NTtnsJk6pYTUJmOhBEza1ulReqs3L26co6phPn+HJSvnKyUrpLxpTZIFmhkDknTakUvAj qwKLQ6QR7DdnqVtpRNhYqvcjrRs8paHM5Ec6QeMn0GO9tNmkfQWIEuRi2F/cYWZAvS5ZZ5tDsgYl vNTO56Jxb61arRHcyRseefbg+kXRBleqZcdjD/8Jy16P0Ef39LpT8Wi81mp57Wv3/ykTWGq4qeOO iz96G8MxjGBTBdjMsGNwamtAPxM3PRD8RvDN4BuRX0fOR2RoU/SW6L7oQ9Fnwt+MPh/+TvSt8Ono q/Vnwz+LvlevpcPzQ5RXrjrD9Cldqv2GMsHWV+oqO+CurorHGBvjCVTHvDaarWlgjJUGXJOo5Bqa AwG3ysPEjAHRhm3A8CfSdZlHKzDwPp5INwKEQ4Dh0HlJZ+gJlwNyhM+NBEYi0y/MXMIX5gIJUHtt KhipjdT5USoIXjJc48f1oQY/ImgSMBFw7dYhZLPaQCyBpOJq65oxwZHTYgtNQE0Ck+pwoFYClqqt MSaMSSLDiFgDOhVtCvqcCbWRX1x5lUfvk1GYooSsyqqS7XuEqw91DT/9o9lvbxve13br3fd9mZ4Q LD7c3BSlaLdF7VCzWmpDakfjpbdbazDlpuKNipubHJWYe/anuO7SUytD+NnPX/uLrz5+CeROsPBb uJV4GvSfC26qfioObZBvVG82Xme5mdsh36neZbjNuMu8y3JJe1GnWSq/Rj5smGZeM77LfKT4lU7e JFcobXZaoaQUSlpmS+lpTM+jZS7XmlITd0D2FRkla9WoSu15qq1U/7YSKwn38vTP9AR6vqzIvUPG 1PmZOf4tqowh++xl0QLhHBNXaJ2ItfgcfrNRkiZOZC/DJXZWS/uR1eCCOAaP0cmkVYBluCxLJCky hKwWN9EWsAZa7PVIiAP2nJsweh21+t3Z25Uvfn7D/iZv6JdffeGt/3zpm2lBi59UOau2VdJPv3Ls t+9eP6q+7SfYdfINXN41mly8tmqgC75JJfNt9Muwz01wU7MMbt/eEUe62jrb97Xd1f60k2WDbJ2i 3dGeat9IX1f/pPlJu6LVpI92RsIOxur3OCn/fH1rtQLSdGiZYlF1dYhalujkQwtDL4Xo0LyFieUO oYSjmlPa5cv91vmL9vuP+Ck/EdrqQTaRFAajTdmA1TSFfyhq0yeXZPTWuHW/9YiVscLZcGJwIHYa rAMQEfA7/e4sUc0AKMG65XQ6PTt2dmiMIB0DTxLrRYaXEsD9xJJBQ0ZJ7oLIDUQx+RHBa5wzagDO RmzxWslVCoiNAOFdkNMCSRMtDHK5hQKAIQTmTxKDqCi3E/Qb39355Dv9NV/yLfZYV9vVsXhg9Pmn u3KLLEtN6meNSsN3j5S0lq7qiNZjvPL+/GPHnziV6GlTR23B7NYLvvTI1tU+09jV8vxfxG397VYN BXYb1rItYpIKHB6+8YdZelEF31Bzw0uK1bygU5bGHnr0hdu7yrOZRrXRwAd9g2vNZfHPrfrPoarO nS9TPSCTgiCYtHCHrIJ7wCHR71XrWtQun1DuFQS7oO+zuewHXAKv1zEun/w+Crk4X7kyIGlPQXUf G+CFD/S6k/DF0x8jRhDgDXZhugVMQ4JmUYLoLwBPVsWNSWIOSmK2lpYMF0nUgogAiBJEiRHL5al0 JNzUFI6kd19br9DFVZbq8NGsS07VjeQdbLK5SaJ+bFDW3og/aC0JMVpemypVc/LZ6hsayAdwYtuC HS2roZ+CW+S/ia5kSY1AGYSva6mFoYVpSt+o7+UX0C11le2u0IvwTdeDRNDKLpSGL7vzPUwDci0Q yssbXEHBW9fiahS8XQ2uXsGrFtg+lUt9QNfe5awTuzrbxbpkZbnTzDLq7AKTrjrbbKtu5nmbjlvQ m24MBZV9BCSVtzwWvbfynUqqs3IKzxM1HWKyLtZ6r/iOSHWKkPPtDsYU6IqxDMFwIcHwnH7s/NiQ nViUlyMEUvKA36ufkexLgm5R2c3J56LtYIjioaGqOJgPQxLjfUIKA/ilYC8mqkE4E8AhnIO89spi gFworsLfsy7nuBc4goFKi0XbGZhkWWrN/vnrmgRLd92qNY8n+ZbF+abldRbfda2iL5lama9dVWN2 X9s0Vlk7mE85OFPpcortjjKs167JKLV3XpXt8Lf2lDd/oftIfmReQu5wyZNL8NGR6OJwSV0eLeqn HQ515nZsP9ywuj05+8H8Buwg+hPWlf41/S34glCDvi0Oljh6HdQh7ZNayiHn3fpqPhFzt7hZX4vL LXjoduRKCOWuBpcgeEFPV5MlZBpgCffropU+l4mhuYRRF2q2BXRcototKGu4Gr8vVsM4XbBy304a A9EYTTNEniRrQWKn9cQyTBOzkFiFZDnOzxhShstcThaAHWIkPakPBO2OoN0PwtkRKAmVYbA10kQ9 Dm0FfQjqbo7zky2YrMpnLYckMeZWA/vmpdSmRoVJG3rwao5eWbOgP1N/XUMmv7SrQVzW2ORJitl8 Dz7rUtSuBC52+CnKq67mlYqDy4SqwPxX8pWdIna5lE3X4GeWbQ3aamff6ayiXIAkjWoKvwQ5/jTs fzsqQQfEyKuKDxXUIf2D1iP6Z6wXlKwVmRmbbamyX882yO2JEoozJuSqEkumRMWCWjvh1GV0Kqwi ms3pmDMqjClJsbWk4YQGdlgE2TQ+Ndb5kY22+LFBATETBzEtsvuxlQFPrzT64XMveARH6RwUlqyJ IQewLLKYKa8HvlIR49dI7OEayltXM/vaq5i59Pqp/EU82LD28Xu37Dh8wEfdj035Sz95LX8GO97D j9as+MVk/vS/ff1ZXJ0mPKSQ9NYE/JsmgabFwaQi6T5U8qDvad/XAucCFwJypY8NdPvoJ8txthx7 5Pp2jStxpjza7qr+udcuGCSB6IR7c5qN6qOhRCVvUCtZqswpb/ZyTo5aE1IlqrVsBnQVJSpry4CJ DKf0WE/YqLaGwEN2+EXppDgDZwuJgeaU/hWTa+64aC8P0hwdZP2YKwePCVB+JPPJ/cWD4p49xNLa OlRe1FOSAWWYOxAWLa9k3RXmArkLAIIuK25vPLKu47oHH9vQvTP/8tUJX0JlMq5ip1m2rfqqVeOv /fG5+pCYbNucN2xvf//U1IkVkbxi9hlZpos+NT8MlhaPMwrZnW1C/e9Pv55/Xmupz58cjcq9RdkL tz3UBNgFIbRXnD9dhus8mA9hshtDIFbbiVhVCUwLWLEH9B6+jA6Xl3sYmgmZS03C7lIslMZLqdL7 SvUBGwdCdLcDO8KmQHmMoQHB40eBMypip4ckMTk9RDRN77nTM1vBlDKkihLxEyDiy5JQ2nIEIA7k GsjFy5JwThsR0xNwqbO4FSvTviql25i6yVZdy9Hi58SEWOXz91q91/QN5U1ueVUffmXNUpZxmysU JrtS/8Tg2qZoqL5jazrftKydAgFFeGx9YYZ6g55AVaga06LbhEzYSoU0Kc169QbNDtUO9V61MiSP u6p+ANsS6kzhLx2DOGgIt6jzVNhdJT8QnS63g4fZExokLYQWdhs1SCmHU75GybB8otrIsYkKVbXO gf/oKDgoR4e8tRrFAzhQ44F/y4h6FNiiO6I7paN1HagGTgUA3di79qFzM/p3AbKZsemhrXbJKkrP gBy7rE+aHH+wO85/OIT1TY4ZiM0giPzBYT//IdY7mmYgUtzWrmBIcOsNYE2G5GVYMHjKEBdky5Bb z0tHW+lEQISeKQGWkrRr4YAVhfshYglAui5h8l4+b/H476vBefFGty3QcWfP8uqWLTdvP7Kj9ja5 US+zc7zZ03xjR9/4F9+buDf9gFZtZB3YhxtvaNqypK1igU9su2PFlv1BpSr/HyPJtcsaVnbO2354 7FDQoKZPgl1QAuvSyDwOKn+5WKEwYKeHMlOpMo9MVLmV87hmnUpUulXlYpkbeaiY2WkXDRFzuTd2 +qzjdcfZpmm7fnb6NET1PwYPtcyOveuwv+5oOT2bhh0MViOoXYuXnjuLkyMP2XK1Bq80ZXIQIoxH KU5TGntHea3HYa3ZnhyrsG1iWYU927RVw9KHO2dPzQ9kPT5rWUfDhtQodTUtY5Uqc2reA4zmIuEt I5wh3wN5HUYR9JS4oIfr4a/iruI3cZv4HdxD3EO8gtfwWqpUrmxwaQWvv8EVFrxmsORMLvP+EleJ v1SvVLBhLZKB/G52qyKcK6CM6SIRn14HxxP0XBThmM9P5FW0kqg9crNF5hcD/SfdhoDqA6N5zrab E1VGTznF0H7Gg8uQt5zyAhdIKg90HrGlcfGCArZe8bZK2m1aDOaGx99ErjmKQBFju9aHm0y+NZlW nz99FW6vWlhX0+QYYKlM/dJVy3sXeKyd+I/0o7O7M6H5lSURqrw3zrpnxUyCdul0ZoVHIXt8USDd 3LSf4vqcBs6lJpi58iL9JmAWg2+iXxGvv6oEc3B8C1aEIt2KjLM7ssy5PrJXuTfyQORk5P2ItjOC A2FlJKxUKFWqlNFeYlcqFEuMkUg4olDZS4Amj/koo4WOuUxI5vFlXNo4F79MiyvMaLcZm6v53cBy 1VWx0z8emta/OkQsNmI4zE7DdYUNELWlOFYPljEHnjwt109PAwuBSB8yuck9DpyGbU4iz2tg09S6 LQAXJhx15QhiBEoAtlPA58JPVtujSs3vXqDhf3Q8NoVCuvz3Fh/aVr+6sdKxzlp/i4zJn/IkqvFZ +n4eyzV+bWnp7H9RKnm90mGnKJ5no6FLL/7k5fqmYAIUTUThUFLHu2NcrCjT4RsDU8Fej9rQu+I6 Xp5occXOSAZW25nyihZX9Iw33e5qPePlaGNJ2lDjrtB4Mr50ooJm6toa4aaQS3kEl/4+U0KJ3ALw mzMVqFvjdJZwsrbWGIw7UJGoifkCFY5MY3oJQx9kS9ozU3jxMffWY8VLZ8KFcMHdC3cVemDCoilM 7LFzoAHmrlnJQa4ow4BZiT4Aj9gSkgViNdvlCpvdarfYaZlZUQL3lHITKFJQJ3v2SCaZtzaRBMvi E0IIbizcIKOIyQy5OgD/U/YyCC6w4ghjw6mlbUHzvfdSH/xy+EjYHd3Z2dVfblbjct+QoOhVsEoG Y9y4KN88HA11VNnn3RF29uabXXRyI3Wo6aeYHkjzlc9UtVdv+jLDYL1cpaiqsFZYZ/9jQ73SVaaA Uq55PhqamF21wm3hpDPO3FecwigaJUv0vz3kewIN31gEsHJa4L8zHWgenNO74R8VffCfisXwH4+l 0ql9AP7JckqqjeFLDJZiMoihjr72pZ3ZcP+GTaPbKhdv3jRy/f8CpWtZJwplbmRzdHJlYW0KZW5k b2JqCjExOCAwIG9iago4MjU0CmVuZG9iagozMiAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlw ZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9KRk5KREorTHVjaWRhR3JhbmRlIC9Gb250RGVzY3JpcHRv cgoxMTkgMCBSIC9Ub1VuaWNvZGUgMTIwIDAgUiAvRmlyc3RDaGFyIDMzIC9MYXN0Q2hhciAzMyAv V2lkdGhzIFsgNTA2IF0gPj4KZW5kb2JqCjEyMCAwIG9iago8PCAvTGVuZ3RoIDEyMSAwIFIgL0Zp bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBXZDBbsMgEETvfMUek0OEHak3hFSliuRDm6pu PwDD2kKKF7TGB/99gbqp1MMemJkHw8pL99KRTyDfOdgeE4yeHOMSVrYIA06eRHsG523aT1Wzs4lC ZrjfloRzR2MApQSA/MjIkniDw7MLAx6LdmOH7GmCw9elr0q/xnjHGSlBI7QGh2O+7tXENzMjyIqe Opd9n7ZTpv4Sn1tEyI0y0f5UssHhEo1FNjShUE2j1fWqBZL7Z+3AMO7Jc6tVnSdjav7XKWj54qOS XZlzm7qHWrQU8ISPVcUQy4N1vgGNB3B5CmVuZHN0cmVhbQplbmRvYmoKMTIxIDAgb2JqCjIyNApl bmRvYmoKMTE5IDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5hbWUgL0pGTkpE SitMdWNpZGFHcmFuZGUgL0ZsYWdzIDQgL0ZvbnRCQm94ClstMTA2NyAtNzM3IDE2NDEgMTE2Ml0g L0l0YWxpY0FuZ2xlIDAgL0FzY2VudCA5NjcgL0Rlc2NlbnQgLTIxMSAvQ2FwSGVpZ2h0CjcyMyAv U3RlbVYgMTAzIC9YSGVpZ2h0IDUzMCAvU3RlbUggNzcgL0F2Z1dpZHRoIC00OTAgL01heFdpZHRo IDE2NDAgL0ZvbnRGaWxlMgoxMjIgMCBSID4+CmVuZG9iagoxMjIgMCBvYmoKPDwgL0xlbmd0aCAx MjMgMCBSIC9MZW5ndGgxIDkwMDAgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvVoL eFRFlj5Vt/PupDtPkjQkt2kCkRsILzXBFjqPzggRbCBoNyh0QwdCeEWS8AykRQOxwQfoyHzqKO7M zrc7O8pNJ46dVUxWFz/ZHXaQ9TWrC6jj49uVHWfGEb/Rofeve28Hksn4MZ/u3uTUX3VOnVOnTp2q vpVO25b2RkqnEEnkWRZoWUPaM/5rQNnqjYEWvW0X7cLVW9tkvZ2RTJT48zUtazfq7ZxBovSZazfs iOuLfh1NjYGgLiehf10TGHqbzQJOaNrYtl1v2z8HJm/YvNqQj89HO3FjYLsxPr2LtrwpsLFR7z/+ dWBpy+bWNqP9OLCiZUuj0Z95iczHiIHLaRtZ6BZKQstK02gXUcL59JmYL9PkiSzxjt9/dWGlxfkH ZsO08PR1vvyCwDealaqLW/9oS7enLEAzResvBLCb9MIlD+ZcdHHrxZp0+5BESMXDo3SnEqW1oDtA S5SqDDDryAri1MlrifG53Ak9hc/hzghTfvM8vxHMG9HIKabjkFlBnO1n3ZHCYleU3dtrzaukqgzW TVYQZ3ezLthS2D0G7mNdEa6EnmedMHuOdbjWsHPn88aMff0NFLs68myWXcW7yndJuzoKXjsD1tZt KDa2oNiwGcX6TXm2lZs61/P1mzq3FLa15+SOXduMYs06FI1NObYHGo82nm6UGpu67iwsaM3bWVNg 3wHi/dJiaT5Gth6X6sgD4uSSKiNpGZX9sUGpIpJhVHpTzJWeqjRpCjFpmjQdK6Dwz/nvKRn4QeRF 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 OP+8SDR0sRn5jSxH2Iw9YYShvsEbry327rbt9E3Bt2Jl9VFKwSep+JtMlMW6olQ7rh/fs0krV0Dc UCbL7nW1GBCNpWVgTLajdmsZclOkvtfhE58k84JhWSR/ENPSEILGsK8c+brEi/MSf6qxqy6fbaja 6PPNhp3bhB2ooHvYBwvNhgWgxir/Ezp5y+pxUk30eHHYhmqR6LViC2O6g9hVg2LGYiK+IU/h8e51 +YbPy+CzbzLky3UryNUQTPjCYWFzideBNA+HbWHMw2jjLzwjGS6DESWhgom7oyzkgS7Aob0fuB12 h4i8rxZD3Y64x08pfPf4zRFeMeQ3NFfC2xVahP3fUYQDVxPhVVcV4dVDng6LcBA+rxYRbhw9wiqf +A0xvjKkLj2krlFCumZYSNd+c0ibhhyFV+vgXpMW0ubvKKTrryakG64qpBuHPB0W0k3weaMI6ebR Q/p/kbQtwyJ85zdHeMuQ33CyFd5u0SLc9h1FuP1qIrz1qiK8bcjTYRHeDp+3iQjv+P+L8M4rIowv NhmZzNp9Xv8fCPGFSSKISPwnA9MvZSTjTo6vWEUzAT/4miSJcp5L5CYSVH7q9VNaMX2aPdOeWYIC VulrlxT6OpRAX5HLFIImrOGeKk3F35Ykkl0WfKnkMiVQxrRpGdpQ5afm1TKFFeZbF1yYPi0bls5y Dyvlnj+pGFsYwB2jAnfc0R7IGbeu2hBYvb51Y2DDhtY72wNbtMs5w5f2+jwSKZtoft3C+bXzlZvb V68LBr63JbApaPSKW7WiMjZmPII5VGclPxXt/wVALZWGCmVuZHN0cmVhbQplbmRvYmoKMTIzIDAg b2JqCjQ4MjYKZW5kb2JqCjcyIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVlVHlw ZSAvQmFzZUZvbnQgL1JJVURTUitDb3VyaWVyTmV3UFMtQm9sZE1UIC9Gb250RGVzY3JpcHRvcgox MjQgMCBSIC9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZyAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hh ciAxMjEgL1dpZHRocyBbCjYwMCAwIDYwMCAwIDAgMCAwIDAgNjAwIDYwMCAwIDAgNjAwIDAgNjAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYwMCA2MDAKNjAwIDYwMCAwIDYwMCA2MDAgMCA2MDAg MCAwIDAgMCAwIDYwMCAwIDAgNjAwIDAgMCAwIDYwMCAwIDAgNjAwIDAgMCA2MDAgMAowIDAgMCA2 MDAgMCA2MDAgMCAwIDAgNjAwIDAgNjAwIDAgNjAwIDYwMCA2MDAgMCA2MDAgNjAwIDAgNjAwIDYw MCA2MDAgNjAwCjYwMCAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMCAwIDYwMCBdID4+CmVuZG9iagox MjQgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAvUklVRFNSK0NvdXJp ZXJOZXdQUy1Cb2xkTVQgL0ZsYWdzIDMzIC9Gb250QkJveApbLTE5MiAtNzEwIDcwMiAxMjIyXSAv SXRhbGljQW5nbGUgMCAvQXNjZW50IDgzMyAvRGVzY2VudCAtMzAwIC9DYXBIZWlnaHQgNTkyCi9T dGVtViAwIC9YSGVpZ2h0IDQ0MyAvQXZnV2lkdGggNjAwIC9NYXhXaWR0aCA2MDAgL0ZvbnRGaWxl MiAxMjUgMCBSID4+CmVuZG9iagoxMjUgMCBvYmoKPDwgL0xlbmd0aCAxMjYgMCBSIC9MZW5ndGgx IDI0OTE2IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa18CXxbxbX3zL1aLFmWrmRZ tiRrt+TYkix5je041vWWxA6JnY3YAWOHJCSBgJ2FsCdOWQIBGpe9dEloy5LSgmyH4ARoQmkphaak kEKgBaeveSyPukl5IS1NLH3/GclZoK/f+36/T/KZmTt37jlzz5xz5syZkTesu3YF0ZEBIhJ52dVL +wn/BDYg+82yjRvcqWvLGkIy9Ff0r7w6de28mRB118o1N1yRui4cJKRmyqoVS5enrskZ5FWrUJG6 phXIC1ZdveH61LX/CPLvrulblr5fKOO64+ql16fpkz/i2n3N0qtXIMdn6RQkof6+9axf+PSOIunv X7ci3Z52EpJj4rfOTyguCsnnpI7cRpREIBKJkC68yRrl20SBa3ZfSYjw048W9RjqvsjQZPCnf7io r4EVfpm5d1niun/OU35P80u01fD27AaeU+2a+DYhioOJ65JR5ffO3mF32adwaLGrYbqCkgggChB5 KYZSO6AH0At4EzAGOA7IIG6krO12wA4Au6MkLjFJIoAoQCQxpD2AsbNX21HaAdgJOAFQEllMjGTq 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 bnQgL1BOVU5CTStDb3VyaWVyTmV3UFNNVCAvRm9udERlc2NyaXB0b3IKMTI3IDAgUiAvRW5jb2Rp bmcgL01hY1JvbWFuRW5jb2RpbmcgL0ZpcnN0Q2hhciAzMiAvTGFzdENoYXIgMjExIC9XaWR0aHMg Wwo2MDAgMCA2MDAgMCAwIDAgMCAwIDYwMCA2MDAgMCAwIDYwMCAwIDYwMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCA2MDAgMCA2MDAKMCAwIDYwMCAwIDAgNjAwIDYwMCA2MDAgMCAwIDAgNjAwIDAg MCAwIDAgMCA2MDAgNjAwIDAgMCA2MDAgMCAwIDYwMCAwIDAgMAowIDAgMCAwIDAgMCAwIDYwMCAw IDYwMCA2MDAgNjAwIDYwMCA2MDAgMCA2MDAgNjAwIDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAwCjYw MCA2MDAgNjAwIDYwMCA2MDAgMCAwIDYwMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYwMCA2MDAgXSA+PgplbmRvYmoKMTI3IDAg b2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5hbWUgL1BOVU5CTStDb3VyaWVyTmV3 UFNNVCAvRmxhZ3MgMzMgL0ZvbnRCQm94ClstMTIyIC02ODAgNjIyIDEwMjFdIC9JdGFsaWNBbmds ZSAwIC9Bc2NlbnQgODMzIC9EZXNjZW50IC0zMDAgL0NhcEhlaWdodCA1NzEKL1N0ZW1WIDAgL1hI ZWlnaHQgNDIzIC9BdmdXaWR0aCA2MDAgL01heFdpZHRoIDYwMCAvRm9udEZpbGUyIDEyOCAwIFIg Pj4KZW5kb2JqCjEyOCAwIG9iago8PCAvTGVuZ3RoIDEyOSAwIFIgL0xlbmd0aDEgMjA0NjQgL0Zp bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB1Xx5YFTVufg5597Ztzt39v3OTGayTPY9JGRu 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 yOALDE4myFbIzsouyOQyR1HWAQn30tHIc+2doGd1DilawwhAkp62irXK3IjsZ5y00Q3Rv9vovhbr 19DIULV03PK79jxuBM1Aa4WSq1LSzy1gK5zueQNNALsnHfhBnCpJFciBbka49v1kafx2h9eps1i/ oJTSCZ+BT5aEwec+J2fOHfjbvbQ4Lh2AwAqgIB4OD0sk1Ex6kuSksyouvz6oM1Prs498xnwHHkMV fBNUL8J5BBd4NnVYYUyo1Vg706RZpf7e9LEFr0Lfg7j+fp8Zo/kvw6EEOJ5/CY500wP6cACR+jmN yW82TEUmuq0PSv/VVN/Hu1Re8CJvgNhj9TjYL+OTbFqLNwP/KZWAkXxCPoNv+pMjiYqcksesng5C vUrzvfFVLTxcNFjQKvy94lXyMQzjjV3JYVyEL1m4S/RzlmHDKBr68uFqastH8U/sXotXRWZ9FP/U 4bF61TCQYIbXrLPhPakEnRPpFw/C176U3679pUMB/U8D9AssA3yb40UCnKEKw95HBmgKhagIlcJX zPWoEY2B4/Hj4B8BXYcmwKndFjQJ/uvEFPhK+Xr43wqtoPjOgu/B9knP4FPPkVOvaMvEaRNrJ0Tq lq++efGCmycuuLVlyoSp6P8CJLmaXgplbmRzdHJlYW0KZW5kb2JqCjEyOSAwIG9iagoxNDE4Nwpl bmRvYmoKMTMwIDAgb2JqCiggSlNSMzgyIC0gQ29uZmlnIEFQSSkKZW5kb2JqCjEzMSAwIG9iagoo TWFjIE9TIFggMTAuMTMuMiBRdWFydHogUERGQ29udGV4dCkKZW5kb2JqCjEzMiAwIG9iagooS2V5 bm90ZSkKZW5kb2JqCjEzMyAwIG9iagooRDoyMDE4MDEzMDExMzUxMFowMCcwMCcpCmVuZG9iagox IDAgb2JqCjw8IC9UaXRsZSAxMzAgMCBSIC9Qcm9kdWNlciAxMzEgMCBSIC9DcmVhdG9yIDEzMiAw IFIgL0NyZWF0aW9uRGF0ZSAxMzMgMCBSCi9Nb2REYXRlIDEzMyAwIFIgPj4KZW5kb2JqCnhyZWYK MCAxMzQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMjM1MDY3IDAwMDAwIG4gCjAwMDAwNjA3NTYg MDAwMDAgbiAKMDAwMDE0MTkxMCAwMDAwMCBuIAowMDAwMDAwMDIyIDAwMDAwIG4gCjAwMDAwNjA3 MzUgMDAwMDAgbiAKMDAwMDA2MDg2MCAwMDAwMCBuIAowMDAwMTIyNDI0IDAwMDAwIG4gCjAwMDAx NDM4MzEgMDAwMDAgbiAKMDAwMDA2MTA4NCAwMDAwMCBuIAowMDAwMTExOTIzIDAwMDAwIG4gCjAw MDAxMTE5NDUgMDAwMDAgbiAKMDAwMDExMjM3MyAwMDAwMCBuIAowMDAwMTEyMzkzIDAwMDAwIG4g CjAwMDAxMTI5MjEgMDAwMDAgbiAKMDAwMDE0MjQ2NSAwMDAwMCBuIAowMDAwMTE5NTQ3IDAwMDAw IG4gCjAwMDAxMTk1OTUgMDAwMDAgbiAKMDAwMDExOTY0MCAwMDAwMCBuIAowMDAwMTE4MDM1IDAw MDAwIG4gCjAwMDAxMTk1MjYgMDAwMDAgbiAKMDAwMDExNzQxNSAwMDAwMCBuIAowMDAwMTE4MDE1 IDAwMDAwIG4gCjAwMDAxMTI5NDEgMDAwMDAgbiAKMDAwMDExNzM5NCAwMDAwMCBuIAowMDAwMTE5 Njg4IDAwMDAwIG4gCjAwMDAxMjI0MDMgMDAwMDAgbiAKMDAwMDEyNDgxMCAwMDAwMCBuIAowMDAw MTIyNDYwIDAwMDAwIG4gCjAwMDAxMjQ3ODkgMDAwMDAgbiAKMDAwMDEyNDkzMiAwMDAwMCBuIAow MDAwMDAwMDAwIDAwMDAwIG4gCjAwMDAxOTY1MDUgMDAwMDAgbiAKMDAwMDE0MjU4NCAwMDAwMCBu IAowMDAwMTI1MDQyIDAwMDAwIG4gCjAwMDAxNDM1OTQgMDAwMDAgbiAKMDAwMDE0MzM0NiAwMDAw MCBuIAowMDAwMTQzMTAyIDAwMDAwIG4gCjAwMDAxMjYyNTAgMDAwMDAgbiAKMDAwMDEyNTA4MyAw MDAwMCBuIAowMDAwMTI2MjI5IDAwMDAwIG4gCjAwMDAxMjYzNzIgMDAwMDAgbiAKMDAwMDE0MjUw NCAwMDAwMCBuIAowMDAwMTI2NDgyIDAwMDAwIG4gCjAwMDAxNDI4NjggMDAwMDAgbiAKMDAwMDEy ODA0OCAwMDAwMCBuIAowMDAwMTI2NTA5IDAwMDAwIG4gCjAwMDAxMjgwMjcgMDAwMDAgbiAKMDAw MDEyODE1NSAwMDAwMCBuIAowMDAwMTMxNzgxIDAwMDAwIG4gCjAwMDAyMTk3NDIgMDAwMDAgbiAK MDAwMDE0MjMwNSAwMDAwMCBuIAowMDAwMTI4Mjg5IDAwMDAwIG4gCjAwMDAxMzE3NjAgMDAwMDAg biAKMDAwMDEzNDA2MiAwMDAwMCBuIAowMDAwMTMxODE4IDAwMDAwIG4gCjAwMDAxMzQwNDEgMDAw MDAgbiAKMDAwMDEzNDE2OSAwMDAwMCBuIAowMDAwMTY4OTE0IDAwMDAwIG4gCjAwMDAxODAyNDAg MDAwMDAgbiAKMDAwMDE0MjM0NSAwMDAwMCBuIAowMDAwMTM0MzMyIDAwMDAwIG4gCjAwMDAxMzU1 NTUgMDAwMDAgbiAKMDAwMDEzNDM3OSAwMDAwMCBuIAowMDAwMTM1NTM0IDAwMDAwIG4gCjAwMDAx MzU2NjIgMDAwMDAgbiAKMDAwMDE0MjM4NSAwMDAwMCBuIAowMDAwMTM2NzAyIDAwMDAwIG4gCjAw MDAxMzU4MDggMDAwMDAgbiAKMDAwMDEzNjY4MiAwMDAwMCBuIAowMDAwMTM2ODA5IDAwMDAwIG4g CjAwMDAxODcyODIgMDAwMDAgbiAKMDAwMDIwMjE5NSAwMDAwMCBuIAowMDAwMTQyMjY1IDAwMDAw IG4gCjAwMDAxMzc5MDcgMDAwMDAgbiAKMDAwMDEzNjk2NyAwMDAwMCBuIAowMDAwMTM3ODg3IDAw MDAwIG4gCjAwMDAxMzgwMjkgMDAwMDAgbiAKMDAwMDE0MjU0NCAwMDAwMCBuIAowMDAwMTM4MTM5 IDAwMDAwIG4gCjAwMDAxNDI2MjQgMDAwMDAgbiAKMDAwMDEzODY0MCAwMDAwMCBuIAowMDAwMTQy MDMzIDAwMDAwIG4gCjAwMDAxMzgxNjYgMDAwMDAgbiAKMDAwMDEzODYyMCAwMDAwMCBuIAowMDAw MTM4NzQ4IDAwMDAwIG4gCjAwMDAxMzk0MDkgMDAwMDAgbiAKMDAwMDE0MDQ3MiAwMDAwMCBuIAow MDAwMTM4OTYxIDAwMDAwIG4gCjAwMDAxMzkzODkgMDAwMDAgbiAKMDAwMDE0MjQyNSAwMDAwMCBu IAowMDAwMTQxMjkwIDAwMDAwIG4gCjAwMDAxNDE4OTAgMDAwMDAgbiAKMDAwMDE0MDQ5MiAwMDAw MCBuIAowMDAwMTQxMjcwIDAwMDAwIG4gCjAwMDAxNDIxMDkgMDAwMDAgbiAKMDAwMDE0MjIwMCAw MDAwMCBuIAowMDAwMTQyNzQ1IDAwMDAwIG4gCjAwMDAxNDI4MDEgMDAwMDAgbiAKMDAwMDE0Mjk4 OSAwMDAwMCBuIAowMDAwMTQzMDQ2IDAwMDAwIG4gCjAwMDAxNDMyMjUgMDAwMDAgbiAKMDAwMDE0 MzI4MyAwMDAwMCBuIAowMDAwMTQzNDY5IDAwMDAwIG4gCjAwMDAxNDM1MjcgMDAwMDAgbiAKMDAw MDE0MzcxNyAwMDAwMCBuIAowMDAwMTQzNzc1IDAwMDAwIG4gCjAwMDAxNDQ0OTYgMDAwMDAgbiAK MDAwMDE0NDc1OCAwMDAwMCBuIAowMDAwMTY4ODkxIDAwMDAwIG4gCjAwMDAxNjk1MzAgMDAwMDAg biAKMDAwMDE2OTc5MCAwMDAwMCBuIAowMDAwMTgwMjE3IDAwMDAwIG4gCjAwMDAxODA2MDkgMDAw MDAgbiAKMDAwMDE4MDg1MCAwMDAwMCBuIAowMDAwMTg3MjYwIDAwMDAwIG4gCjAwMDAxODc4ODEg MDAwMDAgbiAKMDAwMDE4ODEzNiAwMDAwMCBuIAowMDAwMTk2NDgzIDAwMDAwIG4gCjAwMDAxOTY5 OTggMDAwMDAgbiAKMDAwMDE5NjY3NSAwMDAwMCBuIAowMDAwMTk2OTc3IDAwMDAwIG4gCjAwMDAx OTcyNTUgMDAwMDAgbiAKMDAwMDIwMjE3MyAwMDAwMCBuIAowMDAwMjAyNjM0IDAwMDAwIG4gCjAw MDAyMDI4ODMgMDAwMDAgbiAKMDAwMDIxOTcxOSAwMDAwMCBuIAowMDAwMjIwMzU2IDAwMDAwIG4g CjAwMDAyMjA2MDAgMDAwMDAgbiAKMDAwMDIzNDg4MCAwMDAwMCBuIAowMDAwMjM0OTAzIDAwMDAw IG4gCjAwMDAyMzQ5NDMgMDAwMDAgbiAKMDAwMDIzNDk5NyAwMDAwMCBuIAowMDAwMjM1MDI0IDAw MDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMTM0IC9Sb290IDk2IDAgUiAvSW5mbyAxIDAgUiAvSUQg WyA8MGM5MWFhZDYzNDEzOWJlYTAzZjZiZjkwOWE2Nzc4ZmQ+CjwwYzkxYWFkNjM0MTM5YmVhMDNm NmJmOTA5YTY3NzhmZD4gXSA+PgpzdGFydHhyZWYKMjM1MTc3CiUlRU9GCg== --001a114cbd743b8a1c05649363cb-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Tue Feb 6 19:18:14 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-lf0-f47.google.com (mail-lf0-f47.google.com [209.85.215.47]) by mail.eclipse.org (Postfix) with ESMTP id 162792DCD2B for ; Tue, 6 Feb 2018 19:18:13 -0500 (EST) Received: by mail-lf0-f47.google.com with SMTP id f137so1602251lfe.4 for ; Tue, 06 Feb 2018 16:18:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=5xBmNhjfK+GfKoIE5SveW3JnUId2B7qBQrJ6FQcIME8=; b=mk+Vl5LOMLtHoZKSoEyQgpQq8JYIx+GRtFq0DLQfd0uq9zx2WpMTDBVLJK0iJkg2XA GP6ubUrxs915i3BhnLuCWu4ehndo+Oh4TEDAVKB/AmHGUaXygxkGrxlQmohwL5gHua73 3GHdj5iN8wPUEVpZRAj/rJTqvOxL3o2AwvYMJ83NuV81ISxj+7DZyuggXVUGOX1Hj7xZ B7haG4zzRpFI0EP05Q+3aLXzyvA8jlgKxZXoejuPQvFHzw6Rs4bWyLxzOlcCvx3il25b iupLRVCIJjBMmjsskVa0dMzcEi1kiGlrmrFy+p4WimozYdESj3a6b9uZkrj7RGciuwA4 kFRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=5xBmNhjfK+GfKoIE5SveW3JnUId2B7qBQrJ6FQcIME8=; b=VNchiNU+2fZGyEFVOGVomdZJWrjSg5Wgc4dbOzlB/hv6J46SFxN0gtzfr6jiCz6Kw1 z3k9viZpMBn5vqEZSMumkNROn1Ked//HGERRXvS7Rf2fPbWtzu19AqsEQ++VBK62T4gH +r5GGUf1mJTc/q3eklroE6AHn5gxCmsoTK28Rvm9mNuO6UAiZ59nQpYckr+J0bF7SJqh WiV9f+kAhv0Qlw5ZDMxulEW3mNVL0FYdumckyKxC5HabJfEnvqZqnXGC6zl5Yzjccnu8 vseNGUZ5dNIHde9kbqr1Tj8hFR40VbLXmDp2wbzNUFTSVW3lH0+h6u1f4hAnEFGZ4dF4 oPAQ== X-Gm-Message-State: APf1xPDNzng99SC5TTClPVw0beI5yOIyMpgvRiCjvOSe2Z43jOutXv3A fXOoZ2H+knwtZsvP9WvyO9Q7ndhDOJ/HFjzInnA= X-Google-Smtp-Source: AH8x227M/oO8P8MTxJHmsvFSr/HI5YtNutjr4owdNusKv6k0sVfv16Waxw8FlTLo5ww0qKGvlZhFlYDtAG+AHmd1lMw= X-Received: by 10.25.221.195 with SMTP id w64mr3127185lfi.78.1517962692492; Tue, 06 Feb 2018 16:18:12 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.89.65 with HTTP; Tue, 6 Feb 2018 16:18:11 -0800 (PST) In-Reply-To: References: From: Werner Keil Date: Wed, 7 Feb 2018 01:18:11 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="94eb2c0c8dd81182c20564943bd2" Subject: Re: [ConfigJSR-experts] Config JSR update X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Feb 2018 00:18:14 -0000 --94eb2c0c8dd81182c20564943bd2 Content-Type: text/plain; charset="UTF-8" Emily, Great, did you have a chance to speak with Andres about JSR 377 synergies, too? Werner On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang wrote: > As promised in last week's hangout, I share some info in last week's JCP > meeting about this JSR. In last week's JCP in Hursley UK, I presented > JSR382, attached below. The presentation went very well and a large number > of JCP members showed great interest in this JSR. Great feedback received. > There were a few technical questions, which I answered without much issue. > There are two major discussions I would like to share. > > 1. This JSR probably will be the final JSR in JCP. We have been offered > the opportunity to try out the new process EE.next (JCP replacement), which > you might have read about it in today's EE4J mailing list. > https://www.eclipse.org/org/workinggroups/eclipse_ee_next_charter.php > > It will be amazing to see Config JSR is the guinea pig for the new > process, the head of the new era sounds better than the tail of the old > technology. > > I would like to warn you not to attach your feelings towards javax.config. > If we use the new process, the only change will be the package name (The > new package name is to be announced soon) > > > 2. Since Config JSR is a useful model, potentially it will be incorporated > into platform edition, being part of JDK. The proposal will be a new JSR to > be proposed to get the packages added to platform. I don't think this will > impact what we are doing though, as we are mainly targeting for JavaEE, > hopefully be to included in EE4J forthcoming releases. > -- > Thanks > Emily > ================= > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > --94eb2c0c8dd81182c20564943bd2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Emily,

Great, did you have a chance to = speak with Andres about JSR 377 synergies, too?

We= rner
=

<= /div>

On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang= <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
As promised in last week&= #39;s hangout, I share some info in last week's JCP meeting about this = JSR. In last week's JCP in Hursley UK, I presented JSR382, attached bel= ow. The presentation went very well and a large number of JCP members showe= d great interest in this JSR. Great feedback received. There were a few tec= hnical questions, which I answered without much issue. There are two major = discussions I would like to share.

1. This JSR probably will b= e the final JSR in JCP. We have been offered the opportunity to try out the= new process EE.next (JCP replacement), which you might have read about it = in today's EE4J mailing list. https://www.ecli= pse.org/org/workinggroups/eclipse_ee_next_charter.php

=
It will be amazing to see Config JSR is the guinea pig for the new pr= ocess, the head of the new era sounds better than the tail of the old techn= ology.

I would like to warn you not to attach your feelings to= wards javax.config. If we use the new process, the only change will be the = package name (The new package name is to be announced soon)


2. Since Config JSR is a= useful model, potentially it will be incorporated into platform edition, b= eing part of JDK. The proposal will be a new JSR to be proposed to get the = packages added to platform. I don't think this will impact what we are = doing though, as we are mainly targeting for JavaEE, hopefully be to includ= ed in EE4J forthcoming releases.
=
--
Thanks
E= mily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang<= br>Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ=

_______________________________________________
ConfigJSR-experts mailing list
ConfigJSR-experts@eclipse.= org
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts

--94eb2c0c8dd81182c20564943bd2-- From DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX Wed Feb 7 03:18:49 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from nelson.canoo.com (gate0.canoo.com [195.141.68.118]) by mail.eclipse.org (Postfix) with SMTP id 610B72DCDAA for ; Wed, 7 Feb 2018 03:18:47 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by nelson.canoo.com (Postfix) with ESMTP id 85066861067 for ; Wed, 7 Feb 2018 09:18:41 +0100 (CET) Received: from nelson.canoo.com ([127.0.0.1]) by localhost (nelson.canoo.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id F-Aawf9MfOIW for ; Wed, 7 Feb 2018 09:18:40 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by nelson.canoo.com (Postfix) with ESMTP id 58AEE86DC44 for ; Wed, 7 Feb 2018 09:18:40 +0100 (CET) X-Virus-Scanned: amavisd-new at canoo.com Received: from nelson.canoo.com ([127.0.0.1]) by localhost (nelson.canoo.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 0WPTvnrfCUaU for ; Wed, 7 Feb 2018 09:18:40 +0100 (CET) Received: from [192.168.10.122] (178-83-101-108.dynamic.hispeed.ch [178.83.101.108]) by nelson.canoo.com (Postfix) with ESMTPSA id 2C0EE86D363 for ; Wed, 7 Feb 2018 09:18:40 +0100 (CET) From: Andres Almiray Content-Type: multipart/alternative; boundary="Apple-Mail=_FA63F426-EFE1-4707-B25B-F2340FAF65A6" Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Date: Wed, 7 Feb 2018 09:18:46 +0100 References: To: ConfigJSR expert discussions In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3273) Subject: Re: [ConfigJSR-experts] Config JSR update X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Feb 2018 08:18:49 -0000 --Apple-Mail=_FA63F426-EFE1-4707-B25B-F2340FAF65A6 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hello everyone, I=E2=80=99m a bit confused by some of these statements, perhaps I missed = something but =E2=80=A6 "This JSR probably will be the final JSR in JCP=E2=80=9D. This appears = to imply JSR-382 is the last JSR to be handled by the JCP process. This = is not true. There are 3 others JSRs in the pipeline already (383, 384, = 385). 383 is for Java 10 (18.3), 384 is for Java 11 (18.9). 385 is = UnitsOeMeasurement 2.0. There will be additional JSRs, one per each Java = SE release. However JSR-382 could very well be the last EE related JSR handled by = the JCP. It=E2=80=99s not yet clear how IP will flow from specification to = implementors to consumers in the EE.next processes. Mike Millinkovich = did mention at the time (Feb 30th) that the process was not final and = some things were still being decided. Gil Tene from Azul Systems asked = Mike in several occasions to give the JCP EC more insight into this = particular topic, to which Mike avoided a direct answer. If JSR-382 is moved to EE.next, thus changing package to something = different to =E2=80=9Cjavax.config=E2=80=9D, it can experience what the = Ee.next process has to offer. However integrating back this = specification into a future JDK would require using the JCP process once = more, picking a compatible package name (i.e, javax.config) and follow = the JCP process to its final stage. Given that JSR-382 is already inside = the JCP it would seem a bit =E2=80=9Cwasteful=E2=80=9D to me to go = outside, test the waters, then get back inside to the JCP. But=E2=80=99s = that=E2=80=99s just me. Finally, =E2=80=9Cmainly targeting JavaEE=E2=80=9D makes me sad as = JSR-377 was counting on leveraging 382 instead of =E2=80=9Creinventing = the wheel=E2=80=9D. All this being said and putting things on the balance, if 382 leaves the = JCP before it reaches final, then none of the ongoing nor future JSRs = (EE, ME, standalone) will be able to rely on the JavaConfig spec. Also = JavaConfig would not be a candidate for future inclusion into the JDK = unless it goes through the JCP process. Bottom line, it=E2=80=99s a matter of having clear goals. Once we know = them it=E2=80=99s easier to figure out how to put together the puzzle = :-) Cheers, Andres =09 Andres Almiray Canoo Engineering AG Kirschgartenstrasse 5 CH-4051 Basel Tel: +41 61 228 94 44 Fax: +41 61 228 94 49 DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX http://www.canoo.com > On 7 Feb 2018, at 00:17, Emily Jiang wrote: >=20 > As promised in last week's hangout, I share some info in last week's = JCP meeting about this JSR. In last week's JCP in Hursley UK, I = presented JSR382, attached below. The presentation went very well and a = large number of JCP members showed great interest in this JSR. Great = feedback received. There were a few technical questions, which I = answered without much issue. There are two major discussions I would = like to share. >=20 > 1. This JSR probably will be the final JSR in JCP. We have been = offered the opportunity to try out the new process EE.next (JCP = replacement), which you might have read about it in today's EE4J mailing = list. = https://www.eclipse.org/org/workinggroups/eclipse_ee_next_charter.php = >=20 > It will be amazing to see Config JSR is the guinea pig for the new = process, the head of the new era sounds better than the tail of the old = technology. >=20 > I would like to warn you not to attach your feelings towards = javax.config. If we use the new process, the only change will be the = package name (The new package name is to be announced soon) >=20 >=20 > 2. Since Config JSR is a useful model, potentially it will be = incorporated into platform edition, being part of JDK. The proposal will = be a new JSR to be proposed to get the packages added to platform. I = don't think this will impact what we are doing though, as we are mainly = targeting for JavaEE, hopefully be to included in EE4J forthcoming = releases. > --=20 > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --Apple-Mail=_FA63F426-EFE1-4707-B25B-F2340FAF65A6 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Hello everyone,

I=E2=80=99m a bit confused by some of these statements, = perhaps I missed something but =E2=80=A6

"This JSR probably will be the final = JSR in JCP=E2=80=9D. This appears to imply JSR-382 is the last JSR to be = handled by the JCP process. This is not true. There are 3 others JSRs in = the pipeline already (383, 384, 385). 383 is for Java 10 (18.3), 384 is = for Java 11 (18.9). 385 is UnitsOeMeasurement 2.0. There will be = additional JSRs, one per each Java SE release.
However JSR-382 could very well be the last EE related JSR = handled by the JCP.

It=E2=80=99s not yet clear how IP will flow from = specification to implementors to consumers in the EE.next processes. = Mike Millinkovich did mention at the time (Feb 30th) that the process = was not final and some things were still being decided. Gil Tene from = Azul Systems asked Mike in several occasions to give the JCP EC more = insight into this particular topic, to which Mike avoided a direct = answer.

If = JSR-382 is moved to EE.next, thus changing package to something = different to =E2=80=9Cjavax.config=E2=80=9D, it can experience what the = Ee.next process has to offer. However integrating back this = specification into a future JDK would require using the JCP process once = more, picking a compatible package name (i.e, javax.config) and follow = the JCP process to its final stage. Given that JSR-382 is already inside = the JCP it would seem a bit =E2=80=9Cwasteful=E2=80=9D to me to go = outside, test the waters, then get back inside to the JCP. But=E2=80=99s = that=E2=80=99s just me.

Finally, =E2=80=9Cmainly targeting JavaEE=E2=80=9D makes me = sad as JSR-377 was counting on leveraging 382 instead of =E2=80=9Creinvent= ing the wheel=E2=80=9D.

All this being said and putting things on the balance, if 382 = leaves the JCP before it reaches final, then none of the ongoing nor = future JSRs (EE, ME, standalone) will be able to rely on the JavaConfig = spec. Also JavaConfig would not be a candidate for future inclusion into = the JDK unless it goes through the JCP process.

Bottom line, it=E2=80=99s a matter of = having clear goals. Once we know them it=E2=80=99s easier to figure out = how to put together the puzzle :-)

Cheers,
Andres

 
Andres Almiray
Canoo Engineering AG
Kirschgartenstrasse 5
CH-4051 Basel

Tel: +41 61 228 94 44
Fax: +41 61 228 94 49

DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX
http://www.canoo.com

On 7 Feb 2018, at 00:17, Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:

As promised = in last week's hangout, I share some info in last week's JCP meeting = about this JSR. In last week's JCP in Hursley UK, I presented JSR382, = attached below. The presentation went very well and a large number of = JCP members showed great interest in this JSR. Great feedback received. = There were a few technical questions, which I answered without much = issue. There are two major discussions I would like to share.

1. This JSR probably will be the final = JSR in JCP. We have been offered the opportunity to try out the new = process EE.next (JCP replacement), which you might have read about it in = today's EE4J mailing list. https://www.eclipse.org/org/workinggroups/eclipse_ee_next_chart= er.php

It will be amazing to see = Config JSR is the guinea pig for the new process, the head of the new = era sounds better than the tail of the old technology.

I would like to warn you not to attach your feelings = towards javax.config. If we use the new process, the only change will be = the package name (The new package name is to be announced soon)


2. Since Config JSR is a = useful model, potentially it will be incorporated into platform edition, = being part of JDK. The proposal will be a new JSR to be proposed to get = the packages added to platform. I don't think this will impact what we = are doing though, as we are mainly targeting for JavaEE, hopefully be to = included in EE4J forthcoming releases.
--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
<JSR382 - = Config = API.pdf>_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change = your delivery options, retrieve your password, or unsubscribe from this = list, visit
https://dev.eclipse.org/mailman/listinfo/configjsr-experts

= --Apple-Mail=_FA63F426-EFE1-4707-B25B-F2340FAF65A6-- From DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX Wed Feb 7 03:19:39 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from nelson.canoo.com (gate0.canoo.com [195.141.68.118]) by mail.eclipse.org (Postfix) with SMTP id 510D32DCDAA for ; Wed, 7 Feb 2018 03:19:38 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by nelson.canoo.com (Postfix) with ESMTP id E647F86DD51 for ; Wed, 7 Feb 2018 09:19:32 +0100 (CET) Received: from nelson.canoo.com ([127.0.0.1]) by localhost (nelson.canoo.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id XLi74F6uvTu1 for ; Wed, 7 Feb 2018 09:19:31 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by nelson.canoo.com (Postfix) with ESMTP id E1EA386484A for ; Wed, 7 Feb 2018 09:19:31 +0100 (CET) X-Virus-Scanned: amavisd-new at canoo.com Received: from nelson.canoo.com ([127.0.0.1]) by localhost (nelson.canoo.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id WoBchYDliBNS for ; Wed, 7 Feb 2018 09:19:31 +0100 (CET) Received: from [192.168.10.122] (178-83-101-108.dynamic.hispeed.ch [178.83.101.108]) by nelson.canoo.com (Postfix) with ESMTPSA id BB4E9861067 for ; Wed, 7 Feb 2018 09:19:31 +0100 (CET) From: Andres Almiray Content-Type: multipart/alternative; boundary="Apple-Mail=_FB2734F4-8590-42EA-BCFF-B43F4D302676" Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Date: Wed, 7 Feb 2018 09:19:38 +0100 References: To: ConfigJSR expert discussions In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3273) Subject: Re: [ConfigJSR-experts] Config JSR update X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Feb 2018 08:19:39 -0000 --Apple-Mail=_FB2734F4-8590-42EA-BCFF-B43F4D302676 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hi Werner, We briefly discussed the topic. There are two additional issues on the = tracker that came out as a result https://github.com/eclipse/ConfigJSR/issues/51 = https://github.com/eclipse/ConfigJSR/issues/52 = Cheers, Andres =09 Andres Almiray Canoo Engineering AG Kirschgartenstrasse 5 CH-4051 Basel Tel: +41 61 228 94 44 Fax: +41 61 228 94 49 DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX http://www.canoo.com > On 7 Feb 2018, at 01:18, Werner Keil wrote: >=20 > Emily, >=20 > Great, did you have a chance to speak with Andres about JSR 377 = synergies, too? >=20 > Werner >=20 >=20 > On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang > wrote: > As promised in last week's hangout, I share some info in last week's = JCP meeting about this JSR. In last week's JCP in Hursley UK, I = presented JSR382, attached below. The presentation went very well and a = large number of JCP members showed great interest in this JSR. Great = feedback received. There were a few technical questions, which I = answered without much issue. There are two major discussions I would = like to share. >=20 > 1. This JSR probably will be the final JSR in JCP. We have been = offered the opportunity to try out the new process EE.next (JCP = replacement), which you might have read about it in today's EE4J mailing = list. = https://www.eclipse.org/org/workinggroups/eclipse_ee_next_charter.php = >=20 > It will be amazing to see Config JSR is the guinea pig for the new = process, the head of the new era sounds better than the tail of the old = technology. >=20 > I would like to warn you not to attach your feelings towards = javax.config. If we use the new process, the only change will be the = package name (The new package name is to be announced soon) >=20 >=20 > 2. Since Config JSR is a useful model, potentially it will be = incorporated into platform edition, being part of JDK. The proposal will = be a new JSR to be proposed to get the packages added to platform. I = don't think this will impact what we are doing though, as we are mainly = targeting for JavaEE, hopefully be to included in EE4J forthcoming = releases. > --=20 > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >=20 > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts = >=20 > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --Apple-Mail=_FB2734F4-8590-42EA-BCFF-B43F4D302676 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii Hi Werner,

We briefly discussed the topic. There are two additional = issues on the tracker that came out as a result



Cheers,
Andres

 
Andres Almiray
Canoo Engineering AG
Kirschgartenstrasse 5
CH-4051 Basel

Tel: +41 61 228 94 44
Fax: +41 61 228 94 49

DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX
http://www.canoo.com

On 7 Feb 2018, at 01:18, Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrote:

Emily,

Great, did you have a chance to speak with Andres about JSR = 377 synergies, too?

Werner


On Wed, Feb 7, 2018 at 12:17 = AM, Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
As promised = in last week's hangout, I share some info in last week's JCP meeting = about this JSR. In last week's JCP in Hursley UK, I presented JSR382, = attached below. The presentation went very well and a large number of = JCP members showed great interest in this JSR. Great feedback received. = There were a few technical questions, which I answered without much = issue. There are two major discussions I would like to share.

1. This JSR probably will be the final = JSR in JCP. We have been offered the opportunity to try out the new = process EE.next (JCP replacement), which you might have read about it in = today's EE4J mailing list. https://www.eclipse.org/org/workinggroups/eclipse_ee_next_charter.php

It will be = amazing to see Config JSR is the guinea pig for the new process, the = head of the new era sounds better than the tail of the old = technology.

I would like to warn you = not to attach your feelings towards javax.config. If we use the new = process, the only change will be the package name (The new package name = is to be announced soon)


2. Since = Config JSR is a useful model, potentially it will be incorporated into = platform edition, being part of JDK. The proposal will be a new JSR to = be proposed to get the packages added to platform. I don't think this = will impact what we are doing though, as we are mainly targeting for = JavaEE, hopefully be to included in EE4J forthcoming releases.
--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ

_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe = from this list, visit
https://dev.eclipse.org/mailman/listinfo/configjsr-experts

_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change = your delivery options, retrieve your password, or unsubscribe from this = list, visit
https://dev.eclipse.org/mailman/listinfo/configjsr-experts

= --Apple-Mail=_FB2734F4-8590-42EA-BCFF-B43F4D302676-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Thu Feb 8 09:11:29 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-lf0-f53.google.com (mail-lf0-f53.google.com [209.85.215.53]) by mail.eclipse.org (Postfix) with ESMTP id E32C92DD022 for ; Thu, 8 Feb 2018 09:11:28 -0500 (EST) Received: by mail-lf0-f53.google.com with SMTP id o89so6573671lfg.10 for ; Thu, 08 Feb 2018 06:11:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=9dxT1GgjsZZ9HrA+2oCftOJvUwyvIOpVgrmYFRxlSKg=; b=m1SLy7NUFnY8UlSxlcCUAYY0tqBGrbe7Zb3NJ92d2IA7cGtKSkVstvjXf78n4vPPg1 IKeMAgCiph6h9zLlzEGp+/NNt6aGKcYF3+9qdL5CfmDdPTfygqrbyzg7D8YB67Asnn3N oFn/hqDHsmN/MeaNUqQHMbcIWkj5Ulu9bbfNZ5UMvMMwbuiLb1Hd6a/EM1y2Apjddd/K negv50vAz/hhYxaGYwPBP3S4Gn+Zi7uxRC3sban2+ihfhDslXXexrDJ03j/tZE7iX+wz AIb9VCXuyvvOBB3OnUEDLmeaVw0Rd2UvAqd+PwrFdpzuIx5Jf1uueCS+Wk4UcsdjZtcn GWYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=9dxT1GgjsZZ9HrA+2oCftOJvUwyvIOpVgrmYFRxlSKg=; b=UlNQuDoA/+vCNMK/vWN6HX9jjEBFb5wflr8hdtoiYTWtKjzigNAlLrTvBkhjZbX/FQ WVxz/KsYi2+bmqvLsA7V2ewrpIoBlZsRgmyhVJXHj3IcNsYGml8mFYXpbxGlEl0iCrX7 dQ1Hq5rOdytOna2U1dOpiOyQOYvUc46EV6JnZSYHSHH20a9g/i605F8OGoRsaLO99Y2g PESwinuHeggA/uRxcb0hLtYD9yBAbiMkBIOXzyzolaHoVdMVl3FNVx7+DmtfDs2PGoJr 8Yb3H1Qxmhdh8ANk1rLFAS21ijst7EfkNVauSdCQScz0aW129Eo1GSQl1JNUIKmvPPH4 tU5Q== X-Gm-Message-State: APf1xPCwZuB0VMH72q1DdbLo9Jjc68Z2QEkbnVfiXRQw3+1Hw2XintC/ bIbfGBIlH4eKS46kjx75xOfh/uyyy+0jMzNWKu8= X-Google-Smtp-Source: AH8x226kSI+0jl+GuRgdNeMRUTRadWUS0xhDh7Dkbn7KdAgcq9aJ+zoSWTUZP8pSGFYUx/SAexir1dYXWq9RAVDkNYA= X-Received: by 10.46.87.93 with SMTP id r29mr589274ljd.93.1518099087415; Thu, 08 Feb 2018 06:11:27 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.10.6 with HTTP; Thu, 8 Feb 2018 06:11:26 -0800 (PST) In-Reply-To: References: From: Emily Jiang Date: Thu, 8 Feb 2018 14:11:26 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="f403045f864cd6e2a60564b3fc90" Subject: Re: [ConfigJSR-experts] Config JSR update X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Feb 2018 14:11:29 -0000 --f403045f864cd6e2a60564b3fc90 Content-Type: text/plain; charset="UTF-8" My apologies for mot being clear. I meant JSR for Java EE, as we all know JCP is still taking on Java SE specs or platform specs. As I said in last week's call, we just carry on as normal. We can revisit this when we are closer to finish. Thought to keep you all updated on the various options and the new standard body of EE.next. Emily On Wed, Feb 7, 2018 at 8:19 AM, Andres Almiray wrote: > Hi Werner, > > We briefly discussed the topic. There are two additional issues on the > tracker that came out as a result > > https://github.com/eclipse/ConfigJSR/issues/51 > > https://github.com/eclipse/ConfigJSR/issues/52 > > Cheers, > Andres > > > Andres Almiray > Canoo Engineering AG > Kirschgartenstrasse 5 > CH-4051 Basel > > Tel: +41 61 228 94 44 <+41%2061%20228%2094%2044> > Fax: +41 61 228 94 49 <+41%2061%20228%2094%2049> > > DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX > http://www.canoo.com > > On 7 Feb 2018, at 01:18, Werner Keil wrote: > > Emily, > > Great, did you have a chance to speak with Andres about JSR 377 synergies, > too? > > Werner > > > On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang > wrote: > >> As promised in last week's hangout, I share some info in last week's JCP >> meeting about this JSR. In last week's JCP in Hursley UK, I presented >> JSR382, attached below. The presentation went very well and a large number >> of JCP members showed great interest in this JSR. Great feedback received. >> There were a few technical questions, which I answered without much issue. >> There are two major discussions I would like to share. >> >> 1. This JSR probably will be the final JSR in JCP. We have been offered >> the opportunity to try out the new process EE.next (JCP replacement), which >> you might have read about it in today's EE4J mailing list. >> https://www.eclipse.org/org/workinggroups/eclipse_ee_next_charter.php >> >> It will be amazing to see Config JSR is the guinea pig for the new >> process, the head of the new era sounds better than the tail of the old >> technology. >> >> I would like to warn you not to attach your feelings towards >> javax.config. If we use the new process, the only change will be the >> package name (The new package name is to be announced soon) >> >> >> 2. Since Config JSR is a useful model, potentially it will be >> incorporated into platform edition, being part of JDK. The proposal will be >> a new JSR to be proposed to get the packages added to platform. I don't >> think this will impact what we are doing though, as we are mainly targeting >> for JavaEE, hopefully be to included in EE4J forthcoming releases. >> -- >> Thanks >> Emily >> ================= >> Emily Jiang >> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >> >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >> > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > > > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --f403045f864cd6e2a60564b3fc90 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
My apologies for mot being clear. I meant JSR for Jav= a EE, as we all know JCP is still taking on Java SE specs or platform specs= .

As I said in last week's call, we just carry on as norma= l. We can revisit this when we are closer to finish. Thought to keep you al= l updated on the various options and the new standard body of EE.next.
<= br>Emily

On Wed, Feb 7, 2018 at 8:19 AM, Andres Almiray <andres.almiray@can= oo.com> wrote:
Hi Werner,

We briefly discusse= d the topic. There are two additional issues on the tracker that came out a= s a result



Cheers,
Andre= s

=C2=A0
Andres Almir= ay
Canoo Engineering AG
Kirschgartenstrasse 5
CH-4051 Basel

Tel: +41 61 228 94 44
Fax: +41 61 228 94 49

DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX
http://www.canoo.com

On 7 = Feb 2018, at 01:18, Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrote:

Emily= ,

Great, did you have a chance to speak with Andres abou= t JSR 377 synergies, too?

Werner

<= /div>

On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang= <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
As promised in last week&= #39;s hangout, I share some info in last week's JCP meeting about this = JSR. In last week's JCP in Hursley UK, I presented JSR382, attached bel= ow. The presentation went very well and a large number of JCP members showe= d great interest in this JSR. Great feedback received. There were a few tec= hnical questions, which I answered without much issue. There are two major = discussions I would like to share.

1. This JSR probably will b= e the final JSR in JCP. We have been offered the opportunity to try out the= new process EE.next (JCP replacement), which you might have read about it = in today's EE4J mailing list. https://www.ecli= pse.org/org/workinggroups/eclipse_ee_next_charter.php

=
It will be amazing to see Config JSR is the guinea pig for the new pr= ocess, the head of the new era sounds better than the tail of the old techn= ology.

I would like to warn you not to attach your feelings to= wards javax.config. If we use the new process, the only change will be the = package name (The new package name is to be announced soon)


2. Since Config JSR is a= useful model, potentially it will be incorporated into platform edition, b= eing part of JDK. The proposal will be a new JSR to be proposed to get the = packages added to platform. I don't think this will impact what we are = doing though, as we are mainly targeting for JavaEE, hopefully be to includ= ed in EE4J forthcoming releases.
--
Thanks
Emily
=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ

_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts

_______________________________________________
ConfigJSR-experts m= ailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options= , retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/configjsr-experts=


______________= _________________________________
ConfigJSR-experts mailing list
ConfigJSR-experts@eclipse.= org
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DEmily Jiang
eji= CP/HTWanzfL651MW@Y45SF02wNnDqB7sJ
--f403045f864cd6e2a60564b3fc90-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Thu Feb 8 09:52:09 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-lf0-f49.google.com (mail-lf0-f49.google.com [209.85.215.49]) by mail.eclipse.org (Postfix) with ESMTP id 24BFE2DCFDC for ; Thu, 8 Feb 2018 09:52:08 -0500 (EST) Received: by mail-lf0-f49.google.com with SMTP id u20so4581176lff.11 for ; Thu, 08 Feb 2018 06:52:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=jyBEWKCuTMicfwH+r5KLQ9aJbNbkB2wAGwITavVP34I=; b=m5hFiDj1IcT++8Z9rfH2H/CDQdpT2cHiAkDk0xByRKFCfcCFl+aZod/yV+jmU4WWD/ fqG1XxzVCGZ1xuxtkW2deNtYPpgruLI4a/lKjp0tZB+ZcP1L+v5nWH3DTH26sURBGjLk EX9Avc+m/BZYVlqN/7QoyNWIShj3iXT1AUy+0fPH6qWq8Fpqefh1Fq1KeHYm/xpc7ePl nebfLX16Nn3mf1UYdLtldnl13CuxvMfp5gBlnDrwbcbpCDEBkIP3YZ1xDMOfTbg5AMeu ZZUXNlM4cVeF1LAEL7BIiKIFpoNPyN0YtCSAstwZiaY/e/cmo8naFqfADvkVVYL2O6yE +3DA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=jyBEWKCuTMicfwH+r5KLQ9aJbNbkB2wAGwITavVP34I=; b=gTeaLJowIPMz/of+i4WO9X4rBmw6GSAucGnVdqHVlqaK98EVIjEOdY21s3g2kdUsxb NgN6A/ogcENQ//JAW2Aj3rsR4/xh5sdXtTSIXd5kaUVfAiOyXaP7qyUC2GgNXb+00NZT KlJQdjxdDmP9oa7620osEEu+1NV9NOveI5ZSlQR10k+gRphiABxDp/5nfOZwwyHamyw9 HIvHKTEPwbRoHgPOOYrN4wfrk6nB3SIac8u/fZr7BqYXDOv+z0erQerTvk0r2QvnWwAz LTnyJdow8y86qSFEiAt/YlxcL8YnJhFbP94YdgVPAnv4Eo8N7bjafgF41Dp4dk6lY57Q 0t7w== X-Gm-Message-State: APf1xPDWbEnGwxI5X+JiIX1d2qYiRw4Cdv6U8bCwUgBfvz0HWMtSGmbw LMMWd2uryHASyHmhvk7TbzWROQ1mmTHkBZeInyE= X-Google-Smtp-Source: AH8x227AED8Pc3yCjUva4z6y78XDcbIdFzl+9ZCqiiafw2U2AmpyJAQMPEKQmwxwXWAjKlBiDZ4EWCLnpkchP4infJg= X-Received: by 10.46.20.4 with SMTP id u4mr654269ljd.53.1518101528295; Thu, 08 Feb 2018 06:52:08 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.89.65 with HTTP; Thu, 8 Feb 2018 06:52:07 -0800 (PST) In-Reply-To: References: From: Werner Keil Date: Thu, 8 Feb 2018 15:52:07 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="f403045fb77653c08a0564b48ed5" Subject: Re: [ConfigJSR-experts] Config JSR update X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Feb 2018 14:52:09 -0000 --f403045fb77653c08a0564b48ed5 Content-Type: text/plain; charset="UTF-8" Is there a call today at 4pm? On Thu, Feb 8, 2018 at 3:11 PM, Emily Jiang wrote: > My apologies for mot being clear. I meant JSR for Java EE, as we all know > JCP is still taking on Java SE specs or platform specs. > > As I said in last week's call, we just carry on as normal. We can revisit > this when we are closer to finish. Thought to keep you all updated on the > various options and the new standard body of EE.next. > > Emily > > On Wed, Feb 7, 2018 at 8:19 AM, Andres Almiray > wrote: > >> Hi Werner, >> >> We briefly discussed the topic. There are two additional issues on the >> tracker that came out as a result >> >> https://github.com/eclipse/ConfigJSR/issues/51 >> >> https://github.com/eclipse/ConfigJSR/issues/52 >> >> Cheers, >> Andres >> >> >> Andres Almiray >> Canoo Engineering AG >> Kirschgartenstrasse 5 >> CH-4051 Basel >> >> Tel: +41 61 228 94 44 <+41%2061%20228%2094%2044> >> Fax: +41 61 228 94 49 <+41%2061%20228%2094%2049> >> >> DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX >> http://www.canoo.com >> >> On 7 Feb 2018, at 01:18, Werner Keil wrote: >> >> Emily, >> >> Great, did you have a chance to speak with Andres about JSR 377 >> synergies, too? >> >> Werner >> >> >> On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang >> wrote: >> >>> As promised in last week's hangout, I share some info in last week's JCP >>> meeting about this JSR. In last week's JCP in Hursley UK, I presented >>> JSR382, attached below. The presentation went very well and a large number >>> of JCP members showed great interest in this JSR. Great feedback received. >>> There were a few technical questions, which I answered without much issue. >>> There are two major discussions I would like to share. >>> >>> 1. This JSR probably will be the final JSR in JCP. We have been offered >>> the opportunity to try out the new process EE.next (JCP replacement), which >>> you might have read about it in today's EE4J mailing list. >>> https://www.eclipse.org/org/workinggroups/eclipse_ee_next_charter.php >>> >>> It will be amazing to see Config JSR is the guinea pig for the new >>> process, the head of the new era sounds better than the tail of the old >>> technology. >>> >>> I would like to warn you not to attach your feelings towards >>> javax.config. If we use the new process, the only change will be the >>> package name (The new package name is to be announced soon) >>> >>> >>> 2. Since Config JSR is a useful model, potentially it will be >>> incorporated into platform edition, being part of JDK. The proposal will be >>> a new JSR to be proposed to get the packages added to platform. I don't >>> think this will impact what we are doing though, as we are mainly targeting >>> for JavaEE, hopefully be to included in EE4J forthcoming releases. >>> -- >>> Thanks >>> Emily >>> ================= >>> Emily Jiang >>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>> >>> _______________________________________________ >>> ConfigJSR-experts mailing list >>> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >>> To change your delivery options, retrieve your password, or unsubscribe >>> from this list, visit >>> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >>> >> >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >> >> >> >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >> > > > > -- > Thanks > Emily > ================= > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > --f403045fb77653c08a0564b48ed5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Is there a call today at 4pm?



On Thu, Feb 8, 2018 at 3:11 PM, Emily Jiang = <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
My apologies for mot being clear. I me= ant JSR for Java EE, as we all know JCP is still taking on Java SE specs or= platform specs.

As I said in last week's call, we just ca= rry on as normal. We can revisit this when we are closer to finish. Thought= to keep you all updated on the various options and the new standard body o= f EE.next.

Emily
<= /font>

On Wed, Feb 7, 2018 at 8:19 AM, A= ndres Almiray <DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX> wrote:
Hi Werner,=

We briefly discussed the topic. There are two additiona= l issues on the tracker that came out as a result

Cheers,
Andres

=C2=A0
Andres Almir= ay
Canoo Engineering AG
Kirschgartenstrasse 5
CH-4051 Basel

Tel: +41 61 228 94 44
Fax: +41 61 228 94 49

DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX
http://www.canoo.com

On 7 Feb 2018, at 01:18, Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wro= te:

Emily,

Great, did= you have a chance to speak with Andres about JSR 377 synergies, too?
=

Werner
=

On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang= <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
As promised in last week&= #39;s hangout, I share some info in last week's JCP meeting about this = JSR. In last week's JCP in Hursley UK, I presented JSR382, attached bel= ow. The presentation went very well and a large number of JCP members showe= d great interest in this JSR. Great feedback received. There were a few tec= hnical questions, which I answered without much issue. There are two major = discussions I would like to share.

1. This JSR probably will b= e the final JSR in JCP. We have been offered the opportunity to try out the= new process EE.next (JCP replacement), which you might have read about it = in today's EE4J mailing list. https://www.ecli= pse.org/org/workinggroups/eclipse_ee_next_charter.php

=
It will be amazing to see Config JSR is the guinea pig for the new pr= ocess, the head of the new era sounds better than the tail of the old techn= ology.

I would like to warn you not to attach your feelings to= wards javax.config. If we use the new process, the only change will be the = package name (The new package name is to be announced soon)


2. Since Config JSR is a= useful model, potentially it will be incorporated into platform edition, b= eing part of JDK. The proposal will be a new JSR to be proposed to get the = packages added to platform. I don't think this will impact what we are = doing though, as we are mainly targeting for JavaEE, hopefully be to includ= ed in EE4J forthcoming releases.
--
Thanks
Emily
=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ

_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts

_______________________________________________
ConfigJSR-experts m= ailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options= , retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/configjsr-experts<= /div>


___________________= ____________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts



= --
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ

_______________________________________________
ConfigJSR-experts mailing list
ConfigJSR-experts@eclipse.= org
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts

--f403045fb77653c08a0564b48ed5-- From X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0 Thu Feb 8 12:13:44 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-io0-f173.google.com (mail-io0-f173.google.com [209.85.223.173]) by mail.eclipse.org (Postfix) with ESMTP id 837AF2DD061 for ; Thu, 8 Feb 2018 12:13:44 -0500 (EST) Received: by mail-io0-f173.google.com with SMTP id f89so6560585ioj.4 for ; Thu, 08 Feb 2018 09:13:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=dfZPLa9A+vUUESmh6kMBvZPCgFv2KVLnX11oBDByB4Y=; b=WRqcOD9Mivw9+TL9yCcbF5byBB09+kmS7kT0SepMjr718vMUIHh31AJrL4VaTvX/H2 3fKCrK0lHzMNW4DV+6tt02G2EzH4PquB6Wmb7wN4JrY+6b9ZyfLCXo3tMFXNVUloHzZT 7MUKt/zMatQOmS5a+6wCmQAsszh6mnho22Qt1iV2/1GyZ665CINihpDagA+pPuu7m6Hw mznmqqA98JGc3c5kTe6qcT3s5SI5lZ/6FMii2qTGqpM4FBydTeW0Df5DIxLJaGSAX0Ks EfWsrATe+6vx9WOHb2/JzfPifyXiApft/3+WWLR7JK9FPp7Jdwc7qclfXji8Py0KYpJO gU1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=dfZPLa9A+vUUESmh6kMBvZPCgFv2KVLnX11oBDByB4Y=; b=QLJ/k3QVKG6rElj4lPEuKyWgPCCi0dp8StbtHqmjqAg4xR4RMsVYA6Fj1ypIYPOkD6 Krx+KVJ3boFXYc/Abz1BD7ekjrX/2e6ZNkkBU7D1OZyJ3ZNqEjbBNTfm4GpmVKvLOOkt 7lGh+sqC0RCgt1kErTIrw7Y4uNuNDC+opmYDlelaNDwgaJAjCQjapGo1YqeqGBgSMyC7 V6WbwtvgPNa8hOG3wPIv34r9ONPzAxRY/1jVcmpaOHRDCZwXErEXvUMsl0JhleZwpS5r XOivZVrq/VcMPHZT6bJapGb3yJ44RmwvFx7vbKteRRTXaoy7wrAJihDoA9RbWscx7GR0 TYhg== X-Gm-Message-State: APf1xPAyjRBku7vxvzRchlcSU06HvFefQAlpAHe5DDOO3PMlCCHw3F+x 4OjfVzto//grISL+66gI5zENzQKVzsKAf3B+q3k= X-Google-Smtp-Source: AH8x224UVie8Ilyx3Nu9plnHdAjcS0dyBIrffjIkQfUHTMMo8vEea0riYQ2WL4QioJMWs+eTOar+Jj9gwFFfbG/ybHg= X-Received: by 10.107.59.7 with SMTP id i7mr1658587ioa.279.1518110023439; Thu, 08 Feb 2018 09:13:43 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.3.151 with HTTP; Thu, 8 Feb 2018 09:13:02 -0800 (PST) In-Reply-To: References: From: Anatole Tresch Date: Thu, 8 Feb 2018 18:13:02 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="001a114f8e84ad585e0564b6885a" Subject: Re: [ConfigJSR-experts] Config JSR update X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Feb 2018 17:13:44 -0000 --001a114f8e84ad585e0564b6885a Content-Type: text/plain; charset="UTF-8" OK for me. I hope I will be able to join again next week. As of now there is incredible workload on my table... In the meantime we have a full port of Apache Tamaya in a branch using the current JSRs API, including all our extensions and even sanbox extensions ported as well. J Anatole 2018-02-08 15:11 GMT+01:00 Emily Jiang : > My apologies for mot being clear. I meant JSR for Java EE, as we all know > JCP is still taking on Java SE specs or platform specs. > > As I said in last week's call, we just carry on as normal. We can revisit > this when we are closer to finish. Thought to keep you all updated on the > various options and the new standard body of EE.next. > > Emily > > On Wed, Feb 7, 2018 at 8:19 AM, Andres Almiray > wrote: > >> Hi Werner, >> >> We briefly discussed the topic. There are two additional issues on the >> tracker that came out as a result >> >> https://github.com/eclipse/ConfigJSR/issues/51 >> >> https://github.com/eclipse/ConfigJSR/issues/52 >> >> Cheers, >> Andres >> >> >> Andres Almiray >> Canoo Engineering AG >> Kirschgartenstrasse 5 >> CH-4051 Basel >> >> Tel: +41 61 228 94 44 <+41%2061%20228%2094%2044> >> Fax: +41 61 228 94 49 <+41%2061%20228%2094%2049> >> >> DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX >> http://www.canoo.com >> >> On 7 Feb 2018, at 01:18, Werner Keil wrote: >> >> Emily, >> >> Great, did you have a chance to speak with Andres about JSR 377 >> synergies, too? >> >> Werner >> >> >> On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang >> wrote: >> >>> As promised in last week's hangout, I share some info in last week's JCP >>> meeting about this JSR. In last week's JCP in Hursley UK, I presented >>> JSR382, attached below. The presentation went very well and a large number >>> of JCP members showed great interest in this JSR. Great feedback received. >>> There were a few technical questions, which I answered without much issue. >>> There are two major discussions I would like to share. >>> >>> 1. This JSR probably will be the final JSR in JCP. We have been offered >>> the opportunity to try out the new process EE.next (JCP replacement), which >>> you might have read about it in today's EE4J mailing list. >>> https://www.eclipse.org/org/workinggroups/eclipse_ee_next_charter.php >>> >>> It will be amazing to see Config JSR is the guinea pig for the new >>> process, the head of the new era sounds better than the tail of the old >>> technology. >>> >>> I would like to warn you not to attach your feelings towards >>> javax.config. If we use the new process, the only change will be the >>> package name (The new package name is to be announced soon) >>> >>> >>> 2. Since Config JSR is a useful model, potentially it will be >>> incorporated into platform edition, being part of JDK. The proposal will be >>> a new JSR to be proposed to get the packages added to platform. I don't >>> think this will impact what we are doing though, as we are mainly targeting >>> for JavaEE, hopefully be to included in EE4J forthcoming releases. >>> -- >>> Thanks >>> Emily >>> ================= >>> Emily Jiang >>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>> >>> _______________________________________________ >>> ConfigJSR-experts mailing list >>> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >>> To change your delivery options, retrieve your password, or unsubscribe >>> from this list, visit >>> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >>> >> >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >> >> >> >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >> > > > > -- > Thanks > Emily > ================= > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > -- *Anatole Tresch* PPMC Member Apache Tamaya JCP Star Spec Lead *Switzerland, Europe Zurich, GMT+1* *maketechsimple.wordpress.com * *Twitter: @atsticks, @tamayaconf* *Speaking at:* [image: JSD_Speaker_2017][image: J-Con 2017 logo][image: JVM Con] --001a114f8e84ad585e0564b6885a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
OK = for me. I hope I will be able to join again next week. As of now there is i= ncredible workload on my table...
In the meantime we have a full port of Apache Tamaya i= n a branch using the current JSRs API, including all our extensions and eve= n sanbox extensions ported as well.

J Anatole

2018-02-08 15:11 GMT+01:00 Emily Jiang &= lt;emijiang6@= googlemail.com>:
My apologies for mot being clear. I meant JSR for Java EE, as= we all know JCP is still taking on Java SE specs or platform specs.
As I said in last week's call, we just carry on as normal. We ca= n revisit this when we are closer to finish. Thought to keep you all update= d on the various options and the new standard body of EE.next.

Emily

On Wed, Feb 7, 2018 at 8:19 AM, Andres Almiray <DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX> wrote:
Hi Werner,

W= e briefly discussed the topic. There are two additional issues on the track= er that came out as a result



Cheer= s,
Andres

=C2=A0
Andres Almir= ay
Canoo Engineering AG
Kirschgartenstrasse 5
CH-4051 Basel

Tel: +41 61 228 94 44
Fax: +41 61 228 94 49

DMPB7Na6O0h2qHOX@AtCx50mfLo7CiEHX
http://www.canoo.com

On 7 Feb 2018, at 01:18, Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrot= e:

Emily,

Great, did y= ou have a chance to speak with Andres about JSR 377 synergies, too?

Werner
=

On Wed, Feb 7, 2018 at 12:17 AM, Emily Jiang= <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> wrote:
As promised in last week&= #39;s hangout, I share some info in last week's JCP meeting about this = JSR. In last week's JCP in Hursley UK, I presented JSR382, attached bel= ow. The presentation went very well and a large number of JCP members showe= d great interest in this JSR. Great feedback received. There were a few tec= hnical questions, which I answered without much issue. There are two major = discussions I would like to share.

1. This JSR probably will b= e the final JSR in JCP. We have been offered the opportunity to try out the= new process EE.next (JCP replacement), which you might have read about it = in today's EE4J mailing list. https://www.ecli= pse.org/org/workinggroups/eclipse_ee_next_charter.php

=
It will be amazing to see Config JSR is the guinea pig for the new pr= ocess, the head of the new era sounds better than the tail of the old techn= ology.

I would like to warn you not to attach your feelings to= wards javax.config. If we use the new process, the only change will be the = package name (The new package name is to be announced soon)


2. Since Config JSR is a= useful model, potentially it will be incorporated into platform edition, b= eing part of JDK. The proposal will be a new JSR to be proposed to get the = packages added to platform. I don't think this will impact what we are = doing though, as we are mainly targeting for JavaEE, hopefully be to includ= ed in EE4J forthcoming releases.
--
Thanks
Emily
=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ

_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts

_______________________________________________
ConfigJSR-experts m= ailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options= , retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/configjsr-experts<= /div>


___________________= ____________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts



= --
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ

_______________________________________________
ConfigJSR-experts mailing list
ConfigJSR-experts@eclipse.= org
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts



--
=
= Anatole Tresch
PPMC Member Apache Tamaya
JCP Star Spec= Lead
Switzerland,=C2=A0Europe Zurich, GMT+1
make= techsimple.wordpress.com=C2=A0
Twitter: =C2=A0@ats= ticks, @tamayaconf

Speaking at:<= /div>

=C2=A0=C2=A03D"JSD_Speaker_=3D"J-Con3D"JVM
--001a114f8e84ad585e0564b6885a-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Thu Feb 15 09:07:44 2018 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from sonic306-20.consmr.mail.ir2.yahoo.com (sonic306-20.consmr.mail.ir2.yahoo.com [77.238.176.206]) by mail.eclipse.org (Postfix) with ESMTP id 12DC32DCEA8 for ; Thu, 15 Feb 2018 09:07:43 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1518703663; bh=tJNOb8IjuS/9I30NUqBp1sRzPY92hly1OiUFLv2BZWw=; h=From:Subject:Date:To:From:Subject; b=L1n072mexLda5NXM6BY9GLfL9WiAQD5Hm0WrJlnyr1YELwE3LHCSytwA33fWasQgS2aZdRDnbL+VfiB+skwzFfXB9dstawtWJnW2zr+Sp4TTQPDgO+V2QZb2t5ilKZRzIPXdlRIeGiq2fMEd1uWPjtKN8HkvxU+QRKb2e6wWBVBc8a0KgAOVdMqROCm3s+5WKV5nOX7fTjdOUf/5Rnb8TrZuXBOWyzEbxQDi0Xunu1pUgX7WrNHJ27pkJXVHe255vYOZnx63gKX2Kob7t7EPseZLQ/NrY7F2G8gHI6+P89jNSKCk/1MuN7uYqQpZZeoain7qI53WSe1NnlVZCQCmcA== X-YMail-OSG: Q9blSUEVM1kX9txSLmosf7OO4wXXmLACcVv.eoBlcQXZMaop1h35OgH5Hjam4Pa bpGgQg.FvE09VrC2_sMN4Hd9gbD2EKUdi_PLmPYDCpDwEP2W6JQxpGjaKu.jX2EyAkLU95qM5z7d WusJr3GXXoIC9QtGL.l5Drk4aFYopv9MZndMLPXCIWOLstwxCcDMMtjroXwJr4W2DC9kJNvyDAIH rWH_4C1jVqkRMsBQ2Xl5y3xe6pKgnKTJ4KwDEw7nYdXIHpnriRrLRskjjBo3Hpj6HEtnNjn_Fce6 t36ptpQVGZDGz05e9KDnm99o30tr4ziH31DcSy4PZh4.dL22IXUPjTLmNyh7NV0wLpMsk6R5EFDm tnce6GX2DuCmwcvoRpajkP9cfK6N6dtHFISOSvNZ1EJBjrosDkB1q_lK3ClExF31MBEGybX2hd3o jKMvsbTudBvvW_mwspeEz0pSe8_wgE1mQG0vbM3QSKciCL7LoIcY7bh7VuYSDbhaTcVqK2mHmSMC BcN7F1fXa_JxZiFV5u4gW0uuHXpkQXhIjch6l1dtl7H95FV8N5XygbAI4nQ-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.ir2.yahoo.com with HTTP; Thu, 15 Feb 2018 14:07:43 +0000 Received: from smtp166.mail.ir2.yahoo.com (EHLO [192.168.1.102]) ([46.228.39.33]) by smtp412.mail.ir2.yahoo.com (JAMES SMTP Server ) with ESMTPA ID 889a6894e85405072afc578ca6cdd394 for ; Thu, 15 Feb 2018 14:07:42 +0000 (UTC) From: Mark Struberg Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) Message-Id: Date: Thu, 15 Feb 2018 15:07:39 +0100 To: ConfigJSR expert discussions X-Mailer: Apple Mail (2.3445.5.20) Subject: [ConfigJSR-experts] name of our default configuration files X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Feb 2018 14:07:44 -0000 Good afternoon! I'd like to point you all to a discussion which is pretty important. We want community feedbak about how our default property files should be = named A lot of information can be found in the following ConfigJSR ticket https://github.com/eclipse/ConfigJSR/issues/31 Either answer here or add your comments to the ticket - txs! LieGrue, strub From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Thu Mar 22 10:34:20 2018 Return-Path: X-Original-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Delivered-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Received: from mail-lf0-f45.google.com (mail-lf0-f45.google.com [209.85.215.45]) by mail.eclipse.org (Postfix) with ESMTP id 318032DCEE1 for ; Thu, 22 Mar 2018 10:34:19 -0400 (EDT) Received: by mail-lf0-f45.google.com with SMTP id m16-v6so9752916lfc.4 for ; Thu, 22 Mar 2018 07:34:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=KMcXPJUn87Ku0H4V99vppZD+7FEOAj+oigFCATYa4Dg=; b=C/cUAiKeal7bre8u7GeGjc8HsVwXdxfY36Ju34I2geSsbKDFzhLfjEQrwF3AQSS9M8 1xBsRZ8iMHqLPKyVwSv/11QL0n7HCD4VgQcpqbSVKu8qRp0ZjdhDYMYMj3PM2X9H3GL9 t4oxanzd4zNnFB5vI24nsp/8g0upI6sRC6ZRYC6ITx07olQ0ycxoOrwYm2FbNVFO7fgC 8Bf4B4Fq6H3haPPC6Vi9JN5z+KNaTK7aOWXLXE+tXbNt0/Wzql9x1UfxBNC2iQ13kAqP AUbthiJueR95Oc2HVTPdq65/mJRiNoX4XLZ4hiayecrn6ier/BtWEJ1t7m1LmlNwU3OG lHDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=KMcXPJUn87Ku0H4V99vppZD+7FEOAj+oigFCATYa4Dg=; b=ZSbR6hQO6p5WJwYLwj5ePZq+cMxo9d2MNlwVO8eq1IFHtmzv68AWVzFBSzpWbvo8Fj eFaF1MKFJZ9JcfkUAg7LCZAl1U+YmaydqFdU+clafFKrrNEef3dm+TObOWyl1hEA5/w2 sNqZ9MxpP9ivMD2x3SxM1OLCBlnUEoVZsq+PLKbJFQvE6//aXCUhGp2xT6UyjpfB3+nR CyLg15MtoZomK6jmzzkbXWl5v+A2I20A6nBc8i9Z260iHkJYzlqIUCmMV9bc30/QldXr Y0cxJVhQ/oRfrCAzmZDlb4+FJR1fR5CizaP6q+/iI4v1DkePuZOJOwYNadQgv2iolK15 x+QA== X-Gm-Message-State: AElRT7F9QokJNC+sCCnze7BW+vZGfiMHs8TVxQhqUIgLYycwEo+CrLXP /KExY3YFu91+d1LLLAya6YhBkYz1NbgKkoifA/k= X-Google-Smtp-Source: AG47ELsZ53KzEVfNDEO6KbOhW61Poy5J9GyoYcxMK2hqSZnEGV2LjbOzbztG7Pau+fVzWMDB6HnBgDcecknxS712Ezc= X-Received: by 10.46.2.134 with SMTP id y6mr8348838lje.118.1521729258541; Thu, 22 Mar 2018 07:34:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.179.9.138 with HTTP; Thu, 22 Mar 2018 07:34:17 -0700 (PDT) In-Reply-To: References: From: Emily Jiang Date: Thu, 22 Mar 2018 14:34:17 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="94eb2c1909b8e65a8a05680133b2" Subject: [ConfigJSR-experts] Fwd: replace characters in a property name of Environment variable X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Mar 2018 14:34:20 -0000 --94eb2c1909b8e65a8a05680133b2 Content-Type: text/plain; charset="UTF-8" Please see my email below as I think my previous email went missing. Thanks Emily ---------- Forwarded message ---------- From: Emily Jiang Date: Wed, Mar 21, 2018 at 11:20 PM Subject: replace characters in a property name of Environment variable To: ConfigJSR public discussions Dear all, As you may recall, recently we have done the issue of replacing . with _ in environment variables. See more details in https://github.com/eclipse/ConfigJSR/issues/24. After this, Steve raised another issue to ask to replace - with _ https://github.com/eclipse/ConfigJSR/issues/53. Recently, more requirements came up to ask for replacing more and more non alphanumeric character with _. I suggested to replace the non-alphanumberic nor _ with _ in the environment variable name. The overall mapping rule for environment variables are: The search order is: 1. Exact match (i.e. {@code "com.ACME.size"}) 2. Replace the character that is neither alphanumeric nor '*_' with _ *(i.e. {@code "com_ACME_size"}) 3. Replace the character that is neither alphanumeric nor '*_' with _* and convert to upper case (i.e. {@code "COM_ACME_SIZE"}) I'll do a PR shortly. Thought to get everyone on board on this matter. Any comments? -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --94eb2c1909b8e65a8a05680133b2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Please see my email below as I think my previous= email went missing.

Thanks
Emily
<= div class=3D"gmail_quote">---------- Forwarded message ----------
From: = Emily Jiang <emijiang6@googlemail= .com>
Date: Wed, Mar 21, 2018 at 11:20 PM
Subject: repl= ace characters in a property name of Environment variable
To: ConfigJSR = public discussions <ceousO09I6tMWPtM@ElHQwbxuqmY1UZfe>


Dear all,

As you may recall, recently we have = done the issue of replacing . with _ in environment variables.
After this, Steve raised another issu= e to ask to replace - with _ https://github.com/eclipse/ConfigJSR/is= sues/53. Recently, more requirements came up to ask for replacing more = and more non alphanumeric character with _. I suggested to replace the non-= alphanumberic nor _ with _ in the environment variable name. The overall ma= pping rule for environment variables are:

The search order is:
  1. Exact match (i.e. {@code "com.ACME.size"})
  2. Replace the character that= is neither alphanumeric nor '_' with _ (i.e. {@code "com_ACME_size"})=
  3. Replace the character that is neither alphanumeric nor '_&#= 39; with _ and convert to upper case (i.e. {@code "COM_ACME_SIZE"})
I'll do a PR shortly. Thought to get everyone on board on = this matter. Any comments?


--
ThanksEmily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jian= g
Yjp73Ee8XrnVIEPw@d6MLk1IRhq1XnCjF= rg



--
Thanks
Emily
=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--94eb2c1909b8e65a8a05680133b2-- From X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0 Fri Mar 23 17:34:20 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-ot0-f177.google.com (mail-ot0-f177.google.com [74.125.82.177]) by mail.eclipse.org (Postfix) with ESMTP id D4F0B2DCD8C for ; Fri, 23 Mar 2018 17:34:19 -0400 (EDT) Received: by mail-ot0-f177.google.com with SMTP id m22-v6so14792556otf.10 for ; Fri, 23 Mar 2018 14:34:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=WKJHLhnB7BFVt5aKVKbUBK/ra0O8KYV7ycNC26iEI+U=; b=Tnf1q5lXZKtbqfPXXFgn0wI8LAX0Je8iZpT0AGEHwWc0p2JieSQe40VE12p08BHGdX i7HoAUZDtaC2RPsuLzh49moqT96JqGeafE/UKJfjhNY4+0N7ib3AyBa6tNv/6/pMnLjQ 9FSlEYy94jz8MwjDOxQ+8gtoLZTbeyUSYMD+POPmItGZ1j5nP7pHLOz2wARhARQn1ZKO VTfNr7sVNSV0EQX5c90YxZZpoKJKezm/IRz7lSV/IyD5pBu/rVj5GvUreUgFWQC2mYJw +Ti0NvKvB/EIuJCtR3yccAiSCAEtkzguibAlGNcnKlG4eWo7WtGelOt7JFcl5Icpzjby ZtUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=WKJHLhnB7BFVt5aKVKbUBK/ra0O8KYV7ycNC26iEI+U=; b=IXYqTyQu+i9cEqRFVtMxu+5bfsKAe+sGz2ABkd+uE3agQ5E2tBPndnYYd+Kf8B5BBa IxL2vli4LZ9OWOZqgpqsFq8eG4/RkoJiAm7eU9opic6+/nDm+hc/Jprprr1sBtWZ7Flz j1Ko5xnSAP/yqwT0nGnD5OVoudj6IbNMCqm3Oy4trF5+s25dsxjpjctPrX8O17I7zPM8 E5C1FWdyD1gvimWZ7NOyV8Ovc/KMY4YOv2ftcy6fvaFxGvcV6e4+bBer5ybid86XNFs/ 00sVsZ/fy0HAhS5P4ZFO7ZjuQJPis/6cKKf4jkb9CVfNE0y8NJldxxCLyczdFZp3dTkE ELwg== X-Gm-Message-State: AElRT7Hoe7Er3PII9TuLaDd3OytKeL5ihU+CWjM8hPPEC2eu5euQiED5 2S4G4Hz1vdWt2+LfTimEE8vKDn3TraJ2mBVwef8= X-Google-Smtp-Source: AIpwx49wQW2Z1RGa23IOpK83OBNT/4jUu1c9+2TT7E2nka7A0urkQKKhVPPdPc8AHe4mGdH00L/vNU+ljoxqVCdw3QM= X-Received: by 2002:a9d:4a2d:: with SMTP id h42-v6mr3140969otf.278.1521840858948; Fri, 23 Mar 2018 14:34:18 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Anatole Tresch Date: Fri, 23 Mar 2018 21:33:43 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="000000000000cd674e05681b2ffe" Subject: Re: [ConfigJSR-experts] Fwd: replace characters in a property name of Environment variable X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Mar 2018 21:34:20 -0000 --000000000000cd674e05681b2ffe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi all I generally see the problem with the env variables as well as being env variables as one of the common configuration mechanisms when using containers. Whereas I dont like much the idea of adding too much magic into the config system and it is up to the user using environment capable keys, I also see advantages of the given proposal especially for environment variables. Thinking on the topic I see alternative approaches: 1) Decorating a Config, e.g. something like EnvironmentKeyReplacingConfig.of(config); Advantage here is that this can be done without adding it to the JSR API, Disadvantage is that probably many users will hit this issue. 2) Decorating the Environment ConfigSource, so the proposed key resolution is only performed for environment variables. This can be done when using th= e ConfigBuilder, similarly to (1), but for a ConfigSource. Disadvantage is that it must be done explicitly by the user. Summarizing I would agree with the proposal, BUT raise the question if we should enable this feature only explicitly for environment entries? J Anatole Am Do., 22. M=C3=A4rz 2018 um 15:34 Uhr schrieb Emily Jiang < bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>: > Please see my email below as I think my previous email went missing. > > Thanks > Emily > ---------- Forwarded message ---------- > From: Emily Jiang > Date: Wed, Mar 21, 2018 at 11:20 PM > Subject: replace characters in a property name of Environment variable > To: ConfigJSR public discussions > > > Dear all, > > As you may recall, recently we have done the issue of replacing . with _ > in environment variables. > See more details in https://github.com/eclipse/ConfigJSR/issues/24. > > After this, Steve raised another issue to ask to replace - with _ > https://github.com/eclipse/ConfigJSR/issues/53. Recently, more > requirements came up to ask for replacing more and more non alphanumeric > character with _. I suggested to replace the non-alphanumberic nor _ with= _ > in the environment variable name. The overall mapping rule for environmen= t > variables are: > > The search order is: > > 1. Exact match (i.e. {@code "com.ACME.size"}= ) > 2. Replace the character that is neither alphanumeric nor '*_' with _ = *(i.e. > {@code "com_ACME_size"}) > 3. Replace the character that is neither alphanumeric nor '*_' with _* > and convert to upper case (i.e. {@code > "COM_ACME_SIZE"}) > > > I'll do a PR shortly. Thought to get everyone on board on this matter. An= y > comments? > > > -- > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > > > > -- > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --=20 *Anatole Tresch* PPMC Member Apache Tamaya JCP Star Spec Lead *Switzerland, Europe Zurich, GMT+1* *maketechsimple.wordpress.com * *Twitter: @atsticks, @tamayaconf* *Speaking at:* [image: JSD_Speaker_2017][image: J-Con 2017 logo][image: JVM Con] --000000000000cd674e05681b2ffe Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi = all

<= div class=3D"gmail_default" style=3D"font-size:small">I generally see the p= roblem with the env variables as well as being env variables as one of the = common configuration mechanisms when using containers.
Whereas I dont like much the idea o= f adding too much magic into the config system and it is up to the user usi= ng environment capable keys, I also
see advantages of the given proposal especially for en= vironment variables.
Thinking on the topic I see alternative approaches:
1) Decorating a Config, e.g. s= omething like EnvironmentKeyReplacingConfig.of(config); Advantage here is t= hat this can be done without adding it to the
=C2=A0JSR API, Disadvantage is that probably= many users will hit this issue.
2) Decorating the Environment ConfigSource, so the propos= ed key resolution is only performed for environment variables. This can be = done when using the
=C2=A0ConfigBuilder, similarly to (1), but for a ConfigSource. Disadva= ntage is that it must be done explicitly by the user.

Summarizing I would agree with the proposal, B= UT raise the question if we should enable this feature only explicitly for = environment entries?

J An= atole




<= div class=3D"gmail_quote">
Am Do., 22. M=C3=A4rz 2018 um 15= :34=C2=A0Uhr schrieb Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
Please see my email below as I think my pre= vious email went missing.

Thanks
Emily
<= div>
---------- Forwarded message ----------
F= rom: Emily Jiang <emijiang6@googl= email.com>
Date: Wed, Mar 21, 2018 at 11:20 PM
Subject:= replace characters in a property name of Environment variable
To: Confi= gJSR public discussions <ceousO09I6tMWPtM@ElHQwbxuqmY1UZfe>


Dear all,

As you may recall, recently we have = done the issue of replacing . with _ in environment variables.
After this, Steve raised another issue to = ask to replace - with _ https://github.com/eclipse/ConfigJSR/issues/53. Recently, more requirements came up to ask for replacing more and more n= on alphanumeric character with _. I suggested to replace the non-alphanumbe= ric nor _ with _ in the environment variable name. The overall mapping rule= for environment variables are:

The search order is:
  1. Exact match (i.e. {@code "com.ACME.size"})
  2. Repl= ace the character that is neither alphanumeric nor '_' with _ (i.e. {@code "com_ACME_size"})
  3. Replace the character = that is neither alphanumeric nor '_' with _ and convert to u= pper case (i.e. {@code "COM_ACME_SIZE"})

<= div>I'll do a PR shortly. Thought to get everyone on board on this matt= er. Any comments?


--
Thanks
Emily
=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



--
Th= anks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emi= ly Jiang
ejiang@a= pache.org
_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/listinfo/= configjsr-experts

--=
<= div dir=3D"ltr">
Anat= ole Tresch
PPMC Member Apache Tamaya
JCP Star Spec Lead
Switzerland,=C2=A0Europe Zurich, GMT+1
Twitter: =C2=A0@atsticks, = @tamayaconf

Speaking at:

=C2=A0=C2=A03D"JSD_Speaker_2017"3D"J-Con3D"JVM

=
--000000000000cd674e05681b2ffe-- From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Fri Mar 23 19:11:20 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-lf0-f47.google.com (mail-lf0-f47.google.com [209.85.215.47]) by mail.eclipse.org (Postfix) with ESMTP id 02D412DCD38 for ; Fri, 23 Mar 2018 19:11:18 -0400 (EDT) Received: by mail-lf0-f47.google.com with SMTP id p142-v6so20522673lfd.6 for ; Fri, 23 Mar 2018 16:11:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=dR79O/YKfNagty1YGyPeCj+Jox5JfUQjziAVfOoOhtY=; b=LCQ04eHYgCr5LFK/6SpZkgiROAZH4u46/excEylmqG3vCLAnJJUl2esDTxK2qO0OZp Bkq+YJhO616fAIYuTHGQT0D1aem1sWdtrbxSkGZNoHyeN4vvso8HcK+7GfaADAV7bmoH 7U0bp1TYTB6D+eF1u7h6pHeUZAgLLfBUZXSINk/8HMyQXs2jPb77helQkuTNwVmlYBUe LBkWylDS4zo/3ioM4HFssGZJUq/GOzovVfsZnNMDcTjDbrRUdDKZz6o8MFGJHCTxiIng uR8OPaEnSgUxgtTuVt1s/z6Dzr+u2ONvqpN3Gt8bWbjPeDODR8bNUH2aQikTzSPmxAwR P9+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=dR79O/YKfNagty1YGyPeCj+Jox5JfUQjziAVfOoOhtY=; b=ItACHr7JuIqe3tYdOAMM6xoeZZGDVqlSaZD/JR2bZbS2CBzA/nTD3w39rKVdfUOsNQ BFUAL4QTwlMgGx4WIPxRTIkRBuCt7dUISBtr6VGlOMY9SlZPHZaNAOE6BSd796RVP9sF DULR1QsRyJlGkRJLyi8GghQb9lrhB5tKE1sxzGpc97G09hsQOnUsn/qqyHco1YtD/ebf 1mzhPxdlTArF978tY+rSdR0Q8eCBQ0LquIknyfG8z5mtb/AoMLrxGws0PAlW/bDbN2e5 Yt+2e83oxfjtANWixmILQbVpWeHuiRU2UAl7NLUAsNfW6EsEPhyywoJYJyE/0b2STp7T 07Hg== X-Gm-Message-State: AElRT7Fv3qVLDlsbQHTMGK3kveNVeGbR9vQ3mpnzzXaBp2d9XxuTUJVy 3P1RVFSqc9sKmqnZzos3uEh62YltypVj1y9v390= X-Google-Smtp-Source: AG47ELtascOb5etD6nMrNQzR5sPmpfw6VC/KHhpc6FAs5aoCw9GZv/d6771lZ6JJ9O8C37nyzkQZWfx13Z1Npfp8Kx4= X-Received: by 2002:a19:dd89:: with SMTP id w9-v6mr21857706lfi.82.1521846677064; Fri, 23 Mar 2018 16:11:17 -0700 (PDT) MIME-Version: 1.0 Received: by 10.179.80.142 with HTTP; Fri, 23 Mar 2018 16:11:16 -0700 (PDT) In-Reply-To: References: From: Emily Jiang Date: Fri, 23 Mar 2018 23:11:16 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="00000000000096d1cf05681c8a7d" Subject: Re: [ConfigJSR-experts] Fwd: replace characters in a property name of Environment variable X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Mar 2018 23:11:20 -0000 --00000000000096d1cf05681c8a7d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Yes, Anatole, This will only apply to environment variable. If doing global replacement is too much, we could just list a few frequent used characters, such as ., -, / etc. I also looked at the character escape but I don't think it is an option or possible in containers. Thanks Emily On Fri, Mar 23, 2018 at 9:33 PM, Anatole Tresch wrote: > Hi all > > I generally see the problem with the env variables as well as being env > variables as one of the common configuration mechanisms when using > containers. > Whereas I dont like much the idea of adding too much magic into the confi= g > system and it is up to the user using environment capable keys, I also > see advantages of the given proposal especially for environment variables= . > Thinking on the topic I see alternative approaches: > 1) Decorating a Config, e.g. something like EnvironmentKeyReplacingConfig= .of(config); > Advantage here is that this can be done without adding it to the > JSR API, Disadvantage is that probably many users will hit this issue. > 2) Decorating the Environment ConfigSource, so the proposed key resolutio= n > is only performed for environment variables. This can be done when using = the > ConfigBuilder, similarly to (1), but for a ConfigSource. Disadvantage is > that it must be done explicitly by the user. > > Summarizing I would agree with the proposal, BUT raise the question if we > should enable this feature only explicitly for environment entries? > > J Anatole > > > > > Am Do., 22. M=C3=A4rz 2018 um 15:34 Uhr schrieb Emily Jiang < > bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>: > >> Please see my email below as I think my previous email went missing. >> >> Thanks >> Emily >> ---------- Forwarded message ---------- >> From: Emily Jiang >> Date: Wed, Mar 21, 2018 at 11:20 PM >> Subject: replace characters in a property name of Environment variable >> To: ConfigJSR public discussions >> >> >> Dear all, >> >> As you may recall, recently we have done the issue of replacing . with _ >> in environment variables. >> See more details in https://github.com/eclipse/ConfigJSR/issues/24. >> >> After this, Steve raised another issue to ask to replace - with _ >> https://github.com/eclipse/ConfigJSR/issues/53. Recently, more >> requirements came up to ask for replacing more and more non alphanumeric >> character with _. I suggested to replace the non-alphanumberic nor _ wit= h _ >> in the environment variable name. The overall mapping rule for environme= nt >> variables are: >> >> The search order is: >> >> 1. Exact match (i.e. {@code >> "com.ACME.size"}) >> 2. Replace the character that is neither alphanumeric nor '*_' with _ >> *(i.e. {@code "com_ACME_size"}) >> 3. Replace the character that is neither alphanumeric nor '*_' with _= * >> and convert to upper case (i.e. {@code >> "COM_ACME_SIZE"}) >> >> >> I'll do a PR shortly. Thought to get everyone on board on this matter. >> Any comments? >> >> >> -- >> Thanks >> Emily >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Emily Jiang >> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >> >> >> >> -- >> Thanks >> Emily >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> Emily Jiang >> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts > > > > -- > *Anatole Tresch* > PPMC Member Apache Tamaya > JCP Star Spec Lead > *Switzerland, Europe Zurich, GMT+1* > *maketechsimple.wordpress.com * > *Twitter: @atsticks, @tamayaconf* > > *Speaking at:* > > [image: JSD_Speaker_2017][image: J-Con 2017 logo][image: JVM Con] > > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > --=20 Thanks Emily =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --00000000000096d1cf05681c8a7d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Yes, Anatole,

This will only apply to e= nvironment variable. If doing global replacement is too much, we could just= list a few frequent used characters, such as ., -, / etc. I also looked at= the character escape but I don't think it is an option or possible in = containers.

Thanks
Emily

On Fri, Mar 23, 2018 = at 9:33 PM, Anatole Tresch <X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
Hi all

I generally see the problem with the env variables as well as be= ing env variables as one of the common configuration mechanisms when using = containers.
Whe= reas I dont like much the idea of adding too much magic into the config sys= tem and it is up to the user using environment capable keys, I also
see advantages of the = given proposal especially for environment variables.
Thinking on the topic I see alternati= ve approaches:
= 1) Decorating a Config, e.g. something like EnvironmentKeyReplacingConfig.<= wbr>of(config); Advantage here is that this can be done without adding it t= o the
=C2=A0JSR= API, Disadvantage is that probably many users will hit this issue.
2) Decorating the Envi= ronment ConfigSource, so the proposed key resolution is only performed for = environment variables. This can be done when using the
=C2=A0ConfigBuilder, similarly to (= 1), but for a ConfigSource. Disadvantage is that it must be done explicitly= by the user.
<= br>
Summarizing= I would agree with the proposal, BUT raise the question if we should enabl= e this feature only explicitly for environment entries?

J Anatole




Am Do., 22. M=C3=A4rz 2018 um 15:34=C2=A0Uhr schr= ieb Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
Please = see my email below as I think my previous email went missing.

= Thanks
Emily
--------= -- Forwarded message ----------
From: Emil= y Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>
Date: Wed, = Mar 21, 2018 at 11:20 PM
Subject: replace characters in a property name = of Environment variable
To: ConfigJSR public discussions <configjsr-discuss@e= clipse.org>


Dear all,

<= /div>As you may recall, recently we have done the issue of replacing . with= _ in environment variables.
<= div>After this, Steve raised another issue to ask to replace - with _ htt= ps://github.com/eclipse/ConfigJSR/issues/53. Recently, more requir= ements came up to ask for replacing more and more non alphanumeric characte= r with _. I suggested to replace the non-alphanumberic nor _ with _ in the = environment variable name. The overall mapping rule for environment variabl= es are:

The search order is:
  1. Exact match (i.e. {@code "com.ACME.siz= e"})
  2. Replace the character that is neither alphanumeric nor &#= 39;_' with _ (i.e. {@code "com_ACME= _size"})
  3. Replace the character that is neither alphanumeric no= r '_' with _ and convert to upper case (i.e. {@code "COM_ACME_SIZE"})

I'= ;ll do a PR shortly. Thought to get everyone on board on this matter. Any c= omments?


--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailma= n/listinfo/configjsr-experts


--
Anatole Tresch
PPMC Member Apache Tamaya
JCP Star S= pec Lead
Switzerland,=C2=A0Europe Zurich, GMT+1
<= div>m= aketechsimple.wordpress.com=C2=A0
Twitter: =C2=A0@= atsticks, @tamayaconf

Speaking at:

=C2=A0=C2=A03D"JSD_Speak=3D"J-Con3D"JVM=
=

_______________________________________________
ConfigJSR-experts mailing list
ConfigJSR-experts@eclipse.= org
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/list= info/configjsr-experts



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--00000000000096d1cf05681c8a7d-- From X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0 Sat Mar 24 04:06:36 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-oi0-f47.google.com (mail-oi0-f47.google.com [209.85.218.47]) by mail.eclipse.org (Postfix) with ESMTP id 416232DCDBF for ; Sat, 24 Mar 2018 04:06:35 -0400 (EDT) Received: by mail-oi0-f47.google.com with SMTP id x20-v6so11964635oie.2 for ; Sat, 24 Mar 2018 01:06:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=G2MV2siCjS0KCHub78vfm0+kJ+Orh4i5LN9osu8NpDc=; b=H/FzDCOClvh9Plhrw8rwMKsPYPMJhOvLN+lVuRZOGUSi463Tk6I4j14/CHBGPmkMuI 7nNFSizA6N0yRC/qQpYf6DmgfIstMcyu6thz53tT+Or54raqUut6FbRZNQEwMEP/UyY8 dzhRL9hNAplPr8+qunwCW8FlQYDUZbd0d00aSbAmJeI1rfMLeS/pyKiY+cg0LSLbJDan wP00le6cvq6iGEOTi0B0PwErIpbvtxeTShTrRMS+gs7KhT4PDYh/0xQMf9twqrtKrl4M yLzGxB25W7VB8/cUhYgEjn+D/tbxNxifUt7LaWQX8D38++3EqeTtisfDxouB+fjDPTHI /3ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=G2MV2siCjS0KCHub78vfm0+kJ+Orh4i5LN9osu8NpDc=; b=Br8pe1wxKHh4tsZoJsGGdp8vf9pAP/gJRg8SlzgqMAvmEXCutKVH0FKdap+vNDHwxA 4y9xYdV6WZrFrlaf2czTkytojkw0EAGu2lgUg2vb8broGBQ4T5D/sIrpcWa17ykQeq/w e4+AhzBRa162hRy2Fm2SJuWzeFAIM1QbfWAXM3tTFY6IxKuhCZ4PYyvU0euXb/X40oTl +X53ylLPDmRR6AbkBu5FjA3AirvAg15v18ePyWkXpHEnmRRNExePbJcbKLBMRZGiObu7 C38pqH2nOtcYpebPDrQlnHqRuMeplEXzSoz/K0RKkKw3gNeTYrWpNSoTIcD31jRon+03 Dt+w== X-Gm-Message-State: AElRT7FiEa70pGKkugagZk+hFGtyZld/ksAriQnEHvUDcCSiDCLb1SaG zpbqQR1uviB8azBQfY0g7FApTSn50iBcaDzHBtk= X-Google-Smtp-Source: AG47ELuXX8W1ign0R3Ut6pIECxxua3pZSurtynulwi9M6tXLz8Jvzkvr8ox3AO3H3z4s5pgAn5F6ioyuSV+xhp+IfOk= X-Received: by 10.202.102.208 with SMTP id m77mr15068860oik.178.1521878795671; Sat, 24 Mar 2018 01:06:35 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Anatole Tresch Date: Sat, 24 Mar 2018 08:06:24 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="001a11c015c401dd5005682405e9" Subject: Re: [ConfigJSR-experts] Fwd: replace characters in a property name of Environment variable X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Mar 2018 08:06:36 -0000 --001a11c015c401dd5005682405e9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable +1 sounds reasonable to me. Emily Jiang schrieb am Sa., 24. M=C3=A4rz 2018, = 00:11: > Yes, Anatole, > > This will only apply to environment variable. If doing global replacement > is too much, we could just list a few frequent used characters, such as .= , > -, / etc. I also looked at the character escape but I don't think it is a= n > option or possible in containers. > > Thanks > Emily > > On Fri, Mar 23, 2018 at 9:33 PM, Anatole Tresch > wrote: > >> Hi all >> >> I generally see the problem with the env variables as well as being env >> variables as one of the common configuration mechanisms when using >> containers. >> Whereas I dont like much the idea of adding too much magic into the >> config system and it is up to the user using environment capable keys, I >> also >> see advantages of the given proposal especially for environment variable= s. >> Thinking on the topic I see alternative approaches: >> 1) Decorating a Config, e.g. something like >> EnvironmentKeyReplacingConfig.of(config); Advantage here is that this ca= n >> be done without adding it to the >> JSR API, Disadvantage is that probably many users will hit this issue. >> 2) Decorating the Environment ConfigSource, so the proposed key >> resolution is only performed for environment variables. This can be done >> when using the >> ConfigBuilder, similarly to (1), but for a ConfigSource. Disadvantage i= s >> that it must be done explicitly by the user. >> >> Summarizing I would agree with the proposal, BUT raise the question if w= e >> should enable this feature only explicitly for environment entries? >> >> J Anatole >> >> >> >> >> Am Do., 22. M=C3=A4rz 2018 um 15:34 Uhr schrieb Emily Jiang < >> bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>: >> >>> Please see my email below as I think my previous email went missing. >>> >>> Thanks >>> Emily >>> ---------- Forwarded message ---------- >>> From: Emily Jiang >>> Date: Wed, Mar 21, 2018 at 11:20 PM >>> Subject: replace characters in a property name of Environment variable >>> To: ConfigJSR public discussions >>> >>> >>> Dear all, >>> >>> As you may recall, recently we have done the issue of replacing . with = _ >>> in environment variables. >>> See more details in https://github.com/eclipse/ConfigJSR/issues/24. >>> >>> After this, Steve raised another issue to ask to replace - with _ >>> https://github.com/eclipse/ConfigJSR/issues/53. Recently, more >>> requirements came up to ask for replacing more and more non alphanumeri= c >>> character with _. I suggested to replace the non-alphanumberic nor _ wi= th _ >>> in the environment variable name. The overall mapping rule for environm= ent >>> variables are: >>> >>> The search order is: >>> >>> 1. Exact match (i.e. {@code >>> "com.ACME.size"}) >>> 2. Replace the character that is neither alphanumeric nor '*_' with >>> _ *(i.e. {@code "com_ACME_size"}) >>> 3. Replace the character that is neither alphanumeric nor '*_' with >>> _* and convert to upper case (i.e. {@code >>> "COM_ACME_SIZE"}) >>> >>> >>> I'll do a PR shortly. Thought to get everyone on board on this matter. >>> Any comments? >>> >>> >>> -- >>> Thanks >>> Emily >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> Emily Jiang >>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>> >>> >>> >>> -- >>> Thanks >>> Emily >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> Emily Jiang >>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>> _______________________________________________ >>> ConfigJSR-experts mailing list >>> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >>> To change your delivery options, retrieve your password, or unsubscribe >>> from this list, visit >>> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >> >> >> >> -- >> *Anatole Tresch* >> PPMC Member Apache Tamaya >> JCP Star Spec Lead >> *Switzerland, Europe Zurich, GMT+1* >> *maketechsimple.wordpress.com * >> *Twitter: @atsticks, @tamayaconf* >> >> *Speaking at:* >> >> [image: JSD_Speaker_2017][image: J-Con 2017 logo][image: JVM Con] >> >> >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >> > > > > -- > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --001a11c015c401dd5005682405e9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
+1 sounds reasonable to me.

Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> schrieb am Sa., 24. M=C3=A4rz 201= 8, 00:11:
Yes, Ana= tole,

This will only apply to environment variable. If d= oing global replacement is too much, we could just list a few frequent used= characters, such as ., -, / etc. I also looked at the character escape but= I don't think it is an option or possible in containers.
Thanks
Emily
On Fri, Mar 23, 2018 at 9:33 PM, Anatole Tresc= h <X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0> wrote:
Hi all

I generally see the problem with the env variables as well as being env = variables as one of the common configuration mechanisms when using containe= rs.
Whereas I d= ont like much the idea of adding too much magic into the config system and = it is up to the user using environment capable keys, I also
see advantages of the given pr= oposal especially for environment variables.
Thinking on the topic I see alternative appro= aches:
1) Decor= ating a Config, e.g. something like EnvironmentKeyReplacingConfig.of(config= ); Advantage here is that this can be done without adding it to the
=C2=A0JSR API, Disadva= ntage is that probably many users will hit this issue.
2) Decorating the Environment Confi= gSource, so the proposed key resolution is only performed for environment v= ariables. This can be done when using the
=C2=A0ConfigBuilder, similarly to (1), but for a= ConfigSource. Disadvantage is that it must be done explicitly by the user.=

Summarizing I would agre= e with the proposal, BUT raise the question if we should enable this featur= e only explicitly for environment entries?

J Anatole




Am Do., 22. M=C3=A4rz 2018 um 15:34=C2=A0= Uhr schrieb Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>:
Please see my email below as I thi= nk my previous email went missing.

Thanks
Emily
---------- Forwarded message ------= ----
From: Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>
Date: Wed, Mar 21, = 2018 at 11:20 PM
Subject: replace characters in a property name of Envir= onment variable
To: ConfigJSR public discussions <configjs= GqNEgPBJnF0AdeeO@ElHQwbxuqmY1UZfe>


Dear all,
As you may recall, recently we have done the issue of replacing = . with _ in environment variables.
After this, Steve raised another issue to ask to = replace - with _ https://github.com/eclipse/ConfigJSR/= issues/53. Recently, more requirements came up to ask for replacing mor= e and more non alphanumeric character with _. I suggested to replace the no= n-alphanumberic nor _ with _ in the environment variable name. The overall = mapping rule for environment variables are:

The search order is:
  1. Exact match (i.e. {@code "com.ACME.size"})
  2. Replace the chara= cter that is neither alphanumeric nor '_' with _ (i.e. {@code "com= _ACME_size"})
  3. Replace the character that is neither alphanumer= ic nor '_' with _ and convert to upper case (i.e. {@code "COM_AC= ME_SIZE"})

I'll do a PR shortly. Thought t= o get everyone on board on this matter. Any comments?


--
<= div class=3D"m_3772718474621038995m_-8084217574865882961m_-5116800820992648= 396m_6084596089511918837m_-3022831355204685163gmail_signature">Thanks
Em= ily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily JiangYjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ



--
Thanks
Emily
=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ=
_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/= mailman/listinfo/configjsr-experts

--
<= div dir=3D"ltr">
Anatole Tresch
PPM= C Member Apache Tamaya
JCP Star Spec Lead
Switze= rland,=C2=A0Europe Zurich, GMT+1
Twitter: =C2=A0@atsticks, @ta= mayaconf

Speaking at:
=
=C2=A0=C2=A03D"JSD_Speaker_2017"3D"J-Con3D"JVM

=

_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailma= n/listinfo/configjsr-experts



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailma= n/listinfo/configjsr-experts --001a11c015c401dd5005682405e9-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Tue Mar 27 10:13:44 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-lf0-f52.google.com (mail-lf0-f52.google.com [209.85.215.52]) by mail.eclipse.org (Postfix) with ESMTP id A696C2DCCC1 for ; Tue, 27 Mar 2018 10:13:44 -0400 (EDT) Received: by mail-lf0-f52.google.com with SMTP id p142-v6so33544222lfd.6 for ; Tue, 27 Mar 2018 07:13:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=qZROIgJBw7NDgVVCutTDtPfmGkgd5Jyfgy++5itVkIo=; b=hZHBUCHFXmYO6g7wNAt98hRAAgJC6fXVbaJrY98P0Pc3uJvF8ETwloLYMd6KjNVywG sQJFkBMwVu7oZr4jX8akChI4/8gioGVflR7Ws1O3t+M5dm+GjSxau7zNmzabxBjveN1D ZY/IAeg+S9sgP/USGpt0hsdmPYcy8ewnq9OCU/73CGdSr/P4ANhaClZTmg5eXnD9MELS 1AylGvEucnYgzR1j1oq/bpsWtj9iWcixnPPcz/1k7Lk31ZHtTrqzFvsE7rGq21fRwSyh 8d9lHpF2MjmJfc8ZJWXD/5FD0V1FwQHgkQLY3MRXBPmEL7L4f7LoqsjJBCikbvXPFTfy lTSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=qZROIgJBw7NDgVVCutTDtPfmGkgd5Jyfgy++5itVkIo=; b=snTpJmZ4QS80yuEq6ZsFVMKqoaKlht3wgCELZvJ6ve3elhm1YfHSeyjz6DwHTVhWk5 T9o2FXq3HKhR+PgkYRxo5b+Dn/JeJxXO6vSWOQX/Y/aNFhNsFyj4D7eXNVwogZLUrQz9 W0QKlt/RrcKzaW47H4xHUSqbch2g3NflzJXQUl14xryzH/x1LKHCzs4dPAG/5R28rZEB Ecm0nPZlrnDa5rVIHcqB7eZCNsqNtqBJsovVucVJeXQaoyGmN3jbwaXJrTIu8HvqBQCc GAAW9PC2AopcoM+qEVNZJ+caC+7cktHQ/Ak4DoMiUdWrC3RtjNDpldQ7rT1PD8wQnjO6 igAA== X-Gm-Message-State: AElRT7H3wUTjFVT5fp/C6FnREh/EingWHwxWsU1HK5GxSlUJ2Z11rZza jFI6XQtkMtsVmsa8cM/XClYJ18nQVIetDTDvkHb+iQ== X-Google-Smtp-Source: AG47ELumLMzhNCykK+M8aOGUmrDK/80NpGRtTDXVf4f4HLw4w/W/br50ZA/3qGtgrTjK1amYCg7hubIzwHtrxDI2WQk= X-Received: by 10.46.66.82 with SMTP id p79mr17311427lja.57.1522160023818; Tue, 27 Mar 2018 07:13:43 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a19:594e:0:0:0:0:0 with HTTP; Tue, 27 Mar 2018 07:13:42 -0700 (PDT) From: Werner Keil Date: Tue, 27 Mar 2018 16:13:42 +0200 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="94eb2c1cdccc82dce40568657fd3" Subject: [ConfigJSR-experts] Duplication of label and milestone X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Mar 2018 14:13:44 -0000 --94eb2c1cdccc82dce40568657fd3 Content-Type: text/plain; charset="UTF-8" Hi, I noticed, an issue like https://github.com/eclipse/ConfigJSR/issues?q=is%3Aissue+is%3Aopen+label%3A1.0 has both a label "1.0" and a milestone with the same name. Is there a reason for that or was it just some experiment? Cheers, Werner --94eb2c1cdccc82dce40568657fd3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

has both a label "1.0" and a mil= estone with the same name.

Is there a reason f= or that or was it just some experiment?

Cheers,

Werner

--94eb2c1cdccc82dce40568657fd3-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Tue Apr 17 08:44:24 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-lf0-f50.google.com (mail-lf0-f50.google.com [209.85.215.50]) by mail.eclipse.org (Postfix) with ESMTP id B44E117D463 for ; Tue, 17 Apr 2018 08:44:22 -0400 (EDT) Received: by mail-lf0-f50.google.com with SMTP id m202-v6so9844277lfe.8 for ; Tue, 17 Apr 2018 05:44:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=wCtawNZqP+I7HK1JP3a4H1Ztmh30Hdkkr1eWKnWuMxo=; b=GHP6snVVIPXz7B9Mw5VfCKBCaKQ4U8FxS3PkoRqWETAyHNaZbwjh7JQqOZsKpIjUVM 94rkPfCl7tjUXK/iQALa8QdaDYMnk6+Q8BV1N6cIxohWXyeu+wheS3yuQ7UBqD1jwnES 1ZuxfIWdOPtvy4m6MEhYF3hTQBmSzv9Uc+R7w/iuEVKvZE2QTSwIROT72lqn3WyWEAuO hu5YvJ7vY+MIOScp2zWoQyb2Q9WwITbqtOXhKEuxVqkoAsEGsZOhRyCU3Yp++KaveLRk N+9CifF1t2uUxI1qJe91eVHAzM9t/421vwHvXNxbhrKRML/QD+Y5bgb3fnEqWLFvD2eC iaUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=wCtawNZqP+I7HK1JP3a4H1Ztmh30Hdkkr1eWKnWuMxo=; b=DE6Z6CJKekhno4flIfls/STAjAvVDoTgty7XVcrI62TQmJRRV38uhS/zbV3aLaxeLJ 89sV2cjTGjfeTDNBREGY5iQ7ZPuJeqS3zkWwa8UVbMKWT0IJqfJfUhtrUOieLZjRM0a+ Qk1LaVLiFKq1ThbnfTVX3rEw1x9jGYg+8TuUGwbkXIBhaoTxnZq/vhfz8BjkG+yWpoMc oNaVX9eQlCWYDahX8xOo4RPBeKa5OwRTcXknlRAWLZrVsSzA/r8Br/JG+BA6QxS0b3h3 zUyJjuA+VihitHPu1SgAOlbZzUgaUr9Dzjz+lQCTZ0ngUd4UjtrMRNB4joOjd3buETCC rBsw== X-Gm-Message-State: ALQs6tAZnmnxKOULN8427TKUapRI+4a1oyvuIQLaIRQcHYB2F3EqdA21 1eDXQ82KQcAPzAW6jHS1yjaPLxSgAR+ytDmhz/4= X-Google-Smtp-Source: AIpwx48KbK+nlJUb+FbHb2ZfybW/u2ipJSm9y1ZBEQLSBh7Ioi9Sro048v5ORSybKT3m9ImfyDMZWHhLus+IwvfuIbY= X-Received: by 10.46.77.214 with SMTP id c83mr1397254ljd.126.1523969061604; Tue, 17 Apr 2018 05:44:21 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a19:594e:0:0:0:0:0 with HTTP; Tue, 17 Apr 2018 05:44:20 -0700 (PDT) From: Werner Keil Date: Tue, 17 Apr 2018 14:44:20 +0200 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="94eb2c1abd8090d1b1056a0ab2fb" Subject: [ConfigJSR-experts] EDR? X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Apr 2018 12:44:24 -0000 --94eb2c1abd8090d1b1056a0ab2fb Content-Type: text/plain; charset="UTF-8" Hi, Any plans for an EDR1 in the near future? As this JSR was approved on Oct 9, 2017, April 9 a week ago marked the first 6 months, therefore without an EDR it could be subject to a Renewal Ballot soon. As long as the PMO or EC have no changed anything about that since I left the latter? Because JSR 377 (Andres and a few others are also in tha EG) was subject to a Renewal Ballot 2 at the end of March 2017 and no Renewal Ballot 3 was announced so far. Nor did Andres withdraw 377, so I guess the ballots should start soon, maybe after some Ratified Members were reseated, but after mid May I would expect to see some of those, so to avoid it, JSR 382 should produce an EDR1 soon. Regards, Werner --94eb2c1abd8090d1b1056a0ab2fb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Any plans for an EDR1 in the near f= uture?
As this JSR was approved on Oct 9, 2017, April 9 a week ag= o marked the first 6 months, therefore without an EDR it could be subject t= o a Renewal Ballot soon.

As long as the PMO or EC = have no changed anything about that since I left the latter?
Beca= use JSR 377 (Andres and a few others are also in tha EG) was subject to a R= enewal Ballot 2 at the end of March 2017 and no Renewal Ballot 3 was announ= ced so far. Nor did Andres withdraw 377, so I guess the ballots should star= t soon, maybe after some Ratified Members were reseated, but after mid May = I would expect to see some of those, so to avoid it, JSR 382 should produce= an EDR1 soon.

Regards,
Werner
--94eb2c1abd8090d1b1056a0ab2fb-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Tue Apr 17 16:36:07 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from sonic309-25.consmr.mail.ir2.yahoo.com (sonic309-25.consmr.mail.ir2.yahoo.com [77.238.179.83]) by mail.eclipse.org (Postfix) with ESMTP id 8679117D450 for ; Tue, 17 Apr 2018 16:36:06 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1523997365; bh=krjCcLjUHcrzcno8EIEfa0a/wOkqa7Q/zZtYZG8f/rE=; h=From:Subject:Date:References:To:In-Reply-To:From:Subject; b=IB5GkrVhla5J2SyeGW3O3WB7XJUyi4nExnqdHhHoRKn//LyCu0rb7Lx/T+3t+E3YhEJJfzHZ3ga0pxVuk7v4STZ2KppwYFR0VNihdgiTIkRwRLWSz8e8ObhLkt0/ZOt1etjWR+SpcqQCWEUKkxFFuGTYWVWVsVnCiqOaXgyek+w2MsydvrLxQ/yTkgRQKQgMoZhnMHNz+btxinZwOwQpRHQXn2MGBVK3VU30A0HEYx1tA2800IFG1VZxO6qYZ4o6FzVH2NFdLSyDzAN5833U3NqG7My6CDbNNpWOfnUFfkPEZaozUKnG3lIO2Gjc0LbvUOy8Zw/6eQF4J9fPGlGjkA== X-YMail-OSG: 7388dfAVM1k.kXmDyWTOi4mntSB9nRjTlWZotIYu8RSKq5Pwbylawg2Y1W2__bO JAgS_WCRTUsEbPwdQ1NMAeK4PQUnPS7KndtwfCN49VOjpR9yLY4WHvN6yy3a.aga9BA3XB3oLsd8 6iLagmtpxTshFJxPW7DtJa8B75j.G9zaIYJylbhTveu5BgR7ums7P27yJFqaPAdBvsiGmBoA8OGP De2FnoO7Glw2Zm9Jn49_Jzw59WzIELcZd4o3FNw_lyXHyja89vqeuoYSiXDmeAyZ17Dz445E9Ag7 u68MTYi2zpCYcn1OVWT9AHzERG2.fN34CmErS_tyNv_FMdjzbx3qttZmLvVg6wjHh69Pyweo9sTr 7rUSEX58THs_5EOaV2e9lZ_jcoauF.ITZMYuf12Fyrn5yVhfE2SmRl5gGS7fnMn1AWZBgMCLTsmq PA54wau_hzpuQpvG7OLilQ8gCRQo.kUAXd5iLyzrVU2LFrZKqk1vqmxaFATczDEo4rdXu6x33Mjr NIzaioyM- Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.ir2.yahoo.com with HTTP; Tue, 17 Apr 2018 20:36:05 +0000 Received: from 62-178-16-31.cable.dynamic.surfer.at (EHLO [192.168.0.234]) ([62.178.16.31]) by smtp426.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 40b382ead51bec9c24a7f0535adbc0db for ; Tue, 17 Apr 2018 20:36:05 +0000 (UTC) From: Mark Struberg Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.3 \(3445.6.18\)) Date: Tue, 17 Apr 2018 22:36:03 +0200 References: To: ConfigJSR expert discussions In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3445.6.18) Subject: Re: [ConfigJSR-experts] EDR? X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Apr 2018 20:36:07 -0000 Thanks for the ping, Werner! Indeed, we now found a possible solution for the dynamic handling. And thus we probably are soon ready to ship an EDR1. LieGrue, strub > Am 17.04.2018 um 14:44 schrieb Werner Keil : >=20 > Hi, >=20 > Any plans for an EDR1 in the near future? > As this JSR was approved on Oct 9, 2017, April 9 a week ago marked the = first 6 months, therefore without an EDR it could be subject to a = Renewal Ballot soon. >=20 > As long as the PMO or EC have no changed anything about that since I = left the latter? > Because JSR 377 (Andres and a few others are also in tha EG) was = subject to a Renewal Ballot 2 at the end of March 2017 and no Renewal = Ballot 3 was announced so far. Nor did Andres withdraw 377, so I guess = the ballots should start soon, maybe after some Ratified Members were = reseated, but after mid May I would expect to see some of those, so to = avoid it, JSR 382 should produce an EDR1 soon. >=20 > Regards, > Werner > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Thu Aug 23 17:00:50 2018 Return-Path: X-Original-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Delivered-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by mail.eclipse.org (Postfix) with ESMTP id 0A7FB2DCE75 for ; Thu, 23 Aug 2018 17:00:49 -0400 (EDT) Received: by mail-lf1-f52.google.com with SMTP id l26-v6so5106840lfc.8 for ; Thu, 23 Aug 2018 14:00:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=PG8SYstrWR/8fixJJ329qM7iaajT6wKkaaXVLWxWwdo=; b=OZnBDDjesIHqKVK705H31GzyVlF+puyYGpBoxyoFPqDWgTl5GF6scl7TMKEdGvOEDR tBxfqGDWmiu5+Q7/42sxDDckAvMjnxmF/3CPPcIVvdploXnioUzKQZlSl4M7qeNx++te btDHFi0M5a0BIm6ZK1Ht2bXIL7wfeVqoXeNP9c3/GMLM3MygH/Z9d536hTdokKO8zpMe OBVNRLXYrUIkjrjqYnGlkgs5VORIcDLbADukKjnFcgWJo7LDlkLJDHuZZiqo6huFt9ua gTn1BQUr/O3RS1QyeHZ0HYAs3TaK4f5XzzRSQ8nxE35UqQ9fbkst9doe8D7lWgGSmea/ uiiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=PG8SYstrWR/8fixJJ329qM7iaajT6wKkaaXVLWxWwdo=; b=P+NMjUUiG2+AawUj+o248wYerQbHkzGovC0VIVG6dkj5dALFjyVIqwT68Sltian0TF jUQjMYfQ0fcsvW7VEdIKUcIieZ/WLrKRI9IQsX5TfEoYTlX2J9BJHnTQ0f5RToSlxzcB E0Wx5qS21YS2UaYexG44nHHOHBCDtknqisiZW42p26PjP6r74xLcNDph8c/3rmnQPz+J 4S88svwINUYjIEdHWnEb3DZa4PMKYwmm79HKqn7Mdsejw91DlbTMIGSWNIRMfMWXrTqM bGSlBdFOvcY9swbyRPPX4Uv85jgmGFrkEI/GIt8Tcuz3d2q5i+5WECXBh4UXMBiWIlSe ZVIw== X-Gm-Message-State: AOUpUlFDgKyr3mwJzmcgsvHt1Bfqjt0nd0yDEGDa8+VZwlhu1748b6Bj kOk57fr857MMkODP20tojtKM1Oxt4QI7DWFUsePF59jVcGs= X-Google-Smtp-Source: AA+uWPzYtIeOG1F0U9OcEfXbCFcY47PBC2RZKDlaX13zKoeSRCTsE3eUABeLIS3fcv9QmK+R2Ws+y4aLVNLXpNFonrE= X-Received: by 2002:a19:23c5:: with SMTP id j188-v6mr13388380lfj.137.1535058049533; Thu, 23 Aug 2018 14:00:49 -0700 (PDT) MIME-Version: 1.0 From: Emily Jiang Date: Thu, 23 Aug 2018 22:00:37 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="000000000000c08c250574208d65" Subject: [ConfigJSR-experts] Environment variable name mapping X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Aug 2018 21:00:50 -0000 --000000000000c08c250574208d65 Content-Type: text/plain; charset="UTF-8" Dear ConfigJSR EG, In MicroProfile Config, after the discussion of ( https://groups.google.com/forum/#!topic/microprofile/zAo4edKTB4M) 1. Some operating systems allow only alphabetic characters or an underscore, _, in environment variables. Other characters such as ., /, etc may be disallowed. In order to set a value for a config property that has a name containing such disallowed characters from an environment variable, the following rules are used. 1. This ConfigSource searches 3 environment variables for a given property name (e.g. com.ACME.size): 1. Exact match (i.e. com.ACME.size) 2. Replace the character that is neither alphanumeric nor _ with _ (i.e. com_ACME_size) 3. Replace the character that is neither alphanumeric nor _ with _ and convert to upper case (i.e. COM_ACME_SIZE) I propose to port this to ConfigJSR. Please let you know what you think. This is very useful in k8s configmap, which was the reason requested in MicroProfile. -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --000000000000c08c250574208d65 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear ConfigJSR EG,

In MicroProfile Config, after= the discussion of (https://groups.google.com/forum/#!= topic/microprofile/zAo4edKTB4M)

=09 =09 =09 =09 =09

  1. Some operating systems allow only alphabetic cha= racters or an underscore, _= , in environment variables. Other characters such as ., /, etc may be disallowed. In order to set a value for a config property that has a name containing such disallowed characters from = an environment variable, the following rules are used.

=09 =09 =09 =09 =09
  1. This ConfigSource searches 3 environment variables for a given property nam= e (e.g. com.ACME.size):

    1. Exact match (i.e. com.AC= ME.size)

    2. Replace the character that is neither alphanumer= ic nor _ with _ (i.e. com_ACME= _size)

    3. Replace the character that is neither alphanumer= ic nor _ with _ and convert to upper case (i.e. COM_ACME_SIZE)

=09
=09
I propose to port this to ConfigJSR. Please let you know what you thin= k. This is very useful in k8s configmap, which was the reason requested in = MicroProfile.



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
--000000000000c08c250574208d65-- From X78cXcqkQaJQB1mg@RwKIriitWfeDKzz0 Fri Aug 24 02:30:33 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-oi0-f43.google.com (mail-oi0-f43.google.com [209.85.218.43]) by mail.eclipse.org (Postfix) with ESMTP id 576692DCF03 for ; Fri, 24 Aug 2018 02:30:31 -0400 (EDT) Received: by mail-oi0-f43.google.com with SMTP id k12-v6so13559488oiw.8 for ; Thu, 23 Aug 2018 23:30:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=3490E+vfpkz5zB47v4rz4Co0uxKB1EmQsyhb37P5oDM=; b=FGX9P1bLrIbh1PNxPch4dyILSTla1m+j3MxqPHsClNYl7p1KUtRPevR/uL6Y4/ihMF LAVMUWlwj709hYFeSzNuqPH40R2DQC2klb4RaN7TQNZIiwJZ5MWfjuJo5L/dj1gqxq5l krhEUq/dRhkG1CC01gg0LKN2r3F8yiim5ZTzbPED1TuQiqluMbd81munq2muAbx+O54h bW8nlqMxHSE3pXFBnD8/Aj2ePvUlQTzZBgzM7cYvsHOtMG00cA78bS2EgD1blLfj3gHo wK/PzmFJ7q6SWPE9G6AwaBl34wJLcS7kXn36G/t4/tjLI2IaokysgdWC/bn2Wi/EmeGu YHDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=3490E+vfpkz5zB47v4rz4Co0uxKB1EmQsyhb37P5oDM=; b=A7DIkDFnOnsEKr1oe7XeuI73l/d8VBBC/4xXvNq1sH7QIKgH7cqpDZA26O+tF60jVx h9yGVNgd7tdyv6dzzmNhXgIVXKF/cx5A1ZMxEEDb/axB7Y5eWh0LX8UXQRftV4zoPR99 NFxdYIeBNgypFvlTQ56Pw/lP/bHDLH9JonkxtAgHPpLPT5drRuOATdvrb0g5rZBNh9ia FbJdb+Gxp1jfWeFp8uc7YDe2a1qIWTn6yhc75Vj2qiWuiSdFn2oSTQ+taE2IetDnjx8I /DO4nXhdmCXy6qbVQVdbr81a4lbWySWGiAbudoVWG8TXZT4r9ziIgwluLZKt603b/s3y 5jNg== X-Gm-Message-State: APzg51C+qYmWYtLJvoHm+sUUVy59ZPApVmeQDwCukiohPTz1aihsKDK0 1SYVpZbqBxXhVcmPRQ008skVH5ycCg1nHnzZ3z56vg== X-Google-Smtp-Source: ANB0Vdb50Saiq+/U0Mc6ehXH8LA0lHT1Kz7aD8iO0MaEc/GN+p3ld6VQpiE5ovYInYy2skF4joKq6kz9wxOkB19LNVA= X-Received: by 2002:aca:e38d:: with SMTP id a135-v6mr334911oih.16.1535092231179; Thu, 23 Aug 2018 23:30:31 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Anatole Tresch Date: Fri, 24 Aug 2018 08:30:19 +0200 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="0000000000002313180574288374" Subject: Re: [ConfigJSR-experts] Environment variable name mapping X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Aug 2018 06:30:33 -0000 --0000000000002313180574288374 Content-Type: text/plain; charset="UTF-8" +1 from my side. Tamaya also supports this feature. Emily Jiang schrieb am Do., 23. Aug. 2018, 23:00: > Dear ConfigJSR EG, > > In MicroProfile Config, after the discussion of ( > https://groups.google.com/forum/#!topic/microprofile/zAo4edKTB4M) > > > 1. > > Some operating systems allow only alphabetic characters or an > underscore, _, in environment variables. Other characters such as ., /, > etc may be disallowed. In order to set a value for a config property that > has a name containing such disallowed characters from an environment > variable, the following rules are used. > > > 1. > > This ConfigSource searches 3 environment variables for a given > property name (e.g. com.ACME.size): > 1. > > Exact match (i.e. com.ACME.size) > 2. > > Replace the character that is neither alphanumeric nor _ with _ (i.e. > com_ACME_size) > 3. > > Replace the character that is neither alphanumeric nor _ with _ and > convert to upper case (i.e. COM_ACME_SIZE) > > I propose to port this to ConfigJSR. Please let you know what you think. > This is very useful in k8s configmap, which was the reason requested in > MicroProfile. > > > > -- > Thanks > Emily > ================= > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --0000000000002313180574288374 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
+1 from my side. Tamaya also supports this feature.
=
Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> schrieb a= m Do., 23. Aug. 2018, 23:00:
Dear ConfigJSR EG,

In MicroProfile Config, after the d= iscussion of (https://gro= ups.google.com/forum/#!topic/microprofile/zAo4edKTB4M)

=09 =09 =09 =09 =09

  1. Some operating systems allow only alphabetic cha= racters or an underscore, _= , in environment variables. Other characters such as ., /, etc may be disallowed. In order to set a value for a config property that has a name containing such disallowed characters from = an environment variable, the following rules are used.

=09 =09 =09 =09 =09
  1. This ConfigSource searches 3 environment variables for a given property nam= e (e.g. com.ACME.size):

    1. Exact match (i.e. com.AC= ME.size)

    2. Replace the character that is neither alphanumer= ic nor _ with _ (i.e. com_ACME= _size)

    3. Replace the character that is neither alphanumer= ic nor _ with _ and convert to upper case (i.e. COM_ACME_SIZE)

=09
=09
I propose to port this to ConfigJSR. Please let you know what you thin= k. This is very useful in k8s configmap, which was the reason requested in = MicroProfile.



--
Thanks
Emily
=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailma= n/listinfo/configjsr-experts
--0000000000002313180574288374-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Fri Aug 24 05:47:20 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mail.eclipse.org (Postfix) with ESMTP id 4E3332DCC1D for ; Fri, 24 Aug 2018 05:47:19 -0400 (EDT) Received: by mail-wr1-f45.google.com with SMTP id o37-v6so6955817wrf.6 for ; Fri, 24 Aug 2018 02:47:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=gDypuRPMuVa5Qvqe1pPbF3ALknnHqASnRfVskcM9M+0=; b=HW9zVox5ayvMJa4dKL9GlXQCOiVgbGu88xZ7aXMUppKzyHn9YXheXpY9W9PpssQ/Yb mrjXrPV2Ovbukjwk8FmqFMsgoxa1mnwiRo2MpZ2RUCgUGzUTYHjNcMeoChh8fTlul2Em ERIxJHpH9J/oDB928RmzJyLk43L7S/zRyO3Tg+WTIUUE29NwEYPfw7nGeb3NdHVAzbtz b+qENtLkNbpWBpqnrC1YoSiEPLAedyHBVHgqEAAmnDl2KbMb/vuC/qTYjOrY0eeRfaUZ WskTP5sUTtYvOci9tjg0q9YyQxGxNNvS7qnM2g7DzwZ0jkaB1bYeXB7Xv+y/S0jf09HZ wHDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=gDypuRPMuVa5Qvqe1pPbF3ALknnHqASnRfVskcM9M+0=; b=Qeh3UIpwIxkfInJiW46DIBZctA+cXSfMxELyCGRYwV+E/amHYcsiPnn5/X7CEk0nYi mgNxzf7YjHJo+k04Iuk7PSHwOKEClm7b8mE8Z4pfTithuTU2aORJ9If8xmDuteX8eMzO pC6pwclhfU9H7kYVBQ9x+1T4glEKDioB33d47C/nB7jGuYnLrfZi1bfGfFb3VjFyUNd7 koy8zTnmnY8eYpjHDKjS4PO+Jhiisj5IGQ/6CpEFXeb1nwcuyeYb4XM82T9wyqRSKKiB fYESzgcqIhD6aCoYirY7FZ0GQCUBIKZCX+XyERrsguMehz7We0fz5zUby4r/+O9KHKAB 8GPw== X-Gm-Message-State: APzg51DaMhwt0Yk9IZnf/hXrbpM0ca/3tE+atoDlc519zd56C33MfK3L SKaO4dldOL5mYjBW7tsocABUzBjFSXnf4uk6Iu50/w== X-Google-Smtp-Source: ANB0VdbjfdbrMkVZwlKHLRNM3QhF739Uwx8mK76obGatQeaoMS4Yojy/TebXYgpbSx3EotbH33efFlIyp9LbKe74gVw= X-Received: by 2002:adf:ec05:: with SMTP id x5-v6mr689850wrn.266.1535104039509; Fri, 24 Aug 2018 02:47:19 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Werner Keil Date: Fri, 24 Aug 2018 11:47:08 +0200 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="000000000000f7e51905742b4277" Subject: Re: [ConfigJSR-experts] Environment variable name mapping X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Aug 2018 09:47:20 -0000 --000000000000f7e51905742b4277 Content-Type: text/plain; charset="UTF-8" Hi, Sounds good. Another question especially after the Spec WG call this week, does it make sense to have Eclipse now file a JSR javax.config while the namespace David from Tomitribe explicitly mentioned could then be something like jakarta.config? As of now JSR 382 has not filed an EDR although it would be long overdue at JCP. There is also no javax.config artifact on MavenCentral at least not in the release space. What are the plans here? Have 2 later even 3 different APIs/packages - org.eclipse.microprofile.config - javax.config - jakarta.config Or fewer? The 1.0 release if progressing to a Final release may have no problem using the javax.config namespace because it started before Java EE was contributed to Eclipse/Jakarta EE, but everything that goes beyond a simple MR at a later point must then be declared under jakarta.config, thus the API would spread across 2 different packages. Thanks and Regards, Werner On Fri, Aug 24, 2018 at 8:30 AM Anatole Tresch wrote: > +1 from my side. Tamaya also supports this feature. > > Emily Jiang schrieb am Do., 23. Aug. 2018, > 23:00: > >> Dear ConfigJSR EG, >> >> In MicroProfile Config, after the discussion of ( >> https://groups.google.com/forum/#!topic/microprofile/zAo4edKTB4M) >> >> >> 1. >> >> Some operating systems allow only alphabetic characters or an >> underscore, _, in environment variables. Other characters such as ., /, >> etc may be disallowed. In order to set a value for a config property that >> has a name containing such disallowed characters from an environment >> variable, the following rules are used. >> >> >> 1. >> >> This ConfigSource searches 3 environment variables for a given >> property name (e.g. com.ACME.size): >> 1. >> >> Exact match (i.e. com.ACME.size) >> 2. >> >> Replace the character that is neither alphanumeric nor _ with _ (i.e. >> com_ACME_size) >> 3. >> >> Replace the character that is neither alphanumeric nor _ with _ and >> convert to upper case (i.e. COM_ACME_SIZE) >> >> I propose to port this to ConfigJSR. Please let you know what you think. >> This is very useful in k8s configmap, which was the reason requested in >> MicroProfile. >> >> >> >> -- >> Thanks >> Emily >> ================= >> Emily Jiang >> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts --000000000000f7e51905742b4277 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Sounds good.

Another question especially after the Spec WG call this week, does it ma= ke sense to have Eclipse now file a JSR javax.config while the namespace Da= vid from Tomitribe explicitly mentioned could then be something like jakart= a.config?

As of now JSR 382 has not filed an EDR a= lthough it would be long overdue at JCP. There is also no javax.config arti= fact on MavenCentral at least not in the release space.

What are the plans here?=C2=A0

Have 2 later = even 3 different APIs/packages=C2=A0
  • org.eclipse.micropro= file.config
  • javax.config
  • jakarta.config
Or fe= wer?

The 1.0 release if progressing to a Final rel= ease may have no problem using the javax.config namespace because it starte= d before Java EE was contributed to Eclipse/Jakarta EE, but everything that= goes beyond a simple MR at a later point must then be declared under jakar= ta.config, thus the API would spread across 2 different packages.

Thanks and Regards,

Werner=C2=A0

<= /div>


On Fri, Aug 24, 2018 at = 8:30 AM Anatole Tresch <atsticks@g= mail.com> wrote:
+1 from my side. Tamaya also supports this feature.

Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC> sc= hrieb am Do., 23. Aug. 2018, 23:00:
Dear ConfigJSR EG,

In MicroProfile Config, afte= r the discussion of (http= s://groups.google.com/forum/#!topic/microprofile/zAo4edKTB4M)

<= p> =09 =09 =09 =09 =09

  1. Some operating systems allow only alphabetic cha= racters or an underscore, _= , in environment variables. Other characters such as ., /, etc may be disallowed. In order to set a value for a config property that has a name containing such disallowed characters from = an environment variable, the following rules are used.

=09 =09 =09 =09 =09
  1. This ConfigSource searches 3 environment variables for a given property nam= e (e.g. com.ACME.size):

    1. Exact match (i.e. com.AC= ME.size)

    2. Replace the character that is neither alphanumer= ic nor _ with _ (i.e. com_ACME= _size)

    3. Replace the character that is neither alphanumer= ic nor _ with _ and convert to upper case (i.e. COM_ACME_SIZE)

=09
=09
I propose to port this to ConfigJSR. Please let you know what you thin= k. This is very useful in k8s configmap, which was the reason requested in = MicroProfile.



--
Thanks
Emily
= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emily Jiang
ejiang= @apache.org
_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailma= n/listinfo/configjsr-experts
_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/listinfo/= configjsr-experts
--000000000000f7e51905742b4277-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Fri Aug 24 08:47:07 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from sonic304-22.consmr.mail.ir2.yahoo.com (sonic304-22.consmr.mail.ir2.yahoo.com [77.238.179.147]) by mail.eclipse.org (Postfix) with ESMTP id 76DAF2DCF33 for ; Fri, 24 Aug 2018 08:47:06 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1535114827; bh=fpqUzlET8YRWPRuy7u0NWRxHDE1cdP161OykkLPMs9s=; h=From:Subject:Date:References:To:In-Reply-To:From:Subject; b=G2EhzlcUJCpBkDM3AajSEqYU/Vk8Fa0y3gvSunERBERcHjLlw5i4NayaY25gInBtK17B9uXYAhdRR9lkiDa123lNXvh0XQ8fKafHexz0giQ8yOgziTSy4xrPFCJ2FdlZSOpy3XDWxpX9tvFfeJ9Lesbi27qiFmz0hWLPIe/1lB47ywIijRZClk8pTt27tsFUOi0HWbqM4PW9NCFCC9DXG6Thcn9XMFn/qoS8T1ZdwxEQzNdsF4VLCZcO011sGuD9GiAo1+gO7ynVg7zYGEOu0sDxC7kTXgvfTm7uMtdj4ojFjUCnID7yfLVLc6712hioNO/ShapDfDRwp2uhjpURDQ== X-YMail-OSG: KkLNnNQVM1nZw_Bi7QwhvBDXbIuryTaIVg5fx24JDWuFK4VZ1LAg5MD_05wyhuZ 9Gl__Tx9FJh0Uux3eG0JTV3cETUhN0s6te2blsWG6gK1mYy.3BVN8efVgOXacLXXMbCXyQMd0YEr 0IkTpiGcyeCEbJoHqUt4IVG3HrokZ1QMUttweglExYT.v9YS3y_zyjhJK7sn3UkjKPJs8J4lV8No kE0w.QYWKbj5SOeyNy8i2eIKnPdjvneIMHPBaYwE0kHdJz1HlRYdiWiVCAK2b7au46GD1V2oYK2z gz5LbGysq3gykaq9i0mDvdmMqfL6doDWzK5PkFCEkvNUyqMTwpf7iDeyQrpjB.iP8q3GoE5hCrda 48pvZ05tK6fAJEjjNy.FzF2jMZslpoVSK2XlzYoz9WQwih_4v5d9E4nxZv74TFRpRpl5A_SsIJ.X Kep.g2gP_c9yTYwWwVx6O6obGOa7KSk.PM8MZyEQhZMsxBVM5P62rd9Co6iJBif1zk5T26.SHvgQ KN8TIm0ZlWAM7z8ytuzYYSPBMkU3qitkT30LYxlNE0E_fFfloQVrrgtAqRIeG7x_1Uxl8mLJDD0V jt6LPpwiukA01nUzAXjVLLV3Tx.7Mr25LOr_AB1FcVJ0XYG4zlSAnicUdts.Ko6W2dToFX2WYsfg AjjzD1OUatmGRNYYVYNy_xdNJzadkaK2Z.lb4qwURXEgHubkyBlxmKQnE_5oU_hEXYeQspKGCNPf b3C3OOkj3bazADH6z6_JiPBjGPhweFFfPbzZr6R5VCrzRCqhFBpHMHMAjMXnc2yWcevTHv7vHB.g 3B9AWxtLlLag3fGC45aeKuDfS.5YgYk3.Z7U.2PfAb.wvMrbqhYiDboZF8UIvhshoaiRI56G1HJd vfHFDE8OPL2ZO1aRwUoOqrMoe96a5EFWkIKVwXcqZEd7D6yPNCj8aar91KKz9tB1SWB7b_VkCwiZ QLbB_8bu_Dk4s_1GuqFGo8hPjL9RwnzVuVfpGkANxFFQ- Received: from sonic.gate.mail.ne1.yahoo.com by sonic304.consmr.mail.ir2.yahoo.com with HTTP; Fri, 24 Aug 2018 12:47:07 +0000 Received: from 62-178-16-31.cable.dynamic.surfer.at (EHLO [192.168.0.234]) ([62.178.16.31]) by smtp428.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 3ee8e9feaf460481da6a3c3672297656 for ; Fri, 24 Aug 2018 12:47:02 +0000 (UTC) From: Mark Struberg Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Date: Fri, 24 Aug 2018 14:47:00 +0200 References: To: ConfigJSR expert discussions In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3445.9.1) Subject: Re: [ConfigJSR-experts] Environment variable name mapping X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Aug 2018 12:47:07 -0000 Actually the reason we introduced this in mp-config was not kubernetes = but Docker.=20 But anyway, we already have a ticket with tons of discussions for = ConfigJSR: https://github.com/eclipse/ConfigJSR/issues/24 And this one is already resolved. So I'm not sure what the changes are = you want to propose? LieGrue, strub > Am 23.08.2018 um 23:00 schrieb Emily Jiang : >=20 > Dear ConfigJSR EG, >=20 > In MicroProfile Config, after the discussion of = (https://groups.google.com/forum/#!topic/microprofile/zAo4edKTB4M)=20 >=20 >=20 > =E2=80=A2 Some operating systems allow only alphabetic = characters or an underscore, _, in environment variables. Other = characters such as ., /, etc may be disallowed. In order to set a value = for a config property that has a name containing such disallowed = characters from an environment variable, the following rules are used. >=20 > =E2=80=A2 This ConfigSource searches 3 environment variables for = a given property name (e.g. com.ACME.size): >=20 > =E2=80=A2 Exact match (i.e. com.ACME.size) >=20 > =E2=80=A2 Replace the character that is neither = alphanumeric nor _ with _ (i.e. com_ACME_size) >=20 > =E2=80=A2 Replace the character that is neither = alphanumeric nor _ with _ and convert to upper case (i.e. COM_ACME_SIZE) >=20 > I propose to port this to ConfigJSR. Please let you know what you = think. This is very useful in k8s configmap, which was the reason = requested in MicroProfile. >=20 >=20 >=20 > --=20 > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Fri Aug 24 17:41:38 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) by mail.eclipse.org (Postfix) with ESMTP id E63872DCF52 for ; Fri, 24 Aug 2018 17:41:37 -0400 (EDT) Received: by mail-lf1-f41.google.com with SMTP id x26-v6so5661160lfi.7 for ; Fri, 24 Aug 2018 14:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=IqLUeibi1jgSI5sAJEPZabPr3CRzrs9plXRs/+bKRPQ=; b=DBAdDaE1GayfIBWYBSkS0pPA0HWNVGd+hVQwDJ+N1us1wPevD3zyA9OgpXsWoNv/NP RH8wUMREC6h7d2ddjj+TApGQXY08jFQ48vrXGAyZ/nja01nj5jcbHZzoiW3Ep0WKaDZR 1l6WcwzX/fd65lVCv5nBXZTQnuOWX+PHiyOaZ9Ss79X2+fBxgH6PAASLz3RgQcWgMs4Z xwV8yLtqHDFZt8EmWdD08nvYpVQpfVHNC2ZSuLrwiQR16/dikUuqZ/+rCsTDGPnKg91M GYh96cUDdGEwNRS2R5zRVusvy1UYSMuFuUtrZkU7gci7BgPMSAJU6/uR/DnMYF1hXCEh 06LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=IqLUeibi1jgSI5sAJEPZabPr3CRzrs9plXRs/+bKRPQ=; b=hK2vRh8ZHo+QTxVUrtUjMZhYCLp+uztL7kUrdIUg6hwjrqGULpNU96i9yuMhoLKxlO VL6pE0J5hzW3bZVFIVWCyx2+X2VvnOUGnkGeZAJ5Jd4s9bM8sT1FGEARDLd9Mj6ZqRLO vFHLKkuL07zp5Ypt60ed+a8snSWIS2e0fzT8WI+zd+p+lOUsIWigZRPfSavx0NzgY+i6 G3TCR5+PLIf8Z9CMBdXnijCbHnCyo21Wxq6+9XPDy/5jaeBvkCbiMhadFyWCqyvSYxIE 1J9pX5mv3zcwIrsIHcTlWGbaWeovNCM6VMmKUw3xksHJ80KGHgwKiG4jkuPW1PglO4DC 7AxA== X-Gm-Message-State: APzg51Cllc1ZWZMuJF8dWAeJX3HsBqb+Tdt7i+wUrINBfNIPdIMqaVIN zKsTDEDXYTGCyJHphGJ6QgzuvJD0TzNxlUkMNySF57eY X-Google-Smtp-Source: ANB0Vdb4KX/mvpusRALqo17BLI/4dlKFLEcGFPxUXLasVFcN1gQqNCPS/dvFxBicOeTE/0zNQvsawLoY8pb7fQUB3+c= X-Received: by 2002:a19:870b:: with SMTP id j11-v6mr2544073lfd.4.1535146896140; Fri, 24 Aug 2018 14:41:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Emily Jiang Date: Fri, 24 Aug 2018 22:41:21 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="0000000000006c30020574353df4" Subject: Re: [ConfigJSR-experts] Environment variable name mapping X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Aug 2018 21:41:38 -0000 --0000000000006c30020574353df4 Content-Type: text/plain; charset="UTF-8" Thank you Anatole and Werner for your support! Werner, good question. I think we should consider to move to Jakarta EE if the standard body is formed to have a universal package names. Thanks Emily On Fri, Aug 24, 2018 at 10:47 AM Werner Keil wrote: > Hi, > > Sounds good. > > Another question especially after the Spec WG call this week, does it make > sense to have Eclipse now file a JSR javax.config while the namespace David > from Tomitribe explicitly mentioned could then be something like > jakarta.config? > > As of now JSR 382 has not filed an EDR although it would be long overdue > at JCP. There is also no javax.config artifact on MavenCentral at least not > in the release space. > > What are the plans here? > > Have 2 later even 3 different APIs/packages > > - org.eclipse.microprofile.config > - javax.config > - jakarta.config > > Or fewer? > > The 1.0 release if progressing to a Final release may have no problem > using the javax.config namespace because it started before Java EE was > contributed to Eclipse/Jakarta EE, but everything that goes beyond a simple > MR at a later point must then be declared under jakarta.config, thus the > API would spread across 2 different packages. > > Thanks and Regards, > > Werner > > > > On Fri, Aug 24, 2018 at 8:30 AM Anatole Tresch wrote: > >> +1 from my side. Tamaya also supports this feature. >> >> Emily Jiang schrieb am Do., 23. Aug. 2018, >> 23:00: >> >>> Dear ConfigJSR EG, >>> >>> In MicroProfile Config, after the discussion of ( >>> https://groups.google.com/forum/#!topic/microprofile/zAo4edKTB4M) >>> >>> >>> 1. >>> >>> Some operating systems allow only alphabetic characters or an >>> underscore, _, in environment variables. Other characters such as ., >>> /, etc may be disallowed. In order to set a value for a config >>> property that has a name containing such disallowed characters from an >>> environment variable, the following rules are used. >>> >>> >>> 1. >>> >>> This ConfigSource searches 3 environment variables for a given >>> property name (e.g. com.ACME.size): >>> 1. >>> >>> Exact match (i.e. com.ACME.size) >>> 2. >>> >>> Replace the character that is neither alphanumeric nor _ with _ (i.e. >>> com_ACME_size) >>> 3. >>> >>> Replace the character that is neither alphanumeric nor _ with _ and >>> convert to upper case (i.e. COM_ACME_SIZE) >>> >>> I propose to port this to ConfigJSR. Please let you know what you think. >>> This is very useful in k8s configmap, which was the reason requested in >>> MicroProfile. >>> >>> >>> >>> -- >>> Thanks >>> Emily >>> ================= >>> Emily Jiang >>> Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ >>> _______________________________________________ >>> ConfigJSR-experts mailing list >>> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >>> To change your delivery options, retrieve your password, or unsubscribe >>> from this list, visit >>> https://dev.eclipse.org/mailman/listinfo/configjsr-experts >> >> _______________________________________________ >> ConfigJSR-experts mailing list >> m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/configjsr-experts > > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts -- Thanks Emily ================= Emily Jiang Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ --0000000000006c30020574353df4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thank you Anatole and Werner for your suppo= rt!
Werner, good question. I think we should consider to move to J= akarta EE if the standard body is formed to have a universal package names.=

Thanks
Emily

On Fri, Aug 24, 2018 at 10:47 AM Werner Keil <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0> wrote:
<= /div>
Hi,

Sounds good.

Another question especially after th= e Spec WG call this week, does it make sense to have Eclipse now file a JSR= javax.config while the namespace David from Tomitribe explicitly mentioned= could then be something like jakarta.config?

As o= f now JSR 382 has not filed an EDR although it would be long overdue at JCP= . There is also no javax.config artifact on MavenCentral at least not in th= e release space.

What are the plans here?=C2=A0

Have 2 later even 3 different APIs/packages=C2=A0
  • org.eclipse.microprofile.config
  • javax.config
  • jakarta.config
Or fewer?

The 1.0 r= elease if progressing to a Final release may have no problem using the java= x.config namespace because it started before Java EE was contributed to Ecl= ipse/Jakarta EE, but everything that goes beyond a simple MR at a later poi= nt must then be declared under jakarta.config, thus the API would spread ac= ross 2 different packages.

Thanks and Regards,

Werner=C2=A0

=

<= /div>


On Fri, Aug 24, 2018 at 8:30 AM Anatole T= resch <atsticks@= gmail.com> wrote:
+1 from my side. Tamaya also supports this feature.

Emily Jiang <bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC>= schrieb am Do., 23. Aug. 2018, 23:00:
Dear ConfigJSR EG,

In MicroProfile Config, a= fter the discussion of (h= ttps://groups.google.com/forum/#!topic/microprofile/zAo4edKTB4M)

=09 =09 =09 =09 =09

  1. Some operating systems allow only alphabetic cha= racters or an underscore, _= , in environment variables. Other characters such as ., /, etc may be disallowed. In order to set a value for a config property that has a name containing such disallowed characters from = an environment variable, the following rules are used.

=09 =09 =09 =09 =09
  1. This ConfigSource searches 3 environment variables for a given property nam= e (e.g. com.ACME.size):

    1. Exact match (i.e. com.AC= ME.size)

    2. Replace the character that is neither alphanumer= ic nor _ with _ (i.e. com_ACME= _size)

    3. Replace the character that is neither alphanumer= ic nor _ with _ and convert to upper case (i.e. COM_ACME_SIZE)

=09
=09
I propose to port this to ConfigJSR. Please let you know what you thin= k. This is very useful in k8s configmap, which was the reason requested in = MicroProfile.



--
Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ
_______________________________________________
ConfigJSR-experts mailing list
m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailma= n/listinfo/configjsr-experts
_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/listinfo/= configjsr-experts
_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://dev.eclipse.org/mailman/listinfo/= configjsr-experts


--
Tha= nks
Emily
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Emil= y Jiang
ejiang@ap= ache.org
--0000000000006c30020574353df4-- From TiMZZoLG5gpuA8tq@XsDwRwvsbrFQN1Tu Wed Aug 29 05:28:26 2018 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from sonic310-12.consmr.mail.ir2.yahoo.com (sonic310-12.consmr.mail.ir2.yahoo.com [77.238.177.33]) by mail.eclipse.org (Postfix) with ESMTP id C1D382DCEEB for ; Wed, 29 Aug 2018 05:28:25 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1535534905; bh=jhIE2p8MVHpVfmx6X6UCph+FKdsY3y819KL36qQAFXk=; h=From:Subject:Date:References:To:In-Reply-To:From:Subject; b=cXu1h9x3gVmwI9LwxsrBYzEJ0SFx77krrXqfVKdq7doCvpBl/xwJ4+bm+7jsc0lnFlgOtyrL0Nhyt/ynXBCsLoc+lpzBBAb8EjDTQL3LV+MAuFVbmbQ+J8J36PnnYCQwA2SaIwVkAXlgOIpJHq/amgMXMcJ/M/mYWTNQg/1C5tiYCbaLWVrxVmtreie+g0u5+hOIjhRR71Shqyg8cjIkZP8sVvRHWt8qR2Jln2b3En7I8XYK5cn8SydDUnzCC7Boks5fDI2qerfVTVp0O7xQWgWP+D659xM39ylbQBgwC9QO4Qnut06FKa8R8HwQGkNTXqpRIAWlQ042VEjpXW+mXA== X-YMail-OSG: iOLahR0VM1n5r9AZ4cSPSKpGtzlzDGGzeLRkIGj6W.NUh.QzCEGblQmLJ4iG2n2 yLhMF1vzuFQoicFXvqaIuxd_._1uP1gSB5nQG8mHgpMCTpcrpNW6ITpAJ2Ak_YrM8ZpCjxZsiTor GloVHA7NiPpZKW0HFtTIQL8czqB_h9URBGGD.HNdnaZEZawLzIaYeoZYfpmXp0lNkUl2Gcc8BXnV 8PAVxSeZnVDjoum1Lla9RYVOw8TBV5lPlhh5vuv9URTF_EXR1WrENDf9r08eoWQYAqixgZdusk0r sWg11QaxwydjZSGg3IQTBOo39g2uWGDp3cmhHXEVn4wbGYlFnCz37Zsv0GNoq.g4MqhtsHb0sdA3 i7baFKbiN86_weOwSxWRbGRayTKHHcNpUhU7EjAh4FNjrCFCgSLit9FH9b2slhL1I_zGyZqsYpbY e2iSvxskHD3.cH77dEC9g6dVxG0aclGQQF0NxGSvqlIDfAXG7Omnccxxatx0AqJwu.k1mvsxHVzj .ww5.Pd5iszVvelgwssK3nWNOaTXCyfeFkiWCQihKN.2P3ufXm0XVDJM8Hydszs9cvgqN2ZHjBeH faJbF4MsmHd9zHbwOGsgtYqsenYITwBnKMr2O0DChWC1e.DwSqOWCqS8Z2YnZjG6NNllrBNK6VZe k57wDVaYNjJk0lUGGgFCcRR17zmG0OHbJyXRxoA59tgcZ0wDDcFxi6U4Z8uvOgTrV7rbi_vP6r3y b7OLNzAP0SLqr_HdmLfiKgsHaByXDKaCXQDMFTB.Q5OJB2wUPvoQIkTLjv18NeJV5.VIDc25Kosy e1kTwQjDUFH335e01ASZ7xb4p7QwFfI6dVYLf7Yp3WvZTgkvdtYPs0D_jQOIB7iyAf6UuJEh958l _Kq5Kpvig6OmptVqyx4u2VglcekFE.Rrepbcrii8igexV8uMLniPumjNa8htrS1e7c1qLA47fuNy DCet92J_B_u9bC_YyWCqOnhd6QPR2MaTdQzehEw-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.ir2.yahoo.com with HTTP; Wed, 29 Aug 2018 09:28:25 +0000 Received: from 62-178-16-31.cable.dynamic.surfer.at (EHLO [192.168.0.234]) ([62.178.16.31]) by smtp414.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 2029a79247ed5602942782e3c188caa5 for ; Wed, 29 Aug 2018 09:28:20 +0000 (UTC) From: Mark Struberg Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Date: Wed, 29 Aug 2018 11:28:19 +0200 References: To: ConfigJSR expert discussions In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3445.9.1) Subject: Re: [ConfigJSR-experts] Environment variable name mapping X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Aug 2018 09:28:26 -0000 For now we must keep it javax.config as this is the one defined by the = JSR papers. LieGrue, strub > Am 24.08.2018 um 23:41 schrieb Emily Jiang : >=20 > Thank you Anatole and Werner for your support! > Werner, good question. I think we should consider to move to Jakarta = EE if the standard body is formed to have a universal package names. >=20 > Thanks > Emily >=20 > On Fri, Aug 24, 2018 at 10:47 AM Werner Keil = wrote: > Hi, >=20 > Sounds good. >=20 > Another question especially after the Spec WG call this week, does it = make sense to have Eclipse now file a JSR javax.config while the = namespace David from Tomitribe explicitly mentioned could then be = something like jakarta.config? >=20 > As of now JSR 382 has not filed an EDR although it would be long = overdue at JCP. There is also no javax.config artifact on MavenCentral = at least not in the release space. >=20 > What are the plans here?=20 >=20 > Have 2 later even 3 different APIs/packages=20 > =E2=80=A2 org.eclipse.microprofile.config > =E2=80=A2 javax.config > =E2=80=A2 jakarta.config > Or fewer? >=20 > The 1.0 release if progressing to a Final release may have no problem = using the javax.config namespace because it started before Java EE was = contributed to Eclipse/Jakarta EE, but everything that goes beyond a = simple MR at a later point must then be declared under jakarta.config, = thus the API would spread across 2 different packages. >=20 > Thanks and Regards, > Werner=20 >=20 >=20 >=20 > On Fri, Aug 24, 2018 at 8:30 AM Anatole Tresch = wrote: > +1 from my side. Tamaya also supports this feature. >=20 > Emily Jiang schrieb am Do., 23. Aug. 2018, = 23:00: > Dear ConfigJSR EG, >=20 > In MicroProfile Config, after the discussion of = (https://groups.google.com/forum/#!topic/microprofile/zAo4edKTB4M)=20 >=20 >=20 > =E2=80=A2 Some operating systems allow only alphabetic = characters or an underscore, _, in environment variables. Other = characters such as ., /, etc may be disallowed. In order to set a value = for a config property that has a name containing such disallowed = characters from an environment variable, the following rules are used. >=20 > =E2=80=A2 This ConfigSource searches 3 environment variables for = a given property name (e.g. com.ACME.size): >=20 > =E2=80=A2 Exact match (i.e. com.ACME.size) >=20 > =E2=80=A2 Replace the character that is neither = alphanumeric nor _ with _ (i.e. com_ACME_size) >=20 > =E2=80=A2 Replace the character that is neither = alphanumeric nor _ with _ and convert to upper case (i.e. COM_ACME_SIZE) >=20 > I propose to port this to ConfigJSR. Please let you know what you = think. This is very useful in k8s configmap, which was the reason = requested in MicroProfile. >=20 >=20 >=20 > --=20 > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts >=20 >=20 > --=20 > Thanks > Emily > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > Emily Jiang > Yjp73Ee8XrnVIEPw@Y45SF02wNnDqB7sJ > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or = unsubscribe from this list, visit > https://dev.eclipse.org/mailman/listinfo/configjsr-experts From bjf8+7yFP8PO923P@OqvOlY87Z3Hld3ZC Sun Dec 2 19:02:44 2018 Return-Path: X-Original-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Delivered-To: YueaNm14gfYOrDyn@ElHQwbxuqmY1UZfe Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by mail.eclipse.org (Postfix) with ESMTP id 993102DCE99 for ; Sun, 2 Dec 2018 19:02:44 -0500 (EST) Received: by mail-qt1-f176.google.com with SMTP id t13so11911423qtn.3 for ; Sun, 02 Dec 2018 16:02:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=p9tPtsB+XehkfZSLycVKhxg5ZLFt2bmeMK3VveGsBcc=; b=uLFuPy5CwZpUcBO1TFAz51cWIT1Eay4FENnuqDZhrQ77NNV0dVTfbWZQtu2qlHCEUz SF9qcnD2KGjYX80Ayuj1FPUp33hedMj4yRA3O6kmU6Cs9dJAqDSIK7Py3s7xB4nHIh2u A2YhcdyrGPUlQG7GFEwCLcb/CR2mnO57Jbqkc1NZ5Ww16+jVuohemlMpp51dRsR55XZr oxfuO1PF2ipp6GjQXkbavGPngjRn/23J0zfyZgXzUR5UXAUz8DiynpHceTc4soDR1z+R haV/wgNFqD/P/wU15p+PgiKQX9FuCh04twSVu/yHV2FK1XCKAAY6fCF45fcUA+nmdzcv oDBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=p9tPtsB+XehkfZSLycVKhxg5ZLFt2bmeMK3VveGsBcc=; b=nKoEfYFEq4sMMZ+tifpbugwZDntY4eps+hdboAp17Q9DKIuF39ozkHd8nwMhMV7PSp Jt7AgzRFgbk/Pu/5JsMNAf5u/DA8WxBVtAZjymy5a1Dvt5pZPzuht09xRQH7qLpqHX2G OSnzWCuS2fs6L5CvOxJZaZYcW2gS6ziwhfZkt/8T+uCgLeyMHFPxveGnq3ebjHEWP0V9 B9ob3RZGYt88/u4hTxt3x5TwuWHXDuOR18VC4sh98JRJ6cvleCiCkhFAeq05d8s5U3wq FJ+eAo2pn7+3SXa1yEFPk01We7dZWHHn4S+TG5rhVi+vZ5FwTe1ckG+bmJacciprhNy0 nHlg== X-Gm-Message-State: AA+aEWZOa6vi46nVCie42mCaSZt7TE8CGVgFaeod2WA9wL0m7m3F7p2B 7kAjxBnvuThsL3j/w6W+zxvXr5kq/IDX00x4Upgpr2qp X-Google-Smtp-Source: AFSGD/WV3qfif0HWGYq0+pjjsljluvx+LbRqzfUAtJWtN/UT7CMFB+1XIm5zPywiXID5PVIBxEDGKBYgpaSf79NaWJ4= X-Received: by 2002:aed:3ae4:: with SMTP id o91mr13743028qte.251.1543795364245; Sun, 02 Dec 2018 16:02:44 -0800 (PST) MIME-Version: 1.0 From: Emily Jiang Date: Mon, 3 Dec 2018 00:02:33 +0000 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="0000000000004ab48c057c12de6c" Subject: [ConfigJSR-experts] Meeting with Mike from Eclipse Foundation X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2018 00:02:44 -0000 --0000000000004ab48c057c12de6c Content-Type: text/plain; charset="UTF-8" Dear all, Mike from Eclipse Foundation would like to discuss with us about the future of Config JSR382 to see whether it makes sense to stay with JCP or move over to Jakarta EE. Emily have created a doodle pool https://doodle.com/poll/7yxuehen2bdeav4q to gather your availability. We will choose the most popular slot for this meeting. Please put your availability asap. -- Thanks Emily and Mark --0000000000004ab48c057c12de6c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear all,

M= ike from Eclipse Foundation would like to discuss with us about the future = of Config JSR382 to see whether it makes sense to stay with JCP or move ove= r to Jakarta EE.

Emily have created a doodle = pool https://doodle.co= m/poll/7yxuehen2bdeav4q to gather your availability. We will choose the= most popular slot for this meeting. Please put your availability asap.
=

--
Thanks
= Emily and Mark
--0000000000004ab48c057c12de6c-- From dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0 Thu Jan 10 12:54:23 2019 Return-Path: X-Original-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Delivered-To: kmlSPw8j6qASQgC5@ElHQwbxuqmY1UZfe Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mail.eclipse.org (Postfix) with ESMTP id 6B30F2DCE3F for ; Thu, 10 Jan 2019 12:54:23 -0500 (EST) Received: by mail-wm1-f43.google.com with SMTP id b11so12141299wmj.1 for ; Thu, 10 Jan 2019 09:54:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=S4g60ARtPfNnurKqbOHmKeAga16KKU8c2AD1X7cJu7c=; b=jLLYENj8j1aKYe++iSC/Ma/MxYnYZTLH/i1o9EZ1xbPZzgM8y1uZ3BI1W6aPZZVIT/ hgFi4PQLjFz/+OYSOwIVU2e3jh2O6FeXdDaYndlx+JpW8h3jv2ItEEozqnDKopJDx+N/ Pj0DbBN9+TlFVbReOShWQ9Fsfv30Olhyn/ykOg3YiYCOvYXq37kLKpQfbB4hdATiT/4/ pTGCQ5CeDMieFtKPjyXlAsxE1kvgkqfd3o18T5kHyyhA2Vuv93UE8nO6uOGU8jQPRMhG BjJ+B3NPs9EmcoqTWiuncAy2t96zfuqKKnQhucwmqhoqzs6YAXAwPwLclhOLr3eqTpKF XgCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=S4g60ARtPfNnurKqbOHmKeAga16KKU8c2AD1X7cJu7c=; b=glMHnicl4ghezK8KmQ7fjmmSkTNqPz/YtR29wd3DPM28x5sxqtCC1ehg9K0Hh/pyfH ghwCXewGu2F6ghPAlqCSgAdm6BoQgaKgFuVXWK45/8nALR7oC0PLWylVCvkpDhzB/veP YO/BY/3vB8+icp4kS871QSHnG1pvJuimC1z5APo3iv1zzo7n13B3yYoAy8zAziE5GB8/ rBA8i73TgRFMAz03NUlNLQdbYkAEstbHMDAyWkecHfjoSSthnpNn+OYC4U72xjE3CEe0 TvBCR7YBM+myUS9aKe90pWlvAcgtq4PTIcWVOdN6ZTXwaN09mDiH/QbzMg+oZhKiCVXU XFcg== X-Gm-Message-State: AJcUukcxOLalvRuJ9QhfNZLNikDRoxhZEiQ1CLQGwzW119CtDRazQ87g Z6PWRynSvYMfagHWXFTK/k3jKAQhfS9Zmsi5JUo= X-Google-Smtp-Source: ALg8bN47b3isW15uDQB8KTne6GDV/K6zXqUwxvGP3A07Hp/hslh0FkPc3VyklnogLa2CQQJQZALRKxBOFWUtAg99mh0= X-Received: by 2002:a1c:6e01:: with SMTP id j1mr10499547wmc.103.1547142862294; Thu, 10 Jan 2019 09:54:22 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Werner Keil Date: Thu, 10 Jan 2019 18:54:11 +0100 Message-ID: To: Ken Finnigan Content-Type: multipart/alternative; boundary="000000000000b954e7057f1e44fe" Cc: Thorntail , ConfigJSR expert discussions Subject: Re: [ConfigJSR-experts] [thorntail] Re: MP ConfigSource for Kubernetes ConfigMap X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jan 2019 17:54:23 -0000 --000000000000b954e7057f1e44fe Content-Type: text/plain; charset="UTF-8" Hi, Sounds cool, is it something that is also in line with standardization efforts either at JCP or elsewhere (Jakarta EE)? Werner On Thu, Jan 10, 2019 at 5:33 PM Ken Finnigan wrote: > James, > > Would you be interested in adding the ConfigMap ConfigSource to > https://github.com/smallrye/smallrye-config/tree/master/config-sources ? > > Ken > > On Thursday, January 10, 2019 at 11:25:03 AM UTC-5, James Falkner wrote: >> >> I recently updated my Thorntail Minesweeper demo and added a custom >> MicroProfile ConfigSource >> >> that uses the Kubernetes Java Client to fetch a ConfigMap and use its >> values as injectable values for any MicroProfile @ConfigProperty fields. >> >> I explored having it auto-update fields whenever the underlying ConfigMap >> changes, but the problems are that: >> >> - The current Kubernetes Java client seems to have a problem listening >> for ConfigMap object changes via the Kubernetes API. There is a workaround >> (which works), but >> - Once injected, @ConfigProperty fields do not have any way to know their >> source changed and to update themselves. If anyone has any ideas about >> this, I'd be interested. >> >> -James >> > -- > You received this message because you are subscribed to the Google Groups > "Thorntail" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to thorntail+BUOiT7RG679RNmLZ@OHkQeJJBbYJCV+JP. > To post to this group, send email to RmfTgrRAGbMyBa/n@OHkQeJJBbYJCV+JP. > To view this discussion on the web visit > https://groups.google.com/d/msgid/thorntail/016a65c6-058d-436a-9334-f2cbafb327b0%40googlegroups.com > > . > For more options, visit https://groups.google.com/d/optout. > --000000000000b954e7057f1e44fe Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Sounds cool, is it something that i= s also in line with standardization efforts either at JCP or=C2=A0elsewhere= (Jakarta EE)?

<= div dir=3D"ltr">

Werner=C2=A0<= /span>



<= /div>
<= /div>

On Thu= , Jan 10, 2019 at 5:33 PM Ken Finnigan <BPFl3B5alDx4QOme@ReK2rjbgK2Ds1LXx> wrote:
James,

Would yo= u be interested in adding the ConfigMap ConfigSource to=C2=A0https://github.com/smallrye/smallrye-config/tree/master/config-= sources ?

Ken

On Thursday, January 10, = 2019 at 11:25:03 AM UTC-5, James Falkner wrote:
I recently updated my Thorntail Mine= sweeper demo and added a custom MicroPro= file ConfigSource that uses the Kubernetes Java Client to fetch a ConfigMap and use its=20 values as injectable values for any MicroProfile @ConfigProperty fields.=C2= =A0

I explored having it auto-update fields whenever= the underlying ConfigMap changes, but the problems are that:
- The current Kubernetes Java client seems to have a problem li= stening for ConfigMap object changes via the Kubernetes API. There is a wor= karound (which works), but
- Once injected, @ConfigProperty field= s do not have any way to know their source changed and to update themselves= . If anyone has any ideas about this, I'd be interested.=C2=A0

-James

--
You received this message because you are subscribed to the Google Groups &= quot;Thorntail" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to thorntail+BUOiT7RG679RNmLZ@OHkQeJJBbYJCV+JP.
To post to this group, send email to RmfTgrRAGbMyBa/n@OHkQeJJBbYJCV+JP.
To view this discussion on the web visit https://gro= ups.google.com/d/msgid/thorntail/016a65c6-058d-436a-9334-f2cbafb327b0%40goo= glegroups.com.
For more options, visit https://groups.google.com/d/optout.
--000000000000b954e7057f1e44fe-- From Di5JOAgaGMajQ7RX@iguBx6V4wYlUCuIg Tue Jan 15 05:16:02 2019 Return-Path: X-Original-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Delivered-To: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by mail.eclipse.org (Postfix) with ESMTP id 17A962DCD3A for ; Tue, 15 Jan 2019 05:15:55 -0500 (EST) Received: by mail-pg1-f179.google.com with SMTP id j10so1068390pga.1 for ; Tue, 15 Jan 2019 02:15:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sebastian-daschner-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=TooLVfIbUsh2h59dEhOhLvsiTumc9zk2QpidNDeVD7g=; b=V5ytTX8TdZenQqs8oDs7mAjT76dvLWCVIxCVJtJpR1GcRG3vf1qEGHJUx5WKPzPfMU eaqP5nESTLOyOLbvaozoIpCY8mjCyU1cDmsMRea9VnMUWpcbPVOwiNmN0Uy1PGB50zK2 5KLIuv9e/s6KZ81t8QEi8uvgYFEriG/n+5erNnNiRYd9gg9MGezQsadaD7JK8TM5ck+Y XvVzRmquD9DgK0/9o7598ODIXX/p9WQnqpQXyK7PtY2K8Fz2glDmpGU6AqY1AN9eZPvT nIInRbapp1pVrM3Ikk80gejOXm5xIchX2j3w12AwfdCqH4GcoLnY3vuNQNnP4LMkePxL OHmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=TooLVfIbUsh2h59dEhOhLvsiTumc9zk2QpidNDeVD7g=; b=eBY5ZFbbt1fz1qn8n2j1DmczecaQC/DmL6ZQa/fJ3JAizlPNdyZukQmgpBfK9vWJ5W IEBHIU4ZWHZsIxuhSXCN/Uvm8rRUkMwdU3xQutOOPtfCrT+x67IkNmRi9paLNQhlKdJP jdFBjinJbFusCMkMywq0vROrJGoO0SxueGgu4yd/WhSC9qeO2PvaH0gQ0b3Z7l8LyXh9 ke12hTer2jpRpXpakL4r8o3232iqe1QCVP3RlGjXspcb9dRWR9eKfy9VC9Q6C9btW0RS w9t2VeJaF6dtopfcwSAWwSfgKo8lDCwOTsHuQbxQKUVAQ9T56ul8+Dyqc36kMoBiVeVd h6tw== X-Gm-Message-State: AJcUukdgNHFpU+Ckjs2dbQQw7vGeJoL7qiZvdubKTXejvwYcFYVp6zvq E/2+9wVs5SAQast7WEm/4BTGAywG2Ymsj1Byyh6jRklxdDs= X-Google-Smtp-Source: ALg8bN6FAKKnxSSYN9PUNTGVJXbelfA1Lnk4D6ZmL7RiN8gjD4H//W/3otkziv9DMwIF02dna0HWrPVwnYXo47rSJvo= X-Received: by 2002:a63:f141:: with SMTP id o1mr3228803pgk.134.1547547355281; Tue, 15 Jan 2019 02:15:55 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Sebastian Daschner Date: Tue, 15 Jan 2019 11:15:44 +0100 Message-ID: To: ConfigJSR expert discussions Content-Type: multipart/alternative; boundary="000000000000629072057f7c7296" Cc: Thorntail , Ken Finnigan Subject: Re: [ConfigJSR-experts] [thorntail] Re: MP ConfigSource for Kubernetes ConfigMap X-BeenThere: TbPMhkkz0YZwMLqP@ElHQwbxuqmY1UZfe X-Mailman-Version: 2.1.14 Precedence: list Reply-To: ConfigJSR expert discussions List-Id: ConfigJSR expert discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jan 2019 10:16:02 -0000 --000000000000629072057f7c7296 Content-Type: text/plain; charset="UTF-8" Hi Werner, At least it's not within the scope of the Config JSR. Also, I'd argue that this is a rather niche solutions for applications that for some reasons should be tightly couples with K8s, but not an opinionated way of integrating configuration into apps that run in container orchestration. Rather than, developers would add config maps as volumes or env variables and use the default config sources to inject these contents into applications. In that way, the K8s part is transparent to the whole application which just relies on volumes or env variables. Thus, TBH I consider that a nice to have feature for impls to add but nothing that should be prioritized to be part of a standard as of today. Cheers, Sebastian On Thu, Jan 10, 2019 at 6:54 PM Werner Keil wrote: > Hi, > > Sounds cool, is it something that is also in line with standardization > efforts either at JCP or elsewhere (Jakarta EE)? > > Werner > > > > > On Thu, Jan 10, 2019 at 5:33 PM Ken Finnigan wrote: > >> James, >> >> Would you be interested in adding the ConfigMap ConfigSource to >> https://github.com/smallrye/smallrye-config/tree/master/config-sources ? >> >> Ken >> >> On Thursday, January 10, 2019 at 11:25:03 AM UTC-5, James Falkner wrote: >>> >>> I recently updated my Thorntail Minesweeper demo and added a custom >>> MicroProfile ConfigSource >>> >>> that uses the Kubernetes Java Client to fetch a ConfigMap and use its >>> values as injectable values for any MicroProfile @ConfigProperty fields. >>> >>> I explored having it auto-update fields whenever the underlying >>> ConfigMap changes, but the problems are that: >>> >>> - The current Kubernetes Java client seems to have a problem listening >>> for ConfigMap object changes via the Kubernetes API. There is a workaround >>> (which works), but >>> - Once injected, @ConfigProperty fields do not have any way to know >>> their source changed and to update themselves. If anyone has any ideas >>> about this, I'd be interested. >>> >>> -James >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Thorntail" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to thorntail+BUOiT7RG679RNmLZ@OHkQeJJBbYJCV+JP. >> To post to this group, send email to RmfTgrRAGbMyBa/n@OHkQeJJBbYJCV+JP. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/thorntail/016a65c6-058d-436a-9334-f2cbafb327b0%40googlegroups.com >> >> . >> For more options, visit https://groups.google.com/d/optout. >> > _______________________________________________ > ConfigJSR-experts mailing list > m0U0/pXh1zxqNU6D@ElHQwbxuqmY1UZfe > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://www.eclipse.org/mailman/listinfo/configjsr-experts --000000000000629072057f7c7296 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Werner,

At least it's not within= the scope of the Config JSR.

Also, I'd argue = that this is a rather niche solutions for applications that for some reason= s should be tightly couples with K8s, but not an opinionated way of integra= ting configuration into apps that run in container orchestration. Rather th= an, developers would add config maps as volumes or env variables and use th= e default config sources to inject these contents into applications. In tha= t way, the K8s part is transparent to the whole application which just reli= es on volumes or env variables.

Thus, TBH I consid= er that a nice to have feature for impls to add but nothing that should be = prioritized to be part of a standard as of today.

= Cheers,
Sebastian=C2=A0

On Thu, Jan 10, 2019 at 6:54 PM Werner Keil= <dpwNbw5hVeSjRhh9@RwKIriitWfeDKzz0>= wrote:
Hi,

Sounds cool, is it something that is also i= n line with standardization efforts either at JCP or=C2=A0elsewhere (Jakart= a EE)?

=
Werner=C2=A0<= /p>


=


On Thu, Jan 10, 2019= at 5:33 PM Ken Finnigan <BPFl3B5alDx4QOme@ReK2rjbgK2Ds1LXx> wrote:
James,

Wo= uld you be interested in adding the ConfigMap ConfigSource to=C2=A0https://github.com/smallrye/smallrye-config/tree/master/= config-sources ?

Ken

On Thursday, Janua= ry 10, 2019 at 11:25:03 AM UTC-5, James Falkner wrote:
I recently updated my Thornta= il Minesweeper demo and added a custom M= icroProfile ConfigSource that uses the Kubernetes Java Client to fetch a ConfigMap and use its=20 values as injectable values for any MicroProfile @ConfigProperty fields.=C2= =A0

I explored having it auto-update fields whenever= the underlying ConfigMap changes, but the problems are that:
- The current Kubernetes Java client seems to have a problem li= stening for ConfigMap object changes via the Kubernetes API. There is a wor= karound (which works), but
- Once injected, @ConfigProperty field= s do not have any way to know their source changed and to update themselves= . If anyone has any ideas about this, I'd be interested.=C2=A0

-James

--
You received this message because you are subscribed to the Google Groups &= quot;Thorntail" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to thorntail+BUOiT7RG679RNmLZ@OHkQeJJBbYJCV+JP.
To post to this group, send email to RmfTgrRAGbMyBa/n@OHkQeJJBbYJCV+JP.
To view this discussion on the web visit https://gro= ups.google.com/d/msgid/thorntail/016a65c6-058d-436a-9334-f2cbafb327b0%40goo= glegroups.com.
For more options, visit https://groups.google.com/d/optout.
_______________________________________________
ConfigJSR-experts mailing list
ConfigJS= XtDT+CE+6deqqIbg@ElHQwbxuqmY1UZfe
To change your delivery options, retrieve your password, or unsubscribe fro= m this list, visit
https://www.eclipse.org/mailman/listinfo/= configjsr-experts
--000000000000629072057f7c7296--