From julien at julienviet.com Mon Jun 10 11:19:33 2013 Content-Type: multipart/mixed; boundary="===============0608547355792578717==" MIME-Version: 1.0 From: Julien Viet To: gatein-dev at lists.jboss.org Subject: Re: [gatein-dev] GateIn 4.0.0 cont Date: Mon, 10 Jun 2013 17:19:28 +0200 Message-ID: <0C7B1A68-C0E2-4018-BE37-DCB63CF097FA@julienviet.com> In-Reply-To: E05311A3-0553-492E-97AC-3110095BC22C@redhat.com --===============0608547355792578717== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable it would be much better! I just hacked static bootstrap to have something nice to show. perhaps you can give a try to integrate it in 4.0 ? On Jun 10, 2013, at 4:45 PM, Gabriel Cardoso wrote: > Will the new welcome page be used in GateIn 4? = > = > http://statichtml-theute.rhcloud.com/cardosogabriel/gatein-client/index.h= tml > = > Thanks > = > On Jun 7, 2013, at 5:56 PM, Julien Viet wrote: > = >> Frederic Drouet and Arnaud Heritier have just created an acceptance depl= oyment of GateIn 4.0 >> = >> http://gatein-4.0.0-snapshot.acceptance4.exoplatform.org/portal/ >> = >> it should help you to track progress :-) >> = >> thanks guys! >> = >> On Jun 7, 2013, at 1:18 PM, Julien Viet wrote: >> = >>> there are new interesting changes now in 4.0. >>> = >>> The portal is now performing parallel page rendering (instead of sequen= tial) which provides significant improvements in situations where portlets= have a long rendering time. There is a sample demo for this in the current= build with three portlets doing a Thread.sleep(1500) during their executio= n: >>> = >>> >>> The other interesting changes is that now portlet windows are named in = a layout in order to identify them. Previously it was using a generated UUI= D which has two severe problems : being long and also not stable (i.e if tw= o persons start the same portal, the URL will not be interoperable since th= ey will contain such UUIDs). So now we have URL like : = >>> = >>> http://localhost:8080/portal/demo1?javax.portlet.p.p1=3Djuu:daa&foo=3Db= ar >>> = >>> - javax.portlet.p.p1=3Djuu:daa =3D> the portlet p1 has render param juu= :daa >>> - foo=3Dbar =3D> the public render parameter foo=3Dbar >>> = >>> the XML (gatein objects 2.0) for this page is: >>> = >>> >>> demo1 >>> Parameter Demo >>> >>> 1 >>> >>> p1 >>> samples >>> ParametersPortlet >>> >>> >>> p2 >>> samples >>> ParametersPortlet >>> >>> >>> >>> = >>> The info page has been updated : https://github.com/gatein/gatein-porta= l/tree/4.0.0/portal >>> = >>> If you want to give a try you can get the current build from my dropbox= : https://dl.dropboxusercontent.com/u/4392533/portal.web-4.0.0-M2-war-exec= .jar >>> = >>> Julien >>> = >>> = >>> On May 31, 2013, at 3:45 PM, Julien Viet wrot= e: >>> = >>>> Hi all, >>>> = >>>> I've been pursuing the work started a couple of months ago on GateIn 4= .0.0 during the last weeks and have reached a first milestone, there are t= he noticeable things: >>>> = >>>> 1/ most of the work has been done on the portlet/page controller with = a "stateless" integration of the portlet container concerning the portlet r= ender parameters. >>>> 2/ the current packaging embeds everything in a single war file for si= mplifying deployment, the only shared lib is "portlet.jar" >>>> 3/ the persistence uses the in memory version of the MOP that was done= a couple of month ago which is perfect for a demo (no file created and ver= y fast startup). >>>> 4/ the new layout has been sketched by keeping the same structure we h= ave in persistence and reusing containers for the various zones of the page= . = >>>> = >>>> I described here the technical aspects and the current status : https:= //github.com/gatein/gatein-portal/tree/4.0.0/portal >>>> = >>>> One important aspect of this work is about the quality of the work, th= e in memory persistence and the single war packaging allow the writing of p= ortal unit tests (using Arquillian) and the most of the implemented feature= s are tested, in particular the portlet container integration. >>>> = >>>> To conclude: I've been able to come up with a sample packaging that sh= ows the parameter in action with a portlet showing the interaction of the r= ender parameters on a page, you can download it here : https://www.dropbox.= com/s/1x16nnyc7w5610g/portal.web-4.0.0-SNAPSHOT-war-exec.jar >>>> = >>>> It is an executable jar based on Tomcat, you can run it with "java -ja= r" and it should work (sometimes it throws exceptions for some reason). >>>> = >>>> I hope this effort should continue in several areas >>>> = >>>> - finish the portlet container integration by supporting events >>>> - provide a better implementation for layout >>>> - implement the official public API >>>> = >>>> Julien >>>> = >>>> ps: I tried hard to make an AS7 packaging but was not able to come up = to something that works. If someone wants to help I can push to his reposit= ory the in progress work for AS7 to continue it. I would be glad to have a = working package and tag a milestone. >>> = >> = >> _______________________________________________ >> gatein-dev mailing list >> gatein-dev(a)lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/gatein-dev > = > _______________________________________________ > gatein-dev mailing list > gatein-dev(a)lists.jboss.org > https://lists.jboss.org/mailman/listinfo/gatein-dev --===============0608547355792578717== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWwgY2hhcnNldD11cy1hc2NpaSI+PC9oZWFkPjxib2R5IHN0eWxlPSJ3b3JkLXdyYXA6IGJy ZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBh ZnRlci13aGl0ZS1zcGFjZTsgIj5pdCB3b3VsZCBiZSBtdWNoIGJldHRlciE8ZGl2Pjxicj48L2Rp dj48ZGl2PkkganVzdCBoYWNrZWQgc3RhdGljIGJvb3RzdHJhcCB0byBoYXZlIHNvbWV0aGluZyBu aWNlIHRvIHNob3cuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5wZXJoYXBzIHlvdSBjYW4gZ2l2 ZSBhIHRyeSB0byBpbnRlZ3JhdGUgaXQgaW4gNC4wID88YnI+PGRpdj48YnI+PGRpdj48ZGl2Pk9u IEp1biAxMCwgMjAxMywgYXQgNDo0NSBQTSwgR2FicmllbCBDYXJkb3NvICZsdDs8YSBocmVmPSJt YWlsdG86Z2NhcmRvc29AcmVkaGF0LmNvbSI+Z2NhcmRvc29AcmVkaGF0LmNvbTwvYT4mZ3Q7IHdy b3RlOjwvZGl2PjxiciBjbGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+PGJsb2NrcXVv dGUgdHlwZT0iY2l0ZSI+PGRpdiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0 LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7 ICI+PGRpdj5XaWxsIHRoZSBuZXcgd2VsY29tZSBwYWdlIGJlIHVzZWQgaW4gR2F0ZUluIDQ/Jm5i c3A7PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48YSBocmVmPSJodHRwOi8vc3RhdGljaHRtbC10 aGV1dGUucmhjbG91ZC5jb20vY2FyZG9zb2dhYnJpZWwvZ2F0ZWluLWNsaWVudC9pbmRleC5odG1s Ij5odHRwOi8vc3RhdGljaHRtbC10aGV1dGUucmhjbG91ZC5jb20vY2FyZG9zb2dhYnJpZWwvZ2F0 ZWluLWNsaWVudC9pbmRleC5odG1sPC9hPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+VGhhbmtz PC9kaXY+PGJyPjxkaXY+PGRpdj5PbiBKdW4gNywgMjAxMywgYXQgNTo1NiBQTSwgSnVsaWVuIFZp ZXQgd3JvdGU6PC9kaXY+PGJyIGNsYXNzPSJBcHBsZS1pbnRlcmNoYW5nZS1uZXdsaW5lIj48Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIj48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRl bnQ9InRleHQvaHRtbCBjaGFyc2V0PXVzLWFzY2lpIj48ZGl2IHN0eWxlPSJ3b3JkLXdyYXA6IGJy ZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBh ZnRlci13aGl0ZS1zcGFjZTsgIj5GcmVkZXJpYyBEcm91ZXQgYW5kIEFybmF1ZCBIZXJpdGllciBo YXZlIGp1c3QgY3JlYXRlZCBhbiBhY2NlcHRhbmNlIGRlcGxveW1lbnQgb2YgR2F0ZUluIDQuMDxk aXY+PGJyPjwvZGl2PjxkaXY+PGEgaHJlZj0iaHR0cDovL2dhdGVpbi00LjAuMC1zbmFwc2hvdC5h Y2NlcHRhbmNlNC5leG9wbGF0Zm9ybS5vcmcvcG9ydGFsLyI+aHR0cDovL2dhdGVpbi00LjAuMC1z bmFwc2hvdC5hY2NlcHRhbmNlNC5leG9wbGF0Zm9ybS5vcmcvcG9ydGFsLzwvYT48L2Rpdj48ZGl2 Pjxicj48L2Rpdj48ZGl2Pml0IHNob3VsZCBoZWxwIHlvdSB0byB0cmFjayBwcm9ncmVzcyA6LSk8 L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PnRoYW5rcyBndXlzITxicj48ZGl2Pjxicj48ZGl2Pjxk aXY+T24gSnVuIDcsIDIwMTMsIGF0IDE6MTggUE0sIEp1bGllbiBWaWV0ICZsdDs8YSBocmVmPSJt YWlsdG86anVsaWVuQGp1bGllbnZpZXQuY29tIj5qdWxpZW5AanVsaWVudmlldC5jb208L2E+Jmd0 OyB3cm90ZTo8L2Rpdj48YnIgY2xhc3M9IkFwcGxlLWludGVyY2hhbmdlLW5ld2xpbmUiPjxibG9j a3F1b3RlIHR5cGU9ImNpdGUiPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu dD0idGV4dC9odG1sIGNoYXJzZXQ9dXMtYXNjaWkiPjxkaXYgc3R5bGU9IndvcmQtd3JhcDogYnJl YWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFm dGVyLXdoaXRlLXNwYWNlOyAiPjxkaXY+dGhlcmUgYXJlIG5ldyBpbnRlcmVzdGluZyBjaGFuZ2Vz IG5vdyBpbiA0LjAuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGUgcG9ydGFsIGlzIG5vdyBw ZXJmb3JtaW5nIHBhcmFsbGVsIHBhZ2UgcmVuZGVyaW5nIChpbnN0ZWFkIG9mIHNlcXVlbnRpYWwp ICZuYnNwO3doaWNoIHByb3ZpZGVzIHNpZ25pZmljYW50IGltcHJvdmVtZW50cyBpbiBzaXR1YXRp b25zIHdoZXJlIHBvcnRsZXRzIGhhdmUgYSBsb25nIHJlbmRlcmluZyB0aW1lLiZuYnNwO1RoZXJl IGlzIGEgc2FtcGxlIGRlbW8gZm9yIHRoaXMgaW4gdGhlIGN1cnJlbnQgYnVpbGQgd2l0aCB0aHJl ZSBwb3J0bGV0cyBkb2luZyBhIFRocmVhZC5zbGVlcCgxNTAwKSBkdXJpbmcgdGhlaXIgZXhlY3V0 aW9uOjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PHNwYW4+Jmx0O1NjcmVlbiBTaG90IDIwMTMt MDYtMDcgYXQgMS4xMi4yNiBQTS5wbmcmZ3Q7PC9zcGFuPjwvZGl2PjxkaXY+VGhlIG90aGVyIGlu dGVyZXN0aW5nIGNoYW5nZXMgaXMgdGhhdCBub3cgcG9ydGxldCB3aW5kb3dzIGFyZSBuYW1lZCBp biBhIGxheW91dCBpbiBvcmRlciB0byBpZGVudGlmeSB0aGVtLiBQcmV2aW91c2x5IGl0IHdhcyB1 c2luZyBhIGdlbmVyYXRlZCBVVUlEIHdoaWNoIGhhcyB0d28gc2V2ZXJlIHByb2JsZW1zIDogYmVp bmcgbG9uZyBhbmQgYWxzbyBub3Qgc3RhYmxlIChpLmUgaWYgdHdvIHBlcnNvbnMgc3RhcnQgdGhl IHNhbWUgcG9ydGFsLCB0aGUgVVJMIHdpbGwgbm90IGJlIGludGVyb3BlcmFibGUgc2luY2UgdGhl eSB3aWxsIGNvbnRhaW4gc3VjaCBVVUlEcykuIFNvIG5vdyB3ZSBoYXZlIFVSTCBsaWtlIDombmJz cDs8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4 MC9wb3J0YWwvZGVtbzE/amF2YXgucG9ydGxldC5wLnAxPWp1dTpkYWEmYW1wO2Zvbz1iYXIiPmh0 dHA6Ly9sb2NhbGhvc3Q6ODA4MC9wb3J0YWwvZGVtbzE/amF2YXgucG9ydGxldC5wLnAxPWp1dTpk YWEmYW1wO2Zvbz1iYXI8L2E+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj4tIGphdmF4LnBvcnRs ZXQucC5wMT1qdXU6ZGFhID0mZ3Q7IHRoZSBwb3J0bGV0IHAxIGhhcyByZW5kZXIgcGFyYW0ganV1 OmRhYTwvZGl2PjxkaXY+LSBmb289YmFyID0mZ3Q7IHRoZSBwdWJsaWMgcmVuZGVyIHBhcmFtZXRl ciBmb289YmFyPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj50aGUgWE1MIChnYXRlaW4gb2JqZWN0 cyAyLjApIGZvciB0aGlzIHBhZ2UgaXM6PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj48ZGl2PiZu YnNwOyAmbHQ7cGFnZSZndDs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJmx0O25hbWUmZ3Q7ZGVt bzEmbHQ7L25hbWUmZ3Q7PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZsdDt0aXRsZSZndDtQYXJh bWV0ZXIgRGVtbyZsdDsvdGl0bGUmZ3Q7PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZsdDt6b25l Jmd0OzwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJmx0O2lkJmd0OzEmbHQ7L2lkJmd0 OzwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJmx0O3BvcnRsZXQmZ3Q7PC9kaXY+PGRp dj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJmx0O25hbWUmZ3Q7cDEmbHQ7L25hbWUmZ3Q7 PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJmx0O2FwcGxpY2F0aW9uLXJl ZiZndDtzYW1wbGVzJmx0Oy9hcHBsaWNhdGlvbi1yZWYmZ3Q7PC9kaXY+PGRpdj4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJmx0O3BvcnRsZXQtcmVmJmd0O1BhcmFtZXRlcnNQb3J0bGV0Jmx0 Oy9wb3J0bGV0LXJlZiZndDs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZsdDsvcG9y dGxldCZndDs8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZsdDtwb3J0bGV0Jmd0Ozwv ZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZsdDtuYW1lJmd0O3AyJmx0Oy9u YW1lJmd0OzwvZGl2PjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZsdDthcHBsaWNh dGlvbi1yZWYmZ3Q7c2FtcGxlcyZsdDsvYXBwbGljYXRpb24tcmVmJmd0OzwvZGl2PjxkaXY+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZsdDtwb3J0bGV0LXJlZiZndDtQYXJhbWV0ZXJzUG9y dGxldCZsdDsvcG9ydGxldC1yZWYmZ3Q7PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bHQ7L3BvcnRsZXQmZ3Q7PC9kaXY+PGRpdj4mbmJzcDsgJm5ic3A7ICZsdDsvem9uZSZndDs8L2Rp dj48ZGl2PiZuYnNwOyAmbHQ7L3BhZ2UmZ3Q7PC9kaXY+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRp dj5UaGUgaW5mbyBwYWdlIGhhcyBiZWVuIHVwZGF0ZWQgOiZuYnNwOzxhIGhyZWY9Imh0dHBzOi8v Z2l0aHViLmNvbS9nYXRlaW4vZ2F0ZWluLXBvcnRhbC90cmVlLzQuMC4wL3BvcnRhbCI+aHR0cHM6 Ly9naXRodWIuY29tL2dhdGVpbi9nYXRlaW4tcG9ydGFsL3RyZWUvNC4wLjAvcG9ydGFsPC9hPjwv ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SWYgeW91IHdhbnQgdG8gZ2l2ZSBhIHRyeSB5b3UgY2Fu IGdldCB0aGUgY3VycmVudCBidWlsZCBmcm9tIG15IGRyb3Bib3ggOiZuYnNwOzxhIGhyZWY9Imh0 dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS91LzQzOTI1MzMvcG9ydGFsLndlYi00LjAu MC1NMi13YXItZXhlYy5qYXIiPmh0dHBzOi8vZGwuZHJvcGJveHVzZXJjb250ZW50LmNvbS91LzQz OTI1MzMvcG9ydGFsLndlYi00LjAuMC1NMi13YXItZXhlYy5qYXI8L2E+PC9kaXY+PGRpdj48YnI+ PC9kaXY+PGRpdj5KdWxpZW48L2Rpdj48ZGl2Pjxicj48L2Rpdj48YnI+PGRpdj48ZGl2Pk9uIE1h eSAzMSwgMjAxMywgYXQgMzo0NSBQTSwgSnVsaWVuIFZpZXQgJmx0OzxhIGhyZWY9Im1haWx0bzpq dWxpZW5AanVsaWVudmlldC5jb20iPmp1bGllbkBqdWxpZW52aWV0LmNvbTwvYT4mZ3Q7IHdyb3Rl OjwvZGl2PjxiciBjbGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+PGJsb2NrcXVvdGUg dHlwZT0iY2l0ZSI+SGkgYWxsLDxicj48YnI+SSd2ZSBiZWVuIHB1cnN1aW5nIHRoZSB3b3JrIHN0 YXJ0ZWQgYSBjb3VwbGUgb2YgbW9udGhzIGFnbyBvbiBHYXRlSW4gNC4wLjAgZHVyaW5nIHRoZSBs YXN0IHdlZWtzICZuYnNwO2FuZCBoYXZlIHJlYWNoZWQgYSBmaXJzdCBtaWxlc3RvbmUsIHRoZXJl IGFyZSB0aGUgbm90aWNlYWJsZSB0aGluZ3M6PGJyPjxicj4xLyBtb3N0IG9mIHRoZSB3b3JrIGhh cyBiZWVuIGRvbmUgb24gdGhlIHBvcnRsZXQvcGFnZSBjb250cm9sbGVyIHdpdGggYSAic3RhdGVs ZXNzIiBpbnRlZ3JhdGlvbiBvZiB0aGUgcG9ydGxldCBjb250YWluZXIgY29uY2VybmluZyB0aGUg cG9ydGxldCByZW5kZXIgcGFyYW1ldGVycy48YnI+Mi8gdGhlIGN1cnJlbnQgcGFja2FnaW5nIGVt YmVkcyBldmVyeXRoaW5nIGluIGEgc2luZ2xlIHdhciBmaWxlIGZvciBzaW1wbGlmeWluZyBkZXBs b3ltZW50LCB0aGUgb25seSBzaGFyZWQgbGliIGlzICJwb3J0bGV0LmphciI8YnI+My8gdGhlIHBl cnNpc3RlbmNlIHVzZXMgdGhlIGluIG1lbW9yeSB2ZXJzaW9uIG9mIHRoZSBNT1AgdGhhdCB3YXMg ZG9uZSBhIGNvdXBsZSBvZiBtb250aCBhZ28gd2hpY2ggaXMgcGVyZmVjdCBmb3IgYSBkZW1vIChu byBmaWxlIGNyZWF0ZWQgYW5kIHZlcnkgZmFzdCBzdGFydHVwKS48YnI+NC8gdGhlIG5ldyBsYXlv dXQgaGFzIGJlZW4gc2tldGNoZWQgYnkga2VlcGluZyB0aGUgc2FtZSBzdHJ1Y3R1cmUgd2UgaGF2 ZSBpbiBwZXJzaXN0ZW5jZSBhbmQgcmV1c2luZyBjb250YWluZXJzIGZvciB0aGUgdmFyaW91cyB6 b25lcyBvZiB0aGUgcGFnZS4gPGJyPjxicj5JIGRlc2NyaWJlZCBoZXJlIHRoZSB0ZWNobmljYWwg YXNwZWN0cyBhbmQgdGhlIGN1cnJlbnQgc3RhdHVzIDogPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIu Y29tL2dhdGVpbi9nYXRlaW4tcG9ydGFsL3RyZWUvNC4wLjAvcG9ydGFsIj5odHRwczovL2dpdGh1 Yi5jb20vZ2F0ZWluL2dhdGVpbi1wb3J0YWwvdHJlZS80LjAuMC9wb3J0YWw8L2E+PGJyPjxicj5P bmUgaW1wb3J0YW50IGFzcGVjdCBvZiB0aGlzIHdvcmsgaXMgYWJvdXQgdGhlIHF1YWxpdHkgb2Yg dGhlIHdvcmssIHRoZSBpbiBtZW1vcnkgcGVyc2lzdGVuY2UgYW5kIHRoZSBzaW5nbGUgd2FyIHBh Y2thZ2luZyBhbGxvdyB0aGUgd3JpdGluZyBvZiBwb3J0YWwgdW5pdCB0ZXN0cyAodXNpbmcgQXJx dWlsbGlhbikgYW5kIHRoZSBtb3N0IG9mIHRoZSBpbXBsZW1lbnRlZCBmZWF0dXJlcyBhcmUgdGVz dGVkLCBpbiBwYXJ0aWN1bGFyIHRoZSBwb3J0bGV0IGNvbnRhaW5lciBpbnRlZ3JhdGlvbi48YnI+ PGJyPlRvIGNvbmNsdWRlOiBJJ3ZlIGJlZW4gYWJsZSB0byBjb21lIHVwIHdpdGggYSBzYW1wbGUg cGFja2FnaW5nIHRoYXQgc2hvd3MgdGhlIHBhcmFtZXRlciBpbiBhY3Rpb24gd2l0aCBhIHBvcnRs ZXQgc2hvd2luZyB0aGUgaW50ZXJhY3Rpb24gb2YgdGhlIHJlbmRlciBwYXJhbWV0ZXJzIG9uIGEg cGFnZSwgeW91IGNhbiBkb3dubG9hZCBpdCBoZXJlIDogPGEgaHJlZj0iaHR0cHM6Ly93d3cuZHJv cGJveC5jb20vcy8xeDE2bm55Yzd3NTYxMGcvcG9ydGFsLndlYi00LjAuMC1TTkFQU0hPVC13YXIt ZXhlYy5qYXIiPmh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3MvMXgxNm5ueWM3dzU2MTBnL3BvcnRh bC53ZWItNC4wLjAtU05BUFNIT1Qtd2FyLWV4ZWMuamFyPC9hPjxicj48YnI+SXQgaXMgYW4gZXhl Y3V0YWJsZSBqYXIgYmFzZWQgb24gVG9tY2F0LCB5b3UgY2FuIHJ1biBpdCB3aXRoICJqYXZhIC1q YXIiIGFuZCBpdCBzaG91bGQgd29yayAoc29tZXRpbWVzIGl0IHRocm93cyBleGNlcHRpb25zIGZv ciBzb21lIHJlYXNvbikuPGJyPjxicj5JIGhvcGUgdGhpcyBlZmZvcnQgc2hvdWxkIGNvbnRpbnVl IGluIHNldmVyYWwgYXJlYXM8YnI+PGJyPi0gZmluaXNoIHRoZSBwb3J0bGV0IGNvbnRhaW5lciBp bnRlZ3JhdGlvbiBieSBzdXBwb3J0aW5nIGV2ZW50czxicj4tIHByb3ZpZGUgYSBiZXR0ZXIgaW1w bGVtZW50YXRpb24gZm9yIGxheW91dDxicj4tIGltcGxlbWVudCB0aGUgb2ZmaWNpYWwgcHVibGlj IEFQSTxicj48YnI+SnVsaWVuPGJyPjxicj5wczogSSB0cmllZCBoYXJkIHRvIG1ha2UgYW4gQVM3 IHBhY2thZ2luZyBidXQgd2FzIG5vdCBhYmxlIHRvIGNvbWUgdXAgdG8gc29tZXRoaW5nIHRoYXQg d29ya3MuIElmIHNvbWVvbmUgd2FudHMgdG8gaGVscCBJIGNhbiBwdXNoIHRvIGhpcyByZXBvc2l0 b3J5IHRoZSBpbiBwcm9ncmVzcyB3b3JrIGZvciBBUzcgdG8gY29udGludWUgaXQuIEkgd291bGQg YmUgZ2xhZCB0byBoYXZlIGEgd29ya2luZyBwYWNrYWdlIGFuZCB0YWcgYSBtaWxlc3RvbmUuPC9i bG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwvZGl2Pjwv ZGl2PjwvZGl2Pl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f PGJyPmdhdGVpbi1kZXYgbWFpbGluZyBsaXN0PGJyPjxhIGhyZWY9Im1haWx0bzpnYXRlaW4tZGV2 QGxpc3RzLmpib3NzLm9yZyI+Z2F0ZWluLWRldkBsaXN0cy5qYm9zcy5vcmc8L2E+PGJyPjxhIGhy ZWY9Imh0dHBzOi8vbGlzdHMuamJvc3Mub3JnL21haWxtYW4vbGlzdGluZm8vZ2F0ZWluLWRldiI+ aHR0cHM6Ly9saXN0cy5qYm9zcy5vcmcvbWFpbG1hbi9saXN0aW5mby9nYXRlaW4tZGV2PC9hPjwv YmxvY2txdW90ZT48L2Rpdj48YnI+PC9kaXY+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX188YnI+Z2F0ZWluLWRldiBtYWlsaW5nIGxpc3Q8YnI+PGEgaHJlZj0i bWFpbHRvOmdhdGVpbi1kZXZAbGlzdHMuamJvc3Mub3JnIj5nYXRlaW4tZGV2QGxpc3RzLmpib3Nz Lm9yZzwvYT48YnI+aHR0cHM6Ly9saXN0cy5qYm9zcy5vcmcvbWFpbG1hbi9saXN0aW5mby9nYXRl aW4tZGV2PC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPg== --===============0608547355792578717==--