I wonder, is there anything blocking us from releasing 2.0 next instead of 1.x?


Donat

On Mon, Nov 26, 2018 at 6:27 PM Mike Percy <mpe...@apache.org> wrote:
>
> If only the PMC would be affected by this decision, we could have had this
> discussion on the PMC private list. But this decision impacts everybody
> that uses Flume. So let's hear from anybody who cares about this, including
> committers, contributors, and users on whether they are okay with switching
> to log4j2 in a minor release version, knowing that they will need to change
> their config files when they upgrade Flume.
>
> Ferenc, it seems like we will have to ship one or the other with the binary
> artifacts at release time. It seems to me that we still have to make a
> choice about the built and shipped default, even if both could work at
> runtime, right?
>
> Thanks,
> Mike
>
> On Mon, Nov 26, 2018 at 5:58 AM Ferenc Szabo <fsz...@cloudera.com.invalid>
> wrote:
>
> > I have directed it to the community, the PMC members.
> > I am looking for a decision from the PMC members (including You) on whether
> > we should continue as planned or not removing log4j2 form the minor release
> > branch.
> >
> > On Mon, Nov 26, 2018 at 2:43 PM Ralph Goers <ralph.go...@dslextreme.com>
> > wrote:
> >
> > > Was this directed at me? I am not sure what decision you are referring
> > to.
> > > I stated my position in the email you replied to.
> > >
> > > Ralph
> > >
> > > > On Nov 26, 2018, at 5:29 AM, Ferenc Szabo <fsz...@cloudera.com.INVALID
> > >
> > > wrote:
> > > >
> > > > With the new release, you can just replace the jars on the classpath as
> > > we
> > > > removed every code dependency and using slf4j. So you do not need to
> > fork
> > > > and change anything.
> > > >
> > > > Let me know your decision and we will continue with that.
> > > >
> > > > Regards,
> > > > Ferenc
> > > >
> > > > On Mon, Nov 26, 2018 at 12:10 PM Apache <ralph.go...@dslextreme.com>
> > > wrote:
> > > >
> > > >> As I said, I am fine with adding a notice to the release notes stating
> > > the
> > > >> logging will be changed in the next release regardless of its version
> > > >> number. This way the revert only needs to happen on the release branch
> > > for
> > > >> this release.
> > > >>
> > > >> Ralph
> > > >>
> > > >>> On Nov 25, 2018, at 9:59 PM, Mike Percy <mpe...@apache.org> wrote:
> > > >>>
> > > >>> While the committer veto rules are well documented here
> > > >>> <https://www.apache.org/foundation/voting.html#Veto>, and there is
> > no
> > > >>> mention of a time limit, I propose we shelve that discussion and work
> > > on
> > > >>> getting to consensus on what we as a community want to include in the
> > > >> Flume
> > > >>> 1.9 release.
> > > >>>
> > > >>> As far as I can tell, the decision we have to make is whether to
> > > include
> > > >>> the FLUME-2050 logging changes in the Flume 1.9 release. We can
> > either:
> > > >>>
> > > >>> 1) Require users upgrading from Flume 1.8 to Flume 1.9 to have to
> > > modify
> > > >>> their log4j configuration files to use the different log4j2 XML
> > format,
> > > >>> with the procedure for doing so documented in the release notes.
> > > >>> -or-
> > > >>> 2) Defer that change to a future release where incompatible changes
> > are
> > > >>> expected, such as Flume 2.0.
> > > >>>
> > > >>> Also, maybe there are other options I haven't thought of...?
> > > >>>
> > > >>> I would like to get some input from more people on this matter. How
> > do
> > > >>> others feel about this?
> > > >>>
> > > >>> Thanks,
> > > >>> Mike
> > > >>>
> > > >>>
> > > >>> On Sat, Nov 24, 2018 at 9:36 PM Ralph Goers <
> > > ralph.go...@dslextreme.com>
> > > >>> wrote:
> > > >>>
> > > >>>> I should also point out that the time to raise this was a year ago
> > > when
> > > >>>> the PR for FLUME-2050 was reviewed and committed. As it stands now I
> > > >> could
> > > >>>> be a jerk and vote -1 on the patch for FLUME-3296 with valid
> > technical
> > > >>>> grounds. If this was causing a true binary incompatibility I would
> > > >> approve
> > > >>>> reverting it in a heartbeat, but I just don’t see how having users
> > > have
> > > >> to
> > > >>>> change logging configuration is “intolerable”, especially with the
> > > known
> > > >>>> security issues in Log4j 1, however unlikely user’s might be to
> > > >> encounter
> > > >>>> them.
> > > >>>>
> > > >>>> That said, I wouldn’t veto the revert on the release branch, but I
> > > would
> > > >>>> suggest that the release notes provide fair warning that the next
> > > >> release
> > > >>>> will upgrade the logging dependency.  It would also be nice if
> > > releases
> > > >>>> could be more frequent than once a year.
> > > >>>>
> > > >>>> I would also like to say that I’m not doing this for the fun of it.
> > My
> > > >>>> company uses Flume for some of its most critical processing. We run
> > > >>>> Veracode scans on all of our software and I expect Flume would be
> > > >> flagged
> > > >>>> if I hadn’t repacked it with Log4j 2. It also may not show up since
> > > the
> > > >> CVE
> > > >>>> is marked against Log4j 2 since Log4j 1 is EOL, but the security
> > > >> scanning
> > > >>>> tools should be flagging that as well.
> > > >>>>
> > > >>>> FWIW I’ve had to hack or enhance a few Flume components to make it
> > > work
> > > >>>> for my needs but overall it works really, really well. I’d like to
> > > >> commit
> > > >>>> back some of the changes but the main one - Flume configuration - I
> > > >> really
> > > >>>> don’t like and need to redo the whole thing.
> > > >>>>
> > > >>>> Ralph
> > > >>>>
> > > >>>>> On Nov 24, 2018, at 5:11 PM, Mike Percy <mpe...@apache.org> wrote:
> > > >>>>>
> > > >>>>> I wasn't aware of this security issue. Do you have a link to the
> > > >> details?
> > > >>>>>
> > > >>>>> There's no ASF requirement for package names; it's really just a
> > Java
> > > >>>>> language convention, and especially not enforced for compatibility
> > > >> shims.
> > > >>>>> Even Flume has some of those in the legacy sources.
> > > >>>>>
> > > >>>>> I understand that it's very difficult to provide a compatibility
> > > layer.
> > > >>>>> Maybe also a boring task. I'm just saying that without log4j1
> > > backwards
> > > >>>>> compatibility provided by log4j2, there will have to be a really
> > > >> critical
> > > >>>>> reason to inflict this migration pain on Flume users -- something
> > > that
> > > >>>>> simply can't be tolerated, even in a minor release, like a new and
> > > >> highly
> > > >>>>> dangerous security bug. Without such a motivation, I don't see how
> > > this
> > > >>>>> incompatible dependency change can be justified.
> > > >>>>>
> > > >>>>> Mike
> > > >>>>>
> > > >>>>> On Sat, Nov 24, 2018 at 3:20 PM Ralph Goers <
> > > >> ralph.go...@dslextreme.com>
> > > >>>>> wrote:
> > > >>>>>
> > > >>>>>>
> > > >>>>>>> On Nov 24, 2018, at 2:35 PM, Mike Percy <mpe...@apache.org>
> > wrote:
> > > >>>>>>>
> > > >>>>>>> Flume has long had a policy of backwards compatibility with its
> > own
> > > >>>>>>> configuration files and people expect things to "just work" when
> > > >>>>>> upgrading
> > > >>>>>>> Flume. If log4j2 can't parse the log4j1 config file format then
> > > it's
> > > >> an
> > > >>>>>>> incompatible upgrade and should not be done in a minor Flume
> > > release.
> > > >>>>>>>
> > > >>>>>>> If log4j2 wants to be a drop-in replacement for log4j1 then by
> > > >> default
> > > >>>> it
> > > >>>>>>> should find and parse the traditional log4j.properties config
> > > files,
> > > >> at
> > > >>>>>>> least as a fallback, rather than force users to convert to the
> > new
> > > >> XML
> > > >>>>>>> format before upgrading.
> > > >>>>>>
> > > >>>>>> That is simply not possible:
> > > >>>>>> 1. Log4j 1 requires the use of fully qualified class names. The
> > > >> package
> > > >>>>>> names log4j 1 used didn’t conform to ASF naming guidelines and
> > don’t
> > > >>>> line
> > > >>>>>> up with the package names used in Log4j2.
> > > >>>>>> 2. Log4j 1 did not delineate between what was public and what was
> > > >>>> private
> > > >>>>>> so there is code all over the place mucking with the internals of
> > > >> Log4j.
> > > >>>>>> Log4j 2 implemented a compatibility layer by implementing the
> > > classes
> > > >>>> that
> > > >>>>>> are being used but by and large they don’t actually do anything.
> > > >>>>>> 3. The Appenders and Filters in Log4j 2 implement different
> > > interfaces
> > > >>>> and
> > > >>>>>> cannot use components from Log4j 1.
> > > >>>>>> 4. The Appenders in Log4j 2 are not identical with Log4j 1. In
> > fact,
> > > >>>> many
> > > >>>>>> people didn’t use the Rolling File Appender that shipped with
> > Log4j
> > > >> but
> > > >>>>>> used the one from Log4j extras. So it is hard to.know what Log4j 2
> > > >> would
> > > >>>>>> have needed to be compatible with.
> > > >>>>>>
> > > >>>>>> Many organizations (including mine) have security requirements
> > that
> > > >> say
> > > >>>>>> they must use software that is supported with security fixes.
> > Log4j
> > > 1
> > > >>>> has a
> > > >>>>>> known security bug that will never be fixed as it reached
> > > end-of-life
> > > >> in
> > > >>>>>> August of 2015. This means the use of Log4j 1 is not acceptable
> > for
> > > >> any
> > > >>>>>> security conscious organization.
> > > >>>>>>
> > > >>>>>> While folks have brought up this issue from time to time most seem
> > > to
> > > >>>>>> adapt quite quickly to the change. Most of the issues are
> > developers
> > > >>>>>> wanting to know how to make something they were doing in Log4j 1
> > > work
> > > >> in
> > > >>>>>> Log4j 2.
> > > >>>>>>
> > > >>>>>> As you can imagine, since Log4j 2 has been GA now for 4 1/2 years
> > > and
> > > >>>>>> Log4j 1 has been EOL for over 3, making the configuration
> > compatible
> > > >>>> with
> > > >>>>>> Log4j 1 is not a high priority. FWIW, there was an effort to do
> > > that a
> > > >>>> few
> > > >>>>>> years ago, and while we were able to get some basic stuff to work
> > > >>>> making it
> > > >>>>>> work in a general way wasn’t possible.
> > > >>>>>>
> > > >>>>>> Ralph
> > > >>>>>>
> > > >>>>>>>
> > > >>>>>>> Mike
> > > >>>>>>>
> > > >>>>>>> On Fri, Nov 23, 2018 at 9:39 AM Ralph Goers <
> > > >>>> ralph.go...@dslextreme.com>
> > > >>>>>>> wrote:
> > > >>>>>>>
> > > >>>>>>>> No, you are correct. However, requiring a change to logging
> > > >>>>>> configuration
> > > >>>>>>>> has never been considered a binary compatibility break in any
> > > >> project
> > > >>>> I
> > > >>>>>>>> have ever worked on.
> > > >>>>>>>>
> > > >>>>>>>> Ralph
> > > >>>>>>>>
> > > >>>>>>>>> On Nov 23, 2018, at 10:05 AM, Ferenc Szabo
> > > >>>> <fsz...@cloudera.com.INVALID
> > > >>>>>>>
> > > >>>>>>>> wrote:
> > > >>>>>>>>>
> > > >>>>>>>>> As you mentioned, you have the freedom to use Log4j 2 and the
> > > same
> > > >>>> time
> > > >>>>>>>> we
> > > >>>>>>>>> have to keep the out of the box experience the same in a minor
> > > >>>> version.
> > > >>>>>>>>> Users should be able to upgrade flume without changing any of
> > > their
> > > >>>>>>>>> configurations.
> > > >>>>>>>>> If they have a log4j.properties (Log4j 1) then they would not
> > be
> > > >> able
> > > >>>>>> to
> > > >>>>>>>>> use it after the upgrade without changing it.
> > > >>>>>>>>>
> > > >>>>>>>>> Or am I missing a feature that would solve this case?
> > > >>>>>>>>>
> > > >>>>>>>>> On Fri, Nov 23, 2018 at 5:49 PM Ralph Goers <
> > > >>>>>> ralph.go...@dslextreme.com>
> > > >>>>>>>>> wrote:
> > > >>>>>>>>>
> > > >>>>>>>>>> Also, please put details in the Jira issues. It is much easier
> > > to
> > > >>>> find
> > > >>>>>>>> out
> > > >>>>>>>>>> why something was done by searching Jira later on then
> > searching
> > > >> the
> > > >>>>>>>>>> mailing list.
> > > >>>>>>>>>>
> > > >>>>>>>>>> Ralph
> > > >>>>>>>>>>
> > > >>>>>>>>>>> On Nov 23, 2018, at 9:47 AM, Ralph Goers <
> > > >>>> ralph.go...@dslextreme.com
> > > >>>>>>>
> > > >>>>>>>>>> wrote:
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> I do not understand this at all. Log4j 2 provides runtime
> > > >>>>>> compatibility
> > > >>>>>>>>>> with Log4j 1. What is the problem that requires a revert?
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> I have been running Flume with Log4j 2 since 1.6 so I don’t
> > > >>>>>> understand
> > > >>>>>>>>>> what the problem could possibly be.
> > > >>>>>>>>>>>
> > > >>>>>>>>>>> Ralph
> > > >>>>>>>>>>>
> > > >>>>>>>>>>>> On Nov 23, 2018, at 8:50 AM, Ferenc Szabo <
> > > >> szabofe...@apache.org>
> > > >>>>>>>>>> wrote:
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Hi everyone
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> I am about to branch the 1.9 release from trunk.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> On the 1.9 branch we will revert the following breaking
> > > changes:
> > > >>>>>>>>>>>> - FLUME-2957. Remove Guava from our public API:
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>
> > > >>>>>>
> > > >>>>
> > > >>
> > >
> > https://github.com/apache/flume/commit/7f85df9e473ee675d461d5b76650694c5a6c0088
> > > >>>>>>>>>>>> - part of FLUME-2050. Upgrade to Log4j 2.10.0:
> > > >>>>>>>>>>>> as the new release should work with the previous
> > > configurations
> > > >> we
> > > >>>>>>>> have
> > > >>>>>>>>>>>> to release it with log4j 1.x
> > > >>>>>>>>>>>> For the log4j2 upgrade, we will provide a guide, how to
> > > replace
> > > >>>> the
> > > >>>>>>>> jars
> > > >>>>>>>>>>>> if users would like to start using it in the 1.9 release on
> > > the
> > > >>>> wiki
> > > >>>>>>>>>> page.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Because of these changes the first release candidate might
> > be
> > > >>>>>>>> postponed
> > > >>>>>>>>>> to
> > > >>>>>>>>>>>> Monday.
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> Regards,
> > > >>>>>>>>>>>> Ferenc Szabo
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>> On Wed, Nov 7, 2018 at 5:04 PM ema...@cloudera.com <
> > > >>>>>>>> ema...@cloudera.com
> > > >>>>>>>>>>>
> > > >>>>>>>>>>>> wrote:
> > > >>>>>>>>>>>>
> > > >>>>>>>>>>>>> Hi Ferenc,
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> +1
> > > >>>>>>>>>>>>> I am working on FLUME-3281 Update to Kafka 2.0 client,
> > should
> > > >> be
> > > >>>>>> able
> > > >>>>>>>>>> to
> > > >>>>>>>>>>>>> finish it
> > > >>>>>>>>>>>>> till the suggested deadline.
> > > >>>>>>>>>>>>> I am also happy to do some reviews.
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> Regards
> > > >>>>>>>>>>>>> Endre
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>>> On 2018/11/06 21:23:17, Ferenc Szabo <
> > szabofe...@apache.org>
> > > >>>>>> wrote:
> > > >>>>>>>>>>>>>> Hello Flume Community,
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> 1.8 was released about a year ago and since that quite a
> > few
> > > >> bug
> > > >>>>>>>>>> fixes,
> > > >>>>>>>>>>>>>> improvements, features and documentation were introduced.
> > > >>>>>>>>>>>>>> I would like to propose to publish the next minor release
> > of
> > > >>>> Flume
> > > >>>>>>>>>>>>>> to make these changes available to the users.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> I would be more than happy to be the Release Manager with
> > > the
> > > >>>> help
> > > >>>>>>>> of
> > > >>>>>>>>>>>>>> Denes Arvay for anything that requires PMC access - if
> > both
> > > >> the
> > > >>>>>>>>>> community
> > > >>>>>>>>>>>>>> and he are
> > > >>>>>>>>>>>>>> OK with it.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Among others the following changes will be included in the
> > > >> next
> > > >>>>>>>>>> release:
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Fixed bugs:
> > > >>>>>>>>>>>>>> - FLUME-3117 Application can be dead loop when call
> > > >>>> System.exit()
> > > >>>>>> in
> > > >>>>>>>>>>>>>> methodconfigure
> > > >>>>>>>>>>>>>> - FLUME-3237 Handling RuntimeExceptions coming from the
> > JMS
> > > >>>>>> provider
> > > >>>>>>>>>> in
> > > >>>>>>>>>>>>>> JMSSource
> > > >>>>>>>>>>>>>> - FLUME-3201 Fix SyslogUtil to handle RFC3164 format in
> > > >> december
> > > >>>>>>>>>>>>> correctly
> > > >>>>>>>>>>>>>> - FLUME-3056 TestApplication hangs indefinitely
> > > >>>>>>>>>>>>>> - FLUME-2976 Exception when JMS source tries to connect
> > to a
> > > >>>>>>>> Weblogic
> > > >>>>>>>>>>>>>> server without authentication
> > > >>>>>>>>>>>>>> - FLUME-3270 Close JMS resources in JMSMessageConsumer
> > > >>>> constructor
> > > >>>>>>>> in
> > > >>>>>>>>>>>>> case
> > > >>>>>>>>>>>>>> of failure
> > > >>>>>>>>>>>>>> - FLUME-3222 java.nio.file.NoSuchFileException thrown when
> > > >> files
> > > >>>>>> are
> > > >>>>>>>>>>>>> being
> > > >>>>>>>>>>>>>> deleted from the TAILDIR source
> > > >>>>>>>>>>>>>> - FLUME-2894 Flume components should stop in the correct
> > > order
> > > >>>>>>>>>> (graceful
> > > >>>>>>>>>>>>>> shutdown)
> > > >>>>>>>>>>>>>> - FLUME-2973 Deadlock in hdfs sink
> > > >>>>>>>>>>>>>> - FLUME-3278 Handling -D keystore parameters in Kafka
> > > >> components
> > > >>>>>>>>>>>>>> - FLUME-3265 Cannot set batch-size for
> > > LoadBalancingRpcClient
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Improvements:
> > > >>>>>>>>>>>>>> - FLUME-3186 Make asyncHbaseClient configuration
> > parameters
> > > >>>>>>>> available
> > > >>>>>>>>>>>>> from
> > > >>>>>>>>>>>>>> flume config
> > > >>>>>>>>>>>>>> - FLUME-3239 Do not rename files in SpoolDirectorySource
> > > >>>>>>>>>>>>>> - FLUME-3227 Add Rate Limiter to StressSource
> > > >>>>>>>>>>>>>> - FLUME-2050 Upgrade to log4j2 (when GA)
> > > >>>>>>>>>>>>>> - FLUME-3246 Validate flume configuration to prevent
> > larger
> > > >>>> source
> > > >>>>>>>>>> batch
> > > >>>>>>>>>>>>>> size than the channel transaction capacity
> > > >>>>>>>>>>>>>> - FLUME-3050 add counters for error conditions and expose
> > to
> > > >>>>>> monitor
> > > >>>>>>>>>> URL
> > > >>>>>>>>>>>>>> - FLUME-3269 Support JSSE keystore/trustore -D system
> > > >> properties
> > > >>>>>>>>>>>>>> - FLUME-3223 Flume HDFS Sink should retry close prior to
> > > >>>>>> performing
> > > >>>>>>>> a
> > > >>>>>>>>>>>>>> recoverLease
> > > >>>>>>>>>>>>>> - FLUME-3276 Components supporting SSL/TLS should be able
> > to
> > > >>>>>> specify
> > > >>>>>>>>>>>>> cipher
> > > >>>>>>>>>>>>>> suite list
> > > >>>>>>>>>>>>>> - FLUME-3275 Components supporting SSL/TLS should be able
> > to
> > > >>>>>> specify
> > > >>>>>>>>>>>>>> protocol list
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> New Features:
> > > >>>>>>>>>>>>>> - FLUME-3142 Adding HBase2 sink
> > > >>>>>>>>>>>>>> - FLUME-2442 Need an alternative to providing clear text
> > > >>>> passwords
> > > >>>>>>>> in
> > > >>>>>>>>>>>>> flume
> > > >>>>>>>>>>>>>> config
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> There are 26 open tickets targeted for 1.9 in patch
> > > available
> > > >>>>>> state:
> > > >>>>>>>>>>>>>> https://s.apache.org/flume-1.9-target-tickets
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> We also have a number of open pull requests on Github:
> > > >>>>>>>>>>>>>> https://github.com/apache/flume/pulls
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> There are a few tickets in progress that would be good to
> > > >>>> include
> > > >>>>>> in
> > > >>>>>>>>>> the
> > > >>>>>>>>>>>>>> release so
> > > >>>>>>>>>>>>>> I would say that we focus on reviewing and testing them in
> > > the
> > > >>>>>> next
> > > >>>>>>>> 2
> > > >>>>>>>>>>>>>> weeks.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> I would like to propose to target the 23rd of November for
> > > the
> > > >>>>>> first
> > > >>>>>>>>>>>>>> release candidate.
> > > >>>>>>>>>>>>>> That would mean that the branch date would be a few days
> > > >> before
> > > >>>>>>>> that.
> > > >>>>>>>>>>>>>> Any significant code change should get in by that date.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> If nobody has any concerns then I am going to create an
> > > >> umbrella
> > > >>>>>>>>>> ticket
> > > >>>>>>>>>>>>> to
> > > >>>>>>>>>>>>>> track the release process.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Some movement can be expected in the related JIRA tickets.
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>> Kind regards,
> > > >>>>>>>>>>>>>> Ferenc
> > > >>>>>>>>>>>>>>
> > > >>>>>>>>>>>>>
> > > >>>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>>
> > > >>>>>>>>
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>
> > > >>
> > > >>
> > >
> > >
> > >
> >

Reply via email to