About performance, seems classList is better performant than className (what I never would have imagined)
Take a look: https://plus.google.com/+PaulIrish/posts/APArpwWqew3 And the video where first try with className and then switch to classList to great huge boost in performance https://www.youtube.com/watch?v=hZJacl2VkKo Seems that className touch the DOM and this makes the performance be very affected. So the only thing I can imagine could be bad, is the inverse Thanks Carlos 2018-03-13 18:30 GMT+01:00 Carlos Rovira <[email protected]>: > Hi Alex, > > right, I tested it in JewelExample. If you find something that does not > conform to what you thinked please let me know to address it. > I think it should not be very difficult to handle some isolated case with > what we have > > thanks > > > > 2018-03-13 18:24 GMT+01:00 Alex Harui <[email protected]>: > >> Hi Carlos, >> >> Just so I'm clear, you believe that UIBase.as in the jewel-ui-set branch >> addresses all of these issues? I've just been watching commits, so if you >> think that's the case then I will look at the current state of your >> UIBase. >> >> Thanks, >> -Alex >> >> On 3/13/18, 10:14 AM, "[email protected] on behalf of Carlos >> Rovira" >> <[email protected] on behalf of [email protected]> wrote: >> >> >Hi Alex, >> > >> >2018-03-13 17:50 GMT+01:00 Alex Harui <[email protected]>: >> > >> >> Hi Carlos, >> >> >> >> I do not think you are considering all of the scenarios in your >> proposed >> >> code. I'm sad that I have to delineate them again, but I will try. >> >> >> >> 1) In Basic there are two sets of strings: The fixed set from >> typeNames >> >> that should "never" change. And the className set from the user that >> >>can >> >> not only add, but also remove a set of HTML classes. >> >> >> >> >> >I see the next email so I respond to this in the following, I solved that >> >and explain later >> > >> > >> >> 2) In MDL and I guess Jewel, there is a third set. They are tied to >> >> properties like you said. "fab" and "primary", and things like that. >> >> >> > >> >Yes this will be the normal case in users. People using Jewel or other UI >> >set with look and feel will >> >use properties as their normal basis in the same way they do now in MDL >> > >> > >> >> >> >> 3) For PAYG reasons, it would be great if Basic did not have to >> >> contemplate the third set. >> >> >> >> 4) For PAYG reasons, it would be nice if Basic did not have to assume >> >> conversion to array and call split(). The current code in the develop >> >> branch lets the browser do the split() in native code. >> >> >> > >> >for 3 and 4 what's the best way to left UIBase untouched so I can use my >> >code in Jewel? >> >Is the actual way of duplicating the code for UIBase in my own library >> the >> >best way? >> > >> > >> >> >> >> Then, as a performance consideration, Harbs claims that changing >> >>classList >> >> is expensive. >> >> >> > >> >I don't will say that there's a low performance, but my guess is that is >> >nothing that we should have in consideration, but we can discuss it >> later. >> > >> > >> >> >> >> So, your proposed solution MUST allow the user to delete/remove any >> >> strings they added without removing strings added from typeNames or >> from >> >> the "fab"/"primary" properties. >> > >> > >> >That's now working >> > >> > >> >> And allow add/remove of the user's >> >> strings before or after changing properties like "fab" and "primary". >> >> >> > >> >as we are dealing with a collection this is working and only one copy of >> >the string is maintained and outputted, I think in this way >> >less errors of this kind should happen >> > >> > >> >> >> >> Show us how that will work. I'm pretty sure it is possible. Then we >> >>will >> >> debate the performance aspects. >> >> >> > >> >I have it right now completely working in my branch, so it's a matter to >> >try it in JewelExample >> > >> > >> >> >> >> Thanks, >> >> -Alex >> >> >> >> On 3/13/18, 6:49 AM, "[email protected] on behalf of Carlos >> >>Rovira" >> >> <[email protected] on behalf of [email protected]> wrote: >> >> >> >> >So, you if is == you expect that setting className in royale you >> remove >> >> >all >> >> >inclusive typeNames? >> >> >Harbs, className is not equal to class in HTML >> >> > >> >> >2018-03-13 14:08 GMT+01:00 Harbs <[email protected]>: >> >> > >> >> >> className in Royale == class in HTML. >> >> >> >> >> >> > On Mar 13, 2018, at 2:55 PM, Carlos Rovira >> >><[email protected]> >> >> >> wrote: >> >> >> > >> >> >> > I think we're getting to the point in this discussion. >> >> >> > >> >> >> > For me as a user, I expect to use className property to "add", and >> >>not >> >> >> > override all I have >> >> >> > for that reason in MDL and now in Royale we decided to create >> >> >>properties >> >> >> > (that use to be boolean) like "primary" or in MDL "fab" to add or >> >> >>remove >> >> >> > those properties (since are library properties that are managed >> >> >> > specifically). >> >> >> > I don't want to set primary and then className removes that! I >> >>think >> >> >>that >> >> >> > function is not right and will be the cause of many problems. >> >> >> > >> >> >> > If the user wants to remove all class names, he can do with a >> >>method >> >> >>that >> >> >> > callls element.classList.remove, but the behavior by default >> >> >>shouldn't be >> >> >> > to use className to get rid of all what we have. >> >> >> > >> >> >> > If you work with html directly , is normal to write class="class1 >> >> >>class2 >> >> >> > ..." and create from scratch >> >> >> > >> >> >> > in Royale you write mxml and as3 and use className to add >> >>additional >> >> >> > classes that are not in the api but not to remove the ones the >> >> >>component >> >> >> > set plus the ones the user "switched" on/off due to properties >> >> >> > >> >> >> > >> >> >> > >> >> >> > 2018-03-13 13:42 GMT+01:00 Harbs <[email protected]>: >> >> >> > >> >> >> >> No. className is supposed to *replace* the entire classList minus >> >>the >> >> >> >> internally managed ones (i.e. typeNames). Your code drastically >> >> >>changes >> >> >> the >> >> >> >> current behavior. >> >> >> >> >> >> >> >> You cannot use add for that and replacing the classList will >> >>destroy >> >> >> your >> >> >> >> custom class names. >> >> >> >> >> >> >> >>> On Mar 13, 2018, at 2:34 PM, Carlos Rovira >> >><[email protected] >> >> > >> >> >> >> wrote: >> >> >> >>> >> >> >> >>> Solving the multiple string value problem: >> >> >> >>> >> >> >> >>> This: <j:TextButton text="PRIMARY" className="myCustomStyle some >> >> >>other" >> >> >> >>> primary="true"/> >> >> >> >>> >> >> >> >>> *<button type="button" class="jewel button textbutton >> >>myCustomStyle >> >> >> some >> >> >> >>> other primary" style="margin: 10px 0px 0px; display: >> >> >> >>> block;">PRIMARY</button>* >> >> >> >>> >> >> >> >>> with this change >> >> >> >>> >> >> >> >>> COMPILE::JS >> >> >> >>> protected function setClassName(value:String):void >> >> >> >>> { >> >> >> >>> var classes:Array = value.split(" "); >> >> >> >>> element.classList.add.apply(element.classList, classes); >> >> >> >>> } >> >> >> >>> >> >> >> >>> I think this was all the problems we have right? >> >> >> >>> >> >> >> >>> >> >> >> >>> 2018-03-13 13:20 GMT+01:00 Carlos Rovira >> >><[email protected]>: >> >> >> >>> >> >> >> >>>> Hi Piotr, >> >> >> >>>> >> >> >> >>>> that's one of the advantages of a collection, order doesn't >> >> >>matter! :) >> >> >> >>>> >> >> >> >>>> <j:TextButton text="PRIMARY" className="myCustomStyle" >> >> >> primary="true"/> >> >> >> >>>> >> >> >> >>>> output: >> >> >> >>>> >> >> >> >>>> *<button type="button" class="jewel button textbutton >> >>myCustomStyle >> >> >> >>>> primary" style="margin: 10px 0px 0px; display: >> >> >> block;">PRIMARY</button>* >> >> >> >>>> >> >> >> >>>> this is one of the reason to change, since you'll end trying to >> >> >>figure >> >> >> >>>> what comes in first or not. >> >> >> >>>> >> >> >> >>>> Do you need more evidence? >> >> >> >>>> >> >> >> >>>> Thanks >> >> >> >>>> >> >> >> >>>> >> >> >> >>>> 2018-03-13 12:48 GMT+01:00 Piotr Zarzycki >> >> >><[email protected] >> >> >> >: >> >> >> >>>> >> >> >> >>>>> In my example orders matters. Setup first className than your >> >> >> property. >> >> >> >>>>> >> >> >> >>>>> >> >> >> >>>>> On Tue, Mar 13, 2018, 12:39 Harbs <[email protected]> >> >>wrote: >> >> >> >>>>> >> >> >> >>>>>> Hi Carlos, >> >> >> >>>>>> >> >> >> >>>>>> I definitely appreciate the work you are doing. I’m swamped >> >>with >> >> >> work >> >> >> >>>>>> right now, so I don’t have the time to spend helping you. >> >>(Sorry >> >> >> about >> >> >> >>>>>> that.) :-( >> >> >> >>>>>> >> >> >> >>>>>> I think the discussions here are about pretty minor points. >> >>You >> >> >>can >> >> >> >>>>>> certainly implement jewel how you think makes sense, but if >> >>you >> >> >>want >> >> >> >> to >> >> >> >>>>>> make changes to basic in areas which are not broken, there >> >>needs >> >> >>to >> >> >> >> be a >> >> >> >>>>>> really good reason to do so. >> >> >> >>>>>> >> >> >> >>>>>> My $0.02, >> >> >> >>>>>> Harbs >> >> >> >>>>>>> On Mar 13, 2018, at 1:31 PM, Carlos Rovira < >> >> >> [email protected]> >> >> >> >>>>>> wrote: >> >> >> >>>>>>> >> >> >> >>>>>>> Hi Piotr, >> >> >> >>>>>>> >> >> >> >>>>>>> thanks for your words, but is difficult to work on something >> >> >>when >> >> >> you >> >> >> >>>>>>> believe in your vision and others no, and more over when all >> >>the >> >> >> >> facts >> >> >> >>>>>> you >> >> >> >>>>>>> see corroborates that vision. It's difficult to maintain >> live >> >> >>the >> >> >> >>>>> moto in >> >> >> >>>>>>> that scenario. >> >> >> >>>>>>> >> >> >> >>>>>>> but anyway for you Kindly words >> >> >> >>>>>>> >> >> >> >>>>>>> Carlos >> >> >> >>>>>>> >> >> >> >>>>>>> >> >> >> >>>>>>> 2018-03-13 12:21 GMT+01:00 Piotr Zarzycki < >> >> >> [email protected] >> >> >> >>>>>> : >> >> >> >>>>>>> >> >> >> >>>>>>>> Carlos, >> >> >> >>>>>>>> >> >> >> >>>>>>>> In my opinion you are not facing the wall from US. You are >> >> >>facing >> >> >> >> the >> >> >> >>>>>> wall >> >> >> >>>>>>>> from lack of volounteers who can help, do the job. >> >> >> >>>>>>>> Believe me your Jewel effort in my list of tasks is almost >> >>on >> >> >>the >> >> >> >>>>> Top. I >> >> >> >>>>>>>> have to fiinish planned work in TranspiledActionScript >> first >> >> >>and I >> >> >> >>>>> hope >> >> >> >>>>>> to >> >> >> >>>>>>>> join. >> >> >> >>>>>>>> >> >> >> >>>>>>>> When it will be - maybe in couple of weeks. In the end >> >> >>something >> >> >> >>>>> have to >> >> >> >>>>>>>> pay the bills and Royale is only fraction of that. >> >> >> >>>>>>>> >> >> >> >>>>>>>> I contribute in other related areas. I Wish I could >> >>contribute >> >> >>in >> >> >> >>>>> your >> >> >> >>>>>> way >> >> >> >>>>>>>> or Alex and Peter. >> >> >> >>>>>>>> >> >> >> >>>>>>>> Thanks for your work! >> >> >> >>>>>>>> Piotr >> >> >> >>>>>>>> >> >> >> >>>>>>>> On Tue, Mar 13, 2018, 12:00 Piotr Zarzycki < >> >> >> >>>>> [email protected]> >> >> >> >>>>>>>> wrote: >> >> >> >>>>>>>> >> >> >> >>>>>>>>> I personally said - Go and try, report back. I have gave >> >>you >> >> >>an >> >> >> >> real >> >> >> >>>>>>>> world >> >> >> >>>>>>>>> examples where classList failed. Try and post the results. >> >> >> >>>>>>>>> >> >> >> >>>>>>>>> 2018-03-13 11:49 GMT+01:00 Carlos Rovira < >> >> >> [email protected] >> >> >> >>> : >> >> >> >>>>>>>>> >> >> >> >>>>>>>>>> Hi, >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> it's very hard to me to invest lot of time both in tryin >> >>to >> >> >> >> develop >> >> >> >>>>>>>>>> something useful in the look and feel field for us where >> >>no >> >> >> other >> >> >> >>>>> is >> >> >> >>>>>>>> doing >> >> >> >>>>>>>>>> work, trying to explain and discuss all issues I find >> >>without >> >> >> get >> >> >> >>>>> any >> >> >> >>>>>>>>>> traction. It's like to face a wall all the time. >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> Maybe I'm wrong with my proposals but other times my >> >> >>perception >> >> >> is >> >> >> >>>>>> that >> >> >> >>>>>>>>>> things are settled in a particular way >> >> >> >>>>>>>>>> and we don't want to change it since is working in the >> >> >>current >> >> >> >>>>> state. >> >> >> >>>>>>>> But >> >> >> >>>>>>>>>> I >> >> >> >>>>>>>>>> think we always where thinking of change things as we >> >>evolve >> >> >> >>>>> Royale. >> >> >> >>>>>>>> We're >> >> >> >>>>>>>>>> in a 0.9.2 release, we're not in 1.0, but the way we're >> >> >>managing >> >> >> >>>>> all >> >> >> >>>>>>>>>> issues >> >> >> >>>>>>>>>> seems to >> >> >> >>>>>>>>>> me that we're fine with what we have now and we are >> >>freezing >> >> >>the >> >> >> >>>>> API. >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> In all the issues raised last days only CSS compiler >> >>errors >> >> >>are >> >> >> >>>>> real >> >> >> >>>>>>>> bugs, >> >> >> >>>>>>>>>> since without that fixes royale can't output concrete CSS >> >> >>rules >> >> >> (I >> >> >> >>>>>> think >> >> >> >>>>>>>>>> those not require any discussion) >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> The font injection is maybe another bug (don't know why a >> >> >>class >> >> >> in >> >> >> >>>>> a >> >> >> >>>>>>>> theme >> >> >> >>>>>>>>>> is not "visible" by the final app), but can be >> >>workarounded >> >> >>with >> >> >> >> an >> >> >> >>>>>> html >> >> >> >>>>>>>>>> that setup the font for now. >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> Things like classNames discussion are not critical (I >> >>know), >> >> >> it's >> >> >> >>>>>> just a >> >> >> >>>>>>>>>> matter to refine the API since I had problems each time I >> >>go >> >> >> that >> >> >> >>>>>> path, >> >> >> >>>>>>>>>> first with MDL and now with Jewel. Maybe I'm the only one >> >> >>since >> >> >> no >> >> >> >>>>>> other >> >> >> >>>>>>>>>> has tried what I'm trying to do: Creating Themes. >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> In my opinion, give the users only a way to manage >> >>classNames >> >> >> vía >> >> >> >>>>>>>> string, >> >> >> >>>>>>>>>> is insufficient and cumbersome and deserves at a minimun >> >>some >> >> >> API >> >> >> >>>>>>>> methods >> >> >> >>>>>>>>>> since is an important point in how UI is stylized, and >> how >> >> >> >> controls >> >> >> >>>>>> and >> >> >> >>>>>>>>>> objects in html can be "extended" or diferenciated (Alex >> >> >> explained >> >> >> >>>>>> very >> >> >> >>>>>>>>>> well the importance of this in the typenames thread). So >> >>some >> >> >> API >> >> >> >>>>> to >> >> >> >>>>>>>> ease >> >> >> >>>>>>>>>> that is for me very Wellcome since I'm doing that work, >> >>and >> >> >>will >> >> >> >> be >> >> >> >>>>>> more >> >> >> >>>>>>>>>> users doing that work. In this point, I don't think we >> >>should >> >> >> >>>>> shield >> >> >> >>>>>> us >> >> >> >>>>>>>> in >> >> >> >>>>>>>>>> things like PAYG or if that is a bit less performant. >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> To close and avoid having much discussion to not reach to >> >> >>some >> >> >> >>>>>> valuable >> >> >> >>>>>>>>>> point: I can try to go with what we have, but makes me >> >>feel >> >> >>not >> >> >> >> so >> >> >> >>>>>> good >> >> >> >>>>>>>>>> about the continuous rejection of my proposals. As well, >> >>you >> >> >>are >> >> >> >>>>>> saying >> >> >> >>>>>>>>>> that we should wait to what users demand...but I'm an >> >>user of >> >> >> the >> >> >> >>>>> API, >> >> >> >>>>>>>> and >> >> >> >>>>>>>>>> my perception as a "zero user" seems to be not valuable. >> >> >>Since I >> >> >> >>>>> don't >> >> >> >>>>>>>> get >> >> >> >>>>>>>>>> traction on this, I'll try to continue with what we have >> >>and >> >> >> >> report >> >> >> >>>>>> back >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> 2018-03-13 9:24 GMT+01:00 Harbs <[email protected]>: >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>>> +1. >> >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>>>> On Mar 13, 2018, at 10:08 AM, Alex Harui >> >> >> >>>>> <[email protected]> >> >> >> >>>>>>>>>>> wrote: >> >> >> >>>>>>>>>>>> >> >> >> >>>>>>>>>>>> I am so sad and frustrated that we have spent so much >> >>time >> >> >>on >> >> >> >>>>>>>>>> managing a >> >> >> >>>>>>>>>>>> set of strings. I just don't think we have the people >> >> >>power >> >> >> to >> >> >> >>>>>>>>>> continue >> >> >> >>>>>>>>>>>> to seek perfection until it is truly needed by a user. >> >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>>> -- >> >> >> >>>>>>>>>> Carlos Rovira >> >> >> >>>>>>>>>> >> >> >>https://na01.safelinks.protection.outlook.com/?url= >> >> http%3A%2F%2Fabout.me% >> >> >>2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com% >> >> 7Ce137bd7a9095473c2bcc08 >> >> >>d588e95a01%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> >> 7C63656545817565873 >> >> >>7&sdata=wBMX4vjDjPJZiYA8HcTGKv43mQQbQdaRXJRS%2BM5%2BO5c% >> 3D&reserved=0 >> >> >> >>>>>>>>>> >> >> >> >>>>>>>>> >> >> >> >>>>>>>>> >> >> >> >>>>>>>>> >> >> >> >>>>>>>>> -- >> >> >> >>>>>>>>> >> >> >> >>>>>>>>> Piotr Zarzycki >> >> >> >>>>>>>>> >> >> >> >>>>>>>>> Patreon: >> >> >>*https://na01.safelinks.protection.outlook.com/?url= >> >> https%3A%2F%2Fwww.pat >> >> >>reon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com >> >> %7Ce137bd7a9095 >> >> >>473c2bcc08d588e95a01%7Cfa7b1b5a7b34438794aed2c178de >> >> cee1%7C0%7C0%7C6365654 >> >> >>58175658737&sdata=DNkm0Dce279Klqlmt%2BF7YV7% >> >> 2BiDRjzQWyG9GPG1rs2Bw%3D&rese >> >> >>rved=0 >> >> >> >>>>>>>>> >> >> >><https://na01.safelinks.protection.outlook.com/?url= >> >> https%3A%2F%2Fwww.pat >> >> >>reon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com >> >> %7Ce137bd7a9095 >> >> >>473c2bcc08d588e95a01%7Cfa7b1b5a7b34438794aed2c178de >> >> cee1%7C0%7C0%7C6365654 >> >> >>58175658737&sdata=DNkm0Dce279Klqlmt%2BF7YV7% >> >> 2BiDRjzQWyG9GPG1rs2Bw%3D&rese >> >> >>rved=0>* >> >> >> >>>>>>>>> >> >> >> >>>>>>>> >> >> >> >>>>>>> >> >> >> >>>>>>> >> >> >> >>>>>>> >> >> >> >>>>>>> -- >> >> >> >>>>>>> Carlos Rovira >> >> >> >>>>>>> >> >> >>https://na01.safelinks.protection.outlook.com/?url= >> >> http%3A%2F%2Fabout.me% >> >> >>2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com% >> >> 7Ce137bd7a9095473c2bcc08 >> >> >>d588e95a01%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> >> 7C63656545817565873 >> >> >>7&sdata=wBMX4vjDjPJZiYA8HcTGKv43mQQbQdaRXJRS%2BM5%2BO5c% >> 3D&reserved=0 >> >> >> >>>>>> >> >> >> >>>>>> >> >> >> >>>>> >> >> >> >>>> >> >> >> >>>> >> >> >> >>>> >> >> >> >>>> -- >> >> >> >>>> Carlos Rovira >> >> >> >>>> >> >> >>https://na01.safelinks.protection.outlook.com/?url= >> >> http%3A%2F%2Fabout.me% >> >> >>2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com% >> >> 7Ce137bd7a9095473c2bcc08 >> >> >>d588e95a01%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> >> 7C63656545817565873 >> >> >>7&sdata=wBMX4vjDjPJZiYA8HcTGKv43mQQbQdaRXJRS%2BM5%2BO5c% >> 3D&reserved=0 >> >> >> >>>> >> >> >> >>>> >> >> >> >>> >> >> >> >>> >> >> >> >>> -- >> >> >> >>> Carlos Rovira >> >> >> >>> >> >> >>https://na01.safelinks.protection.outlook.com/?url= >> >> http%3A%2F%2Fabout.me% >> >> >>2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com% >> >> 7Ce137bd7a9095473c2bcc08 >> >> >>d588e95a01%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> >> 7C63656545817565873 >> >> >>7&sdata=wBMX4vjDjPJZiYA8HcTGKv43mQQbQdaRXJRS%2BM5%2BO5c% >> 3D&reserved=0 >> >> >> >> >> >> >> >> >> >> >> > >> >> >> > >> >> >> > -- >> >> >> > Carlos Rovira >> >> >> > >> >> >>https://na01.safelinks.protection.outlook.com/?url= >> >> http%3A%2F%2Fabout.me% >> >> >>2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com% >> >> 7Ce137bd7a9095473c2bcc08 >> >> >>d588e95a01%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> >> 7C63656545817565873 >> >> >>7&sdata=wBMX4vjDjPJZiYA8HcTGKv43mQQbQdaRXJRS%2BM5%2BO5c% >> 3D&reserved=0 >> >> >> >> >> >> >> >> > >> >> > >> >> >-- >> >> >Carlos Rovira >> >> >https://na01.safelinks.protection.outlook.com/?url= >> >> http%3A%2F%2Fabout.me%2 >> >> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com% >> >> 7Ce137bd7a9095473c2bcc08d5 >> >> >88e95a01%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >> >> 7C636565458175658737&s >> >> >data=wBMX4vjDjPJZiYA8HcTGKv43mQQbQdaRXJRS%2BM5%2BO5c%3D&reserved=0 >> >> >> >> >> > >> > >> >-- >> >Carlos Rovira >> >https://na01.safelinks.protection.outlook.com/?url=http%3A% >> 2F%2Fabout.me%2 >> >Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cce849efb1 >> cf84ab780ae08d5 >> >8905f78a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63656 >> 5581091621628&s >> >data=5bptuicHsczeSJ84dMNT8%2FFZG42Ai732OmY8QCEbgXo%3D&reserved=0 >> >> > > > -- > Carlos Rovira > http://about.me/carlosrovira > > -- Carlos Rovira http://about.me/carlosrovira
