I took a look at .NET and C++ parts. Looks good to me. Best Regards, Igor
On Mon, Mar 13, 2017 at 2:35 PM, Alexey Kuznetsov <akuznet...@apache.org> wrote: > I will also take a look for Web Console changes tomorrow. > > On Fri, Mar 10, 2017 at 5:00 PM, Andrey Gura <ag...@apache.org> wrote: > > > Maxim, > > > > I'll take a look today. > > > > 10 марта 2017 г. 11:06 AM пользователь "Kozlov Maxim" < > > dreamx....@gmail.com> > > написал: > > > > > Andrey, Alexey, please review > > > PR - https://github.com/apache/ignite/pull/1521 < > > > https://github.com/apache/ignite/pull/1521> > > > tests - http://ci.ignite.apache.org/viewType.html?buildTypeId= > > > IgniteTests_RunAll&branch_IgniteTests=pull%2F1521% > > > 2Fhead&tab=buildTypeStatusDiv <http://ci.ignite.apache.org/ > > > viewType.html?buildTypeId=IgniteTests_RunAll&branch_ > > > IgniteTests=pull/1521/head&tab=buildTypeStatusDiv> > > > > > > > 7 марта 2017 г., в 14:15, Andrey Gura <ag...@apache.org> написал(а): > > > > > > > > Maxim, > > > > > > > > all GridClockSyncProcessor related code should be remove (objects, > > > > messages, etc) > > > > > > > > On Tue, Mar 7, 2017 at 12:23 PM, Kozlov Maxim <dreamx....@gmail.com> > > > wrote: > > > >> Andrey, or better remove GridTimeSyncProcessorSelfTest class? > > > >> > > > >>> 7 марта 2017 г., в 12:21, Kozlov Maxim <dreamx....@gmail.com> > > > написал(а): > > > >>> > > > >>> Andrey, in GridTimeSyncProcessorSelfTest class methods: > > testTimeSync() > > > and testTimeSyncChangeCoordinator() also removed? > > > >>> > > > >>> > > > >>>> 6 марта 2017 г., в 18:42, Andrey Gura <ag...@apache.org> > > написал(а): > > > >>>> > > > >>>> Maxim, > > > >>>> > > > >>>> About SER_VER_COMPARATOR. You can use code branch that executes > when > > > >>>> times are equal: > > > >>>> > > > >>>> int nodeOrder1 = ver1.nodeOrder(); > > > >>>> int nodeOrder2 = ver2.nodeOrder(); > > > >>>> > > > >>>> if (nodeOrder1 == nodeOrder2) { > > > >>>> long order1 = ver1.order(); > > > >>>> long order2 = ver2.order(); > > > >>>> > > > >>>> assert order1 != order2; > > > >>>> > > > >>>> return order1 > order2 ? 1 : -1; > > > >>>> } > > > >>>> else > > > >>>> return nodeOrder1 > nodeOrder2 ? 1 : -1; > > > >>>> > > > >>>> On Mon, Mar 6, 2017 at 6:32 PM, Alexey Goncharuk > > > >>>> <alexey.goncha...@gmail.com> wrote: > > > >>>>> Maxim, > > > >>>>> > > > >>>>> Global time comparison is only needed for CLOCK mode, so you > should > > > modify > > > >>>>> the code as if ignoreTime is always true. > > > >>>>> > > > >>>>> 2017-03-06 18:13 GMT+03:00 Kozlov Maxim <dreamx....@gmail.com>: > > > >>>>> > > > >>>>>> ok, > > > >>>>>> in GridCacheAtomicVersionComparator class, method > > > >>>>>> compare(GridCacheVersion one, GridCacheVersion other, boolean > > > ignoreTime) > > > >>>>>> if (globalTime == otherGlobalTime || ignoreTime) { // => if > > > (ignoreTime) { > > > >>>>>> ..... > > > >>>>>> } > > > >>>>>> else > > > >>>>>> return globalTime > otherGlobalTime ? 1 : -1; // => return > -1; > > > >>>>>> > > > >>>>>> and, > > > >>>>>> GridCacheMvcc class, > > > >>>>>> SER_VER_COMPARATOR is comparator by globalTime var. His remove > and > > > remove > > > >>>>>> compareSerializableVersion? > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>>> 6 марта 2017 г., в 16:51, Andrey Gura <ag...@apache.org> > > > написал(а): > > > >>>>>>> > > > >>>>>>> Maxim, > > > >>>>>>> > > > >>>>>>> updateTime() method should be removed. > > > >>>>>>> > > > >>>>>>> On Mon, Mar 6, 2017 at 12:12 PM, Kozlov Maxim < > > > dreamx....@gmail.com> > > > >>>>>> wrote: > > > >>>>>>>> In CacheEntryImplEx class use ver.globalTime() in > > > >>>>>>>> > > > >>>>>>>> @Override public long updateTime() { > > > >>>>>>>> return ver.globalTime(); > > > >>>>>>>> } > > > >>>>>>>> > > > >>>>>>>> Than is better to replace this variable? > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>>> 3 марта 2017 г., в 19:19, Andrey Gura <ag...@apache.org> > > > написал(а): > > > >>>>>>>>> > > > >>>>>>>>> Maxim, > > > >>>>>>>>> > > > >>>>>>>>> I think the next implementation will be good enough: > > > >>>>>>>>> > > > >>>>>>>>> public IgniteUuid asGridUuid() { > > > >>>>>>>>> return new IgniteUuid(new UUID(nodeOrderDrId, topVer), > order); > > > >>>>>>>>> } > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>> Serialization/deserialization of GridCacheVersion.globalTime > > > field > > > >>>>>>>>> should be removed. > > > >>>>>>>>> > > > >>>>>>>>> On Fri, Mar 3, 2017 at 5:57 PM, Kozlov Maxim < > > > dreamx....@gmail.com> > > > >>>>>> wrote: > > > >>>>>>>>>> Alexey, > > > >>>>>>>>>> > > > >>>>>>>>>> public IgniteUuid asGridUuid() { > > > >>>>>>>>>> return new IgniteUuid(new UUID(nodeOrderDrId << 32, topVer > << > > > 32), > > > >>>>>> order); > > > >>>>>>>>>> } > > > >>>>>>>>>> > > > >>>>>>>>>> So you want to change or not? > > > >>>>>>>>>> > > > >>>>>>>>>> And > > > >>>>>>>>>> - GridCacheVersion.writeTo(ByteBuffer buf, MessageWriter > > > writer) > > > >>>>>>>>>> - GridCacheVersion.readFrom(ByteBuffer buf, MessageReader > > > reader) > > > >>>>>>>>>> > > > >>>>>>>>>> use globalTime variable, must be removed case 0: (in both > > > methods) or > > > >>>>>> replace globalTime? > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>>> 2 марта 2017 г., в 16:58, Andrey Gura <ag...@apache.org> > > > написал(а): > > > >>>>>>>>>>> > > > >>>>>>>>>>> +1 > > > >>>>>>>>>>> > > > >>>>>>>>>>> Removing of asGridUuid() method can lead to much code > changes > > > but it > > > >>>>>>>>>>> should be avoided on this step. > > > >>>>>>>>>>> > > > >>>>>>>>>>> On Thu, Mar 2, 2017 at 4:56 PM, Alexey Goncharuk > > > >>>>>>>>>>> <alexey.goncha...@gmail.com> wrote: > > > >>>>>>>>>>>> Maxim, > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> I see several usages of asGridUuid() method, so I would > just > > > remove > > > >>>>>> global > > > >>>>>>>>>>>> time and use nodeOrderDrId and topVer as different parts > of > > > high > > > >>>>>> and low > > > >>>>>>>>>>>> parts of the embedded UUID. > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> --AG > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> 2017-03-02 12:39 GMT+03:00 Kozlov Maxim < > > dreamx....@gmail.com > > > >: > > > >>>>>>>>>>>> > > > >>>>>>>>>>>>> Andrey, > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> When removed parameter globalTime, in method: > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> public IgniteUuid asGridUuid() { > > > >>>>>>>>>>>>> return new IgniteUuid(new UUID(((long)topVer << 32) | > > > >>>>>> nodeOrderDrId, > > > >>>>>>>>>>>>> globalTime), order); > > > >>>>>>>>>>>>> } > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> globalTime parameter replaced by something or remove this > > > method? > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>>> 2 марта 2017 г., в 12:07, Kozlov Maxim < > > > dreamx....@gmail.com> > > > >>>>>>>>>>>>> написал(а): > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>>> Andrey, > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>>> Please review PR again. > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>> 1 марта 2017 г., в 18:47, Andrey Gura < > ag...@apache.org> > > > >>>>>> написал(а): > > > >>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>> I think that it is ok. > > > >>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>> On Wed, Mar 1, 2017 at 6:34 PM, Kozlov Maxim < > > > >>>>>> dreamx....@gmail.com> > > > >>>>>>>>>>>>> wrote: > > > >>>>>>>>>>>>>>>> Ok. What do you say for the rest? > > > >>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>> 1 марта 2017 г., в 18:15, Andrey Gura < > > ag...@apache.org> > > > >>>>>> написал(а): > > > >>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>> Maxim, > > > >>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>> I think that during renaming we should not lose > > "Atomic" > > > >>>>>> prefix. > > > >>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>> On Wed, Mar 1, 2017 at 5:16 PM, Kozlov Maxim < > > > >>>>>> dreamx....@gmail.com> > > > >>>>>>>>>>>>> wrote: > > > >>>>>>>>>>>>>>>>>> Andrey, ok. > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> Also remove in the modules/platform/dotnet > > > >>>>>>>>>>>>> CacheAtomicWriteOrderMode.cs? > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> Rename classes: > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest.startGrids -> > > > >>>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest.startGridsLocal > (commit) > > > >>>>>>>>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteO > rderWithStoreInvokeTest > > > -> > > > >>>>>>>>>>>>> IgniteCacheWithStoreInvokeTest > > > >>>>>>>>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderInvokeTest -> > > > >>>>>>>>>>>>> IgniteCacheInvokeTest > > > >>>>>>>>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteO > > > rderNearEnabledStoreValueTest > > > >>>>>> -> > > > >>>>>>>>>>>>> IgniteCacheNearEnabledStoreValueTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrd > erNearRemoveFailureTest > > > -> > > > >>>>>>>>>>>>> GridCacheNearRemoveFailureTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderRemoveFailureTest > -> > > > >>>>>>>>>>>>> GridCacheRemoveFailureTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderFailoverSelfTest -> > > > >>>>>>>>>>>>> GridCacheFailoverSelfTest > > > >>>>>>>>>>>>>>>>>> GridCacheValueConsistencyAtomi > > > cPrimaryWriteOrderNearEnabledS > > > >>>>>> elfTest > > > >>>>>>>>>>>>> -> GridCacheValueConsistencyNearEnabledSelfTest > > > >>>>>>>>>>>>>>>>>> CacheContinuousQueryAsyncFailo > > > verAtomicPrimaryWriteOrderSelfTest > > > >>>>>> -> > > > >>>>>>>>>>>>> CacheContinuousQueryAsyncFailoverSelfTest > > > >>>>>>>>>>>>>>>>>> CacheContinuousQueryFailoverAt > > > omicPrimaryWriteOrderSelfTest > > > >>>>>> -> > > > >>>>>>>>>>>>> CacheContinuousQueryFailoverSelfTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest. > > > testNoBackupsPrimaryWriteOrder > > > >>>>>> -> > > > >>>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest.testNoBackups > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicNearCacheSelfTest. > > > >>>>>> testWithBackupsPrimaryWriteOrder > > > >>>>>>>>>>>>> -> GridCacheAtomicNearCacheSelfTest.testWithBackups > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> Remove classes: > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderStoreValueTest > > > >>>>>>>>>>>>>>>>>> GridCacheReplicatedAtomicPrima > > > ryWriteOrderMultiNodeFullApiSe > > > >>>>>> lfTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrd > > > erMultiNodeFullApiSelfTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrd > > > erMultiNodeP2PDisabledFullApiS > > > >>>>>> elfTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWrityOrd > > > erOffHeapMultiNodeFullApiSelfT > > > >>>>>> est > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrd > > erOffHeapFullApiSelfTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderFullApiSelfTest > > > >>>>>>>>>>>>>>>>>> GridCacheAtomicPrimaryWriteOrderReloadAllSelfTest > > > >>>>>>>>>>>>>>>>>> IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest > > > >>>>>>>>>>>>>>>>>> GridCacheValueConsistencyAtomi > > > cPrimaryWriteOrderSelfTest > > > >>>>>>>>>>>>>>>>>> IgniteCacheAtomicPrimaryWriteOrderExpiryPolicyTest > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> ok? :) > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>> 1 марта 2017 г., в 2:04, Andrey Gura < > > ag...@apache.org > > > > > > > >>>>>> написал(а): > > > >>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>> No, it should be removed. If somebody use entry > last > > > update > > > >>>>>> time > > > >>>>>>>>>>>>> (e.g. > > > >>>>>>>>>>>>>>>>>>> for conflict resolving) they should store this time > > as > > > entry > > > >>>>>> field. > > > >>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>> On Wed, Mar 1, 2017 at 12:57 AM, Dmitriy Setrakyan > > > >>>>>>>>>>>>>>>>>>> <dsetrak...@apache.org> wrote: > > > >>>>>>>>>>>>>>>>>>>> Do we still need GridClockSyncProcessor? > > > >>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>> On Tue, Feb 28, 2017 at 5:26 AM, Andrey Gura < > > > >>>>>> ag...@apache.org> > > > >>>>>>>>>>>>> wrote: > > > >>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>> Maxim, > > > >>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>> Yes, this setting doesn't make sense anymore. So > we > > > need > > > >>>>>> remove > > > >>>>>>>>>>>>> all > > > >>>>>>>>>>>>>>>>>>>>> related methods. > > > >>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>> Also there is component called > > > GridClockSyncProcessor that > > > >>>>>> also > > > >>>>>>>>>>>>> should > > > >>>>>>>>>>>>>>>>>>>>> be removed. It will lead to removing globalTime > > > field from > > > >>>>>>>>>>>>>>>>>>>>> GridCacheVersion class and some related methods. > > > >>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>> On Tue, Feb 28, 2017 at 3:21 PM, Kozlov Maxim < > > > >>>>>>>>>>>>> dreamx....@gmail.com> > > > >>>>>>>>>>>>>>>>>>>>> wrote: > > > >>>>>>>>>>>>>>>>>>>>>> Valentin, > > > >>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>> Then there is no need for setting > > > CacheConfiguration. > > > >>>>>>>>>>>>> atomicWriteOrderMode. > > > >>>>>>>>>>>>>>>>>>>>> What do you think, remove it and and related > > methods? > > > >>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>> 28 февр. 2017 г., в 2:49, Valentin Kulichenko < > > > >>>>>>>>>>>>>>>>>>>>> valentin.kuliche...@gmail.com> написал(а): > > > >>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>> Hi Max, > > > >>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>> In case we remove the CLOCK mode, I think we > > should > > > >>>>>> remove the > > > >>>>>>>>>>>>> enum > > > >>>>>>>>>>>>>>>>>>>>> too, as > > > >>>>>>>>>>>>>>>>>>>>>>> well as configuration properties and other code > > > using > > > >>>>>> this > > > >>>>>>>>>>>>> enum. Having > > > >>>>>>>>>>>>>>>>>>>>>>> enum with one value doesn't make sense to me. > > > >>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>> -Val > > > >>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>> On Mon, Feb 27, 2017 at 5:09 AM, Kozlov Maxim < > > > >>>>>>>>>>>>> dreamx....@gmail.com> > > > >>>>>>>>>>>>>>>>>>>>> wrote: > > > >>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>>> Hi Igniters, > > > >>>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>>> After remove CLOCK mode, > > > CacheAtomicWriteOrderMode enum > > > >>>>>>>>>>>>> contains now > > > >>>>>>>>>>>>>>>>>>>>> only > > > >>>>>>>>>>>>>>>>>>>>>>>> one value PRIMARY. Andrey Gura, proposition > > remove > > > >>>>>>>>>>>>>>>>>>>>>>>> CacheAtomicWriteOrderMode enum. Will there be > > > something > > > >>>>>>>>>>>>> special for > > > >>>>>>>>>>>>>>>>>>>>> this > > > >>>>>>>>>>>>>>>>>>>>>>>> purpose is enum? > > > >>>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>>> jira: https://issues.apache.org/ > > > jira/browse/IGNITE-4587 > > > >>>>>> < > > > >>>>>>>>>>>>>>>>>>>>>>>> https://issues.apache.org/ > > jira/browse/IGNITE-4587 > > > > > > > >>>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>>> -- > > > >>>>>>>>>>>>>>>>>>>>>>>> Best Regards, > > > >>>>>>>>>>>>>>>>>>>>>>>> Max K. > > > >>>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>> -- > > > >>>>>>>>>>>>>>>>>>>>>> Best Regards, > > > >>>>>>>>>>>>>>>>>>>>>> Max K. > > > >>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> -- > > > >>>>>>>>>>>>>>>>>> Best Regards, > > > >>>>>>>>>>>>>>>>>> Max K. > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>> -- > > > >>>>>>>>>>>>>>>> Best Regards, > > > >>>>>>>>>>>>>>>> Max K. > > > >>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>>> -- > > > >>>>>>>>>>>>>> Best Regards, > > > >>>>>>>>>>>>>> Max K. > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> -- > > > >>>>>>>>>>>>> Best Regards, > > > >>>>>>>>>>>>> Max K. > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> -- > > > >>>>>>>>>> Best Regards, > > > >>>>>>>>>> Max K. > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>> > > > >>>>>>>> -- > > > >>>>>>>> Best Regards, > > > >>>>>>>> Max K. > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>>>> -- > > > >>>>>> Best Regards, > > > >>>>>> Max K. > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>>>>> > > > >>> > > > >>> -- > > > >>> Best Regards, > > > >>> Max K. > > > >>> > > > >>> > > > >>> > > > >>> > > > >> > > > >> -- > > > >> Best Regards, > > > >> Max K. > > > >> > > > >> > > > >> > > > >> > > > > > > -- > > > Best Regards, > > > Max K. > > > > > > > > > > > > > > > > > > > > > -- > Alexey Kuznetsov >