From mproctor at codehaus.org Tue Apr 1 09:09:06 2014 Content-Type: multipart/mixed; boundary="===============1487023895581758512==" MIME-Version: 1.0 From: Mark Proctor To: rules-dev at lists.jboss.org Subject: Re: [rules-dev] Possible memory leak in Drools 6.0.1 Date: Tue, 01 Apr 2014 14:08:51 +0100 Message-ID: In-Reply-To: 40448CEC-3684-4BD9-91B0-66A36F99B81C@codehaus.org --===============1487023895581758512== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable any news? Mark On 30 Mar 2014, at 13:38, Mark Proctor wrote: > = > On 30 Mar 2014, at 13:26, kellyajp wrote: > = >> I'll get that to you on Monday = >> = >> On 30 Mar 2014, at 12:59, "Mark Proctor [via Drools]" <[hidden email]> w= rote: >> = >>> Are you able to isolate what the FH=E2=80=99s are referencing, > Sorry that should be RT, not FH. RT =3D=3D RightTuple, FH =3D=3D FactHand= le. >>> that might give us an idea of where to look. If you look RightTuple=E2= =80=99s they will have a =E2=80=98sink' reference (network node) and that s= ink will have an =E2=80=98associates=E2=80=99 map. That map is the rules th= at node is part of. You can use this to identify the offending rule(s), and= maybe paste those rules here? >>> = >>> Mark >>> On 30 Mar 2014, at 09:03, kellyajp <[hidden email]> wrote: >>> = >>>> Thanks >>>> = >>>> I'll get someone from the team to work on this on Monday. Not sure how= easy it will be to isolate but will keep you informed. >>>> = >>>> Andy >>>> On 28 Mar 2014, at 23:52, "Mark Proctor [via Drools]" <[hidden email]> wrote: >>>> = >>>>> Can you get us a unit test demonstrating this, and we=E2=80=99ll look= into it as a priority. = >>>>> = >>>>> Mark = >>>>> On 28 Mar 2014, at 15:40, kellyajp <[hidden email]> wrote: = >>>>> = >>>>> > We have upgraded from Drools 5 -> Drools 6.01 and when repeating th= e = >>>>> > processing in each environment we have very different object counts= that is = >>>>> > causing memory to run out on Drools 6: = >>>>> > = >>>>> > Below is an extract from a heap dump = >>>>> > = >>>>> > In Drools 6 the main objects in the heap are = >>>>> > 1: 4378006 700480960 org.drools.core.reteoo.RightTuple = >>>>> > = >>>>> > Where as in Drools 5 there are way less objects = >>>>> > 92: 19022 1826112 org.drools.reteoo.RightTuple = >>>>> > = >>>>> > Has anyone else had any experience of this issue? = >>>>> > = >>>>> > Thanks = >>>>> > = >>>>> > = >>>>> > = >>>>> > -- = >>>>> > View this message in context: http://drools.46999.n3.nabble.com/Pos= sible-memory-leak-in-Drools-6-0-1-tp4029010.html >>>>> > Sent from the Drools: Developer (committer) mailing list mailing li= st archive at Nabble.com. = >>>>> > _______________________________________________ = >>>>> > rules-dev mailing list = >>>>> > [hidden= email] = >>>>> > https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> _______________________________________________ = >>>>> rules-dev mailing list = >>>>> [hidden e= mail] = >>>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>>>> = >>>>> = >>>>> If you reply to this email, your message will be added to the discuss= ion below: >>>>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-= 1-tp4029010p4029018.html >>>>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>>>> NAML >>>> = >>>> View this message in context: Re: Possible memory leak in Drools 6.0.1 >>>> Sent from the Drools: Developer (committer) mailing list mailing list = archive at Nabble.com. >>>> _______________________________________________ >>>> rules-dev mailing list >>>> [hidden email] >>>> https://lists.jboss.org/mailman/listinfo/rules-dev >>> = >>> = >>> _______________________________________________ = >>> rules-dev mailing list = >>> [hidden email] = >>> https://lists.jboss.org/mailman/listinfo/rules-dev = >>> = >>> If you reply to this email, your message will be added to the discussio= n below: >>> http://drools.46999.n3.nabble.com/Possible-memory-leak-in-Drools-6-0-1-= tp4029010p4029026.html >>> To unsubscribe from Possible memory leak in Drools 6.0.1, click here. >>> NAML >> = >> View this message in context: Re: Possible memory leak in Drools 6.0.1 >> Sent from the Drools: Developer (committer) mailing list mailing list ar= chive at Nabble.com. >> _______________________________________________ >> rules-dev mailing list >> rules-dev(a)lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-dev > = --===============1487023895581758512== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWwgY2hhcnNldD13aW5kb3dzLTEyNTIiPjwvaGVhZD48Ym9keSBzdHlsZT0id29yZC13cmFw OiBicmVhay13b3JkOyAtd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7IC13ZWJraXQtbGluZS1icmVh azogYWZ0ZXItd2hpdGUtc3BhY2U7Ij5hbnkgbmV3cz88ZGl2Pjxicj48L2Rpdj48ZGl2Pk1hcms8 YnI+PGRpdiBzdHlsZT0iIj48ZGl2Pk9uIDMwIE1hciAyMDE0LCBhdCAxMzozOCwgTWFyayBQcm9j dG9yICZsdDs8YSBocmVmPSJtYWlsdG86bXByb2N0b3JAY29kZWhhdXMub3JnIj5tcHJvY3RvckBj b2RlaGF1cy5vcmc8L2E+Jmd0OyB3cm90ZTo8L2Rpdj48YnIgY2xhc3M9IkFwcGxlLWludGVyY2hh bmdlLW5ld2xpbmUiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiPjxtZXRhIGh0dHAtZXF1aXY9IkNv bnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIGNoYXJzZXQ9d2luZG93cy0xMjUyIj48ZGl2 IHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsg LXdlYmtpdC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiPjxicj48ZGl2PjxkaXY+T24g MzAgTWFyIDIwMTQsIGF0IDEzOjI2LCBrZWxseWFqcCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmtlbGx5 YWpwQHlhaG9vLmNvLnVrIj5rZWxseWFqcEB5YWhvby5jby51azwvYT4mZ3Q7IHdyb3RlOjwvZGl2 PjxiciBjbGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+PGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+PG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7 IGNoYXJzZXQ9dXRmLTgiPjxkaXY+SSdsbCBnZXQgdGhhdCB0byB5b3Ugb24gTW9uZGF5Jm5ic3A7 PC9kaXY+PGRpdj48YnI+T24gMzAgTWFyIDIwMTQsIGF0IDEyOjU5LCAiTWFyayBQcm9jdG9yIFt2 aWEgRHJvb2xzXSIgJmx0OzxhIGhyZWY9IngtbXNnOi8vMTMzL3VzZXIvU2VuZEVtYWlsLmp0cD90 eXBlPW5vZGUmYW1wO25vZGU9NDAyOTAyNyZhbXA7aT0wIiB0YXJnZXQ9Il90b3AiIHJlbD0ibm9m b2xsb3ciIGxpbms9ImV4dGVybmFsIj5baGlkZGVuIGVtYWlsXTwvYT4mZ3Q7IHdyb3RlOjxicj48 YnI+PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjJweCBzb2xpZCAjQ0NDQ0ND O3BhZGRpbmc6MCAxZW0iIHR5cGU9ImNpdGUiPgoKCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQt VHlwZSIgY29udGVudD0idGV4dC9odG1sIGNoYXJzZXQ9d2luZG93cy0xMjUyIj5BcmUgeW91IGFi bGUgdG8gaXNvbGF0ZSB3aGF0IHRoZSBGSJJzIGFyZSByZWZlcmVuY2luZywgPC9ibG9ja3F1b3Rl PjwvYmxvY2txdW90ZT5Tb3JyeSB0aGF0IHNob3VsZCBiZSBSVCwgbm90IEZILiBSVCA9PSBSaWdo dFR1cGxlLCBGSCA9PSBGYWN0SGFuZGxlLjxicj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIj48Ymxv Y2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICNDQ0NDQ0M7cGFkZGluZzowIDFl bSIgdHlwZT0iY2l0ZSI+dGhhdCBtaWdodCBnaXZlIHVzIGFuIGlkZWEgb2Ygd2hlcmUgdG8gbG9v ay4gSWYgeW91IGxvb2sgUmlnaHRUdXBsZZJzIHRoZXkgd2lsbCBoYXZlIGEgkXNpbmsnIHJlZmVy ZW5jZSAobmV0d29yayBub2RlKSBhbmQgdGhhdCBzaW5rIHdpbGwgaGF2ZSBhbiCRYXNzb2NpYXRl c5IgbWFwLiBUaGF0IG1hcCBpcyB0aGUgcnVsZXMgdGhhdCBub2RlIGlzIHBhcnQgb2YuIFlvdSBj YW4gdXNlIHRoaXMgdG8gaWRlbnRpZnkgdGhlIG9mZmVuZGluZyBydWxlKHMpLCBhbmQgbWF5YmUg cGFzdGUgdGhvc2UgcnVsZXMgaGVyZT88ZGl2Pjxicj48L2Rpdj48ZGl2Pk1hcms8YnI+PGRpdj48 ZGl2Pk9uIDMwIE1hciAyMDE0LCBhdCAwOTowMywga2VsbHlhanAgJmx0OzxhIGhyZWY9IngtbXNn Oi8vMTMzL3VzZXIvU2VuZEVtYWlsLmp0cD90eXBlPW5vZGUmYW1wO25vZGU9NDAyOTAyNiZhbXA7 aT0wIiB0YXJnZXQ9Il90b3AiIHJlbD0ibm9mb2xsb3ciIGxpbms9ImV4dGVybmFsIj5baGlkZGVu IGVtYWlsXTwvYT4mZ3Q7IHdyb3RlOjwvZGl2PjxiciBjbGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2Ut bmV3bGluZSI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjJweCBzb2xpZCAjQ0NDQ0ND O3BhZGRpbmc6MCAxZW0iIHR5cGU9ImNpdGUiPjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2 ZXRpY2E7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQ6 IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgbGlu ZS1oZWlnaHQ6IG5vcm1hbDsgb3JwaGFuczogYXV0bzsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQt aW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3 aWRvd3M6IGF1dG87IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRo OiAwcHg7Ij48ZGl2PlRoYW5rczwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+SSdsbCBnZXQgc29t ZW9uZSBmcm9tIHRoZSB0ZWFtIHRvIHdvcmsgb24gdGhpcyBvbiBNb25kYXkuIE5vdCBzdXJlIGhv dyBlYXN5IGl0IHdpbGwgYmUgdG8gaXNvbGF0ZSBidXQgd2lsbCBrZWVwIHlvdSBpbmZvcm1lZC48 L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PkFuZHk8YnI+T24gMjggTWFyIDIwMTQsIGF0IDIzOjUy LCAiTWFyayBQcm9jdG9yIFt2aWEgRHJvb2xzXSIgJmx0OyZsdDthIGhyZWY9IjxhIGhyZWY9Ingt bXNnOi8vMTMxL3VzZXIvU2VuZEVtYWlsLmp0cD90eXBlPW5vZGUmYW1wO2FtcDtub2RlPTQwMjkw MjUmYW1wO2FtcDtpPTAiPngtbXNnOi8vMTMxL3VzZXIvU2VuZEVtYWlsLmp0cD90eXBlPW5vZGUm YW1wO2FtcDtub2RlPTQwMjkwMjUmYW1wO2FtcDtpPTA8L2E+IiB0YXJnZXQ9Il90b3AiIHJlbD0i bm9mb2xsb3ciIGxpbms9ImV4dGVybmFsIiZndDtbaGlkZGVuIGVtYWlsXSZndDsgd3JvdGU6PGJy Pjxicj48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICNDQ0ND Q0M7cGFkZGluZzowIDFlbSIgdHlwZT0iY2l0ZSI+Q2FuIHlvdSBnZXQgdXMgYSB1bml0IHRlc3Qg ZGVtb25zdHJhdGluZyB0aGlzLCBhbmQgd2WSbGwgbG9vayBpbnRvIGl0IGFzIGEgcHJpb3JpdHku PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxicj48YnI+ TWFyazxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+ T24gMjggTWFyIDIwMTQsIGF0IDE1OjQwLCBrZWxseWFqcCAmbHQ7Jmx0O2EgaHJlZj0iPGEgaHJl Zj0ieC1tc2c6Ly8xMzEvdXNlci9TZW5kRW1haWwuanRwP3R5cGU9bm9kZSZhbXA7YW1wO25vZGU9 NDAyOTAxOCZhbXA7YW1wO2k9MCI+eC1tc2c6Ly8xMzEvdXNlci9TZW5kRW1haWwuanRwP3R5cGU9 bm9kZSZhbXA7YW1wO25vZGU9NDAyOTAxOCZhbXA7YW1wO2k9MDwvYT4iIHRhcmdldD0iX3RvcCIg cmVsPSJub2ZvbGxvdyIgbGluaz0iZXh0ZXJuYWwiJmd0O1toaWRkZW4gZW1haWxdJmd0OyB3cm90 ZTo8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPjxk aXYgY2xhc3M9InNocmlua2FibGUtcXVvdGUiPjxkaXYgY2xhc3M9InNocmlua2FibGUtcXVvdGUi PjxkaXYgY2xhc3M9InNocmlua2FibGUtcXVvdGUiPjxkaXYgY2xhc3M9InNocmlua2FibGUtcXVv dGUiPjxicj4mZ3Q7IFdlIGhhdmUgdXBncmFkZWQgZnJvbSBEcm9vbHMgNSAtJmd0OyBEcm9vbHMg Ni4wMSBhbmQgd2hlbiByZXBlYXRpbmcgdGhlPHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1z cGFjZSI+Jm5ic3A7PC9zcGFuPjxicj4mZ3Q7IHByb2Nlc3NpbmcgaW4gZWFjaCBlbnZpcm9ubWVu dCB3ZSBoYXZlIHZlcnkgZGlmZmVyZW50IG9iamVjdCBjb3VudHMgdGhhdCBpczxzcGFuIGNsYXNz PSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+Jmd0OyBjYXVzaW5nIG1l bW9yeSB0byBydW4gb3V0IG9uIERyb29scyA2OjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQt c3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+Jmd0OzxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQt c3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+Jmd0OyBCZWxvdyBpcyBhbiBleHRyYWN0IGZyb20gYSBo ZWFwIGR1bXA8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+ PGJyPiZndDs8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+ PGJyPiZndDsgSW4gRHJvb2xzIDYgdGhlIG1haW4gb2JqZWN0cyBpbiB0aGUgaGVhcCBhcmU8c3Bh biBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDsgMTog Jm5ic3A7ICZuYnNwOyAmbmJzcDsgNDM3ODAwNiAmbmJzcDsgJm5ic3A7ICZuYnNwOzcwMDQ4MDk2 MCAmbmJzcDtvcmcuZHJvb2xzLmNvcmUucmV0ZW9vLlJpZ2h0VHVwbGU8c3BhbiBjbGFzcz0iQXBw bGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDs8c3BhbiBjbGFzcz0iQXBw bGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDsgV2hlcmUgYXMgaW4gRHJv b2xzIDUgdGhlcmUgYXJlIHdheSBsZXNzIG9iamVjdHM8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVy dGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDsgOTI6ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAxOTAyMiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxODI2MTEyICZuYnNwO29y Zy5kcm9vbHMucmV0ZW9vLlJpZ2h0VHVwbGU8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNw YWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDs8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNw YWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDsgSGFzIGFueW9uZSBlbHNlIGhhZCBhbnkgZXhwZXJp ZW5jZSBvZiB0aGlzIGlzc3VlPzxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZu YnNwOzwvc3Bhbj48YnI+Jmd0OzxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZu YnNwOzwvc3Bhbj48YnI+Jmd0OyBUaGFua3M8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNw YWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDs8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNw YWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDs8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNw YWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDs8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNw YWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDsgLS08c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVk LXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyPiZndDsgVmlldyB0aGlzIG1lc3NhZ2UgaW4gY29udGV4 dDo8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJl Zj0iaHR0cDovL2Ryb29scy40Njk5OS5uMy5uYWJibGUuY29tL1Bvc3NpYmxlLW1lbW9yeS1sZWFr LWluLURyb29scy02LTAtMS10cDQwMjkwMTAuaHRtbCIgdGFyZ2V0PSJfdG9wIiByZWw9Im5vZm9s bG93IiBsaW5rPSJleHRlcm5hbCI+aHR0cDovL2Ryb29scy40Njk5OS5uMy5uYWJibGUuY29tL1Bv c3NpYmxlLW1lbW9yeS1sZWFrLWluLURyb29scy02LTAtMS10cDQwMjkwMTAuaHRtbDwvYT48YnI+ Jmd0OyBTZW50IGZyb20gdGhlIERyb29sczogRGV2ZWxvcGVyIChjb21taXR0ZXIpIG1haWxpbmcg bGlzdCBtYWlsaW5nIGxpc3QgYXJjaGl2ZSBhdDxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQt c3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwOi8vbmFiYmxlLmNvbS8iIHRhcmdldD0i X3RvcCIgcmVsPSJub2ZvbGxvdyIgbGluaz0iZXh0ZXJuYWwiPk5hYmJsZS5jb208L2E+LjxzcGFu IGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+Jmd0OyBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxzcGFuIGNsYXNzPSJB cHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+Jmd0OyBydWxlcy1kZXYgbWFp bGluZyBsaXN0PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFu Pjxicj4mZ3Q7PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFu PiZsdDthIGhyZWY9IjxhIGhyZWY9IngtbXNnOi8vMTMxL3VzZXIvU2VuZEVtYWlsLmp0cD90eXBl PW5vZGUmYW1wO2FtcDtub2RlPTQwMjkwMTgmYW1wO2FtcDtpPTEiPngtbXNnOi8vMTMxL3VzZXIv U2VuZEVtYWlsLmp0cD90eXBlPW5vZGUmYW1wO2FtcDtub2RlPTQwMjkwMTgmYW1wO2FtcDtpPTE8 L2E+IiB0YXJnZXQ9Il90b3AiIHJlbD0ibm9mb2xsb3ciIGxpbms9ImV4dGVybmFsIiZndDtbaGlk ZGVuIGVtYWlsXTxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bh bj48YnI+Jmd0OzxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bh bj48YSBocmVmPSJodHRwczovL2xpc3RzLmpib3NzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3J1bGVz LWRldiIgdGFyZ2V0PSJfdG9wIiByZWw9Im5vZm9sbG93IiBsaW5rPSJleHRlcm5hbCI+aHR0cHM6 Ly9saXN0cy5qYm9zcy5vcmcvbWFpbG1hbi9saXN0aW5mby9ydWxlcy1kZXY8L2E+PC9kaXY+PC9k aXY+PC9kaXY+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188 c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PC9kaXY+cnVs ZXMtZGV2IG1haWxpbmcgbGlzdDxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZu YnNwOzwvc3Bhbj48YnI+Jmx0O2EgaHJlZj0iPGEgaHJlZj0ieC1tc2c6Ly8xMzEvdXNlci9TZW5k RW1haWwuanRwP3R5cGU9bm9kZSZhbXA7YW1wO25vZGU9NDAyOTAxOCZhbXA7YW1wO2k9MiI+eC1t c2c6Ly8xMzEvdXNlci9TZW5kRW1haWwuanRwP3R5cGU9bm9kZSZhbXA7YW1wO25vZGU9NDAyOTAx OCZhbXA7YW1wO2k9MjwvYT4iIHRhcmdldD0iX3RvcCIgcmVsPSJub2ZvbGxvdyIgbGluaz0iZXh0 ZXJuYWwiJmd0O1toaWRkZW4gZW1haWxdPHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFj ZSI+Jm5ic3A7PC9zcGFuPjxicj48YSBocmVmPSJodHRwczovL2xpc3RzLmpib3NzLm9yZy9tYWls bWFuL2xpc3RpbmZvL3J1bGVzLWRldiIgdGFyZ2V0PSJfdG9wIiByZWw9Im5vZm9sbG93IiBsaW5r PSJleHRlcm5hbCI+aHR0cHM6Ly9saXN0cy5qYm9zcy5vcmcvbWFpbG1hbi9saXN0aW5mby9ydWxl cy1kZXY8L2E+PGJyPjxicj48YnI+PGhyIG5vc2hhZGU9Im5vc2hhZGUiIHNpemU9IjEiPjxkaXYg c3R5bGU9ImNvbG9yOiByZ2IoNjgsIDY4LCA2OCk7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12 YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc2l6ZTogMTJweDsgbGlu ZS1oZWlnaHQ6IG5vcm1hbDsgZm9udC1mYW1pbHk6IHRhaG9tYSwgZ2VuZXZhLCBoZWx2ZXRpY2Es IGFyaWFsLCBzYW5zLXNlcmlmOyI+PGRpdiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij5JZiB5 b3UgcmVwbHkgdG8gdGhpcyBlbWFpbCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgYWRkZWQgdG8gdGhl IGRpc2N1c3Npb24gYmVsb3c6PC9kaXY+PGEgaHJlZj0iaHR0cDovL2Ryb29scy40Njk5OS5uMy5u YWJibGUuY29tL1Bvc3NpYmxlLW1lbW9yeS1sZWFrLWluLURyb29scy02LTAtMS10cDQwMjkwMTBw NDAyOTAxOC5odG1sIiB0YXJnZXQ9Il90b3AiIHJlbD0ibm9mb2xsb3ciIGxpbms9ImV4dGVybmFs Ij5odHRwOi8vZHJvb2xzLjQ2OTk5Lm4zLm5hYmJsZS5jb20vUG9zc2libGUtbWVtb3J5LWxlYWst aW4tRHJvb2xzLTYtMC0xLXRwNDAyOTAxMHA0MDI5MDE4Lmh0bWw8L2E+PC9kaXY+PGRpdiBzdHls ZT0iY29sb3I6IHJnYigxMDIsIDEwMiwgMTAyKTsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZh cmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiAxMXB4OyBmb250 LWZhbWlseTogdGFob21hLCBnZW5ldmEsIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWY7IG1h cmdpbi10b3A6IDAuNGVtOyBsaW5lLWhlaWdodDogMS41ZW07Ij5UbyB1bnN1YnNjcmliZSBmcm9t IFBvc3NpYmxlIG1lbW9yeSBsZWFrIGluIERyb29scyA2LjAuMSw8c3BhbiBjbGFzcz0iQXBwbGUt Y29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0iIiB0YXJnZXQ9Il90b3AiIHJl bD0ibm9mb2xsb3ciIGxpbms9ImV4dGVybmFsIj5jbGljayBoZXJlPC9hPi48YnI+PGEgaHJlZj0i aHR0cDovL2Ryb29scy40Njk5OS5uMy5uYWJibGUuY29tL3RlbXBsYXRlL05hbWxTZXJ2bGV0Lmp0 cD9tYWNybz1tYWNyb192aWV3ZXImYW1wO2lkPWluc3RhbnRfaHRtbCUyMW5hYmJsZSUzQWVtYWls Lm5hbWwmYW1wO2Jhc2U9bmFiYmxlLm5hbWwubmFtZXNwYWNlcy5CYXNpY05hbWVzcGFjZS1uYWJi bGUudmlldy53ZWIudGVtcGxhdGUuTmFiYmxlTmFtZXNwYWNlLW5hYmJsZS52aWV3LndlYi50ZW1w bGF0ZS5Ob2RlTmFtZXNwYWNlJmFtcDticmVhZGNydW1icz1ub3RpZnlfc3Vic2NyaWJlcnMlMjFu YWJibGUlM0FlbWFpbC5uYW1sLWluc3RhbnRfZW1haWxzJTIxbmFiYmxlJTNBZW1haWwubmFtbC1z ZW5kX2luc3RhbnRfZW1haWwlMjFuYWJibGUlM0FlbWFpbC5uYW1sIiByZWw9Im5vZm9sbG93IiB0 YXJnZXQ9Il90b3AiIGxpbms9ImV4dGVybmFsIiBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBm b250LXZhcmlhbnQ6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgZm9udC1zaXplOiA5cHg7 IGxpbmUtaGVpZ2h0OiBub3JtYWw7IGZvbnQtZmFtaWx5OiBzZXJpZjsiPk5BTUw8L2E+PC9kaXY+ PC9ibG9ja3F1b3RlPjxicj48aHIgYWxpZ249ImxlZnQiIHdpZHRoPSIzMDAiPlZpZXcgdGhpcyBt ZXNzYWdlIGluIGNvbnRleHQ6PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5i c3A7PC9zcGFuPjxhIGhyZWY9Imh0dHA6Ly9kcm9vbHMuNDY5OTkubjMubmFiYmxlLmNvbS9Qb3Nz aWJsZS1tZW1vcnktbGVhay1pbi1Ecm9vbHMtNi0wLTEtdHA0MDI5MDEwcDQwMjkwMjUuaHRtbCIg dGFyZ2V0PSJfdG9wIiByZWw9Im5vZm9sbG93IiBsaW5rPSJleHRlcm5hbCI+UmU6IFBvc3NpYmxl IG1lbW9yeSBsZWFrIGluIERyb29scyA2LjAuMTwvYT48YnI+U2VudCBmcm9tIHRoZTxzcGFuIGNs YXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YSBocmVmPSJodHRwOi8v ZHJvb2xzLjQ2OTk5Lm4zLm5hYmJsZS5jb20vRHJvb2xzLURldmVsb3Blci1jb21taXR0ZXItbWFp bGluZy1saXN0LWY2MjI2MC5odG1sIiB0YXJnZXQ9Il90b3AiIHJlbD0ibm9mb2xsb3ciIGxpbms9 ImV4dGVybmFsIj5Ecm9vbHM6IERldmVsb3BlciAoY29tbWl0dGVyKSBtYWlsaW5nIGxpc3QgbWFp bGluZyBsaXN0IGFyY2hpdmU8L2E+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+ Jm5ic3A7PC9zcGFuPmF0PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7 PC9zcGFuPjxhIGhyZWY9Imh0dHA6Ly9uYWJibGUuY29tLyIgdGFyZ2V0PSJfdG9wIiByZWw9Im5v Zm9sbG93IiBsaW5rPSJleHRlcm5hbCI+TmFiYmxlLmNvbTwvYT4uPGJyPl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPnJ1bGVzLWRldiBtYWlsaW5nIGxp c3Q8YnI+PGEgaHJlZj0ieC1tc2c6Ly8xMzMvdXNlci9TZW5kRW1haWwuanRwP3R5cGU9bm9kZSZh bXA7bm9kZT00MDI5MDI2JmFtcDtpPTEiIHRhcmdldD0iX3RvcCIgcmVsPSJub2ZvbGxvdyIgbGlu az0iZXh0ZXJuYWwiPltoaWRkZW4gZW1haWxdPC9hPjxicj48YSBocmVmPSJodHRwczovL2xpc3Rz Lmpib3NzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3J1bGVzLWRldiIgdGFyZ2V0PSJfdG9wIiByZWw9 Im5vZm9sbG93IiBsaW5rPSJleHRlcm5hbCI+aHR0cHM6Ly9saXN0cy5qYm9zcy5vcmcvbWFpbG1h bi9saXN0aW5mby9ydWxlcy1kZXY8L2E+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rp dj48YnI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPGJy PnJ1bGVzLWRldiBtYWlsaW5nIGxpc3QKPGJyPjxhIGhyZWY9IngtbXNnOi8vMTMzL3VzZXIvU2Vu ZEVtYWlsLmp0cD90eXBlPW5vZGUmYW1wO25vZGU9NDAyOTAyNiZhbXA7aT0yIiB0YXJnZXQ9Il90 b3AiIHJlbD0ibm9mb2xsb3ciIGxpbms9ImV4dGVybmFsIj5baGlkZGVuIGVtYWlsXTwvYT4KPGJy PjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuamJvc3Mub3JnL21haWxtYW4vbGlzdGluZm8vcnVsZXMt ZGV2IiB0YXJnZXQ9Il90b3AiIHJlbD0ibm9mb2xsb3ciIGxpbms9ImV4dGVybmFsIj5odHRwczov L2xpc3RzLmpib3NzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3J1bGVzLWRldjwvYT4KCgkKCQoJCgk8 YnI+Cgk8YnI+Cgk8aHIgbm9zaGFkZT0ibm9zaGFkZSIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJj b2xvcjojNDQ0OyBmb250OiAxMnB4IHRhaG9tYSxnZW5ldmEsaGVsdmV0aWNhLGFyaWFsLHNhbnMt c2VyaWY7Ij4KCQk8ZGl2IHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5JZiB5b3UgcmVwbHkgdG8g dGhpcyBlbWFpbCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGRpc2N1c3Npb24g YmVsb3c6PC9kaXY+CgkJPGEgaHJlZj0iaHR0cDovL2Ryb29scy40Njk5OS5uMy5uYWJibGUuY29t L1Bvc3NpYmxlLW1lbW9yeS1sZWFrLWluLURyb29scy02LTAtMS10cDQwMjkwMTBwNDAyOTAyNi5o dG1sIiB0YXJnZXQ9Il90b3AiIHJlbD0ibm9mb2xsb3ciIGxpbms9ImV4dGVybmFsIj5odHRwOi8v ZHJvb2xzLjQ2OTk5Lm4zLm5hYmJsZS5jb20vUG9zc2libGUtbWVtb3J5LWxlYWstaW4tRHJvb2xz LTYtMC0xLXRwNDAyOTAxMHA0MDI5MDI2Lmh0bWw8L2E+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9ImNv bG9yOiM2NjY7IGZvbnQ6IDExcHggdGFob21hLGdlbmV2YSxoZWx2ZXRpY2EsYXJpYWwsc2Fucy1z ZXJpZjttYXJnaW4tdG9wOi40ZW07bGluZS1oZWlnaHQ6MS41ZW0iPgoJCQoJCVRvIHVuc3Vic2Ny aWJlIGZyb20gUG9zc2libGUgbWVtb3J5IGxlYWsgaW4gRHJvb2xzIDYuMC4xLCA8YSBocmVmPSIi IHRhcmdldD0iX3RvcCIgcmVsPSJub2ZvbGxvdyIgbGluaz0iZXh0ZXJuYWwiPmNsaWNrIGhlcmU8 L2E+Ljxicj4KCQk8YSBocmVmPSJodHRwOi8vZHJvb2xzLjQ2OTk5Lm4zLm5hYmJsZS5jb20vdGVt cGxhdGUvTmFtbFNlcnZsZXQuanRwP21hY3JvPW1hY3JvX3ZpZXdlciZhbXA7aWQ9aW5zdGFudF9o dG1sJTIxbmFiYmxlJTNBZW1haWwubmFtbCZhbXA7YmFzZT1uYWJibGUubmFtbC5uYW1lc3BhY2Vz LkJhc2ljTmFtZXNwYWNlLW5hYmJsZS52aWV3LndlYi50ZW1wbGF0ZS5OYWJibGVOYW1lc3BhY2Ut bmFiYmxlLnZpZXcud2ViLnRlbXBsYXRlLk5vZGVOYW1lc3BhY2UmYW1wO2JyZWFkY3J1bWJzPW5v dGlmeV9zdWJzY3JpYmVycyUyMW5hYmJsZSUzQWVtYWlsLm5hbWwtaW5zdGFudF9lbWFpbHMlMjFu YWJibGUlM0FlbWFpbC5uYW1sLXNlbmRfaW5zdGFudF9lbWFpbCUyMW5hYmJsZSUzQWVtYWlsLm5h bWwiIHJlbD0ibm9mb2xsb3ciIHN0eWxlPSJmb250OjlweCBzZXJpZiIgdGFyZ2V0PSJfdG9wIiBs aW5rPSJleHRlcm5hbCI+TkFNTDwvYT4KCTwvZGl2PjwvYmxvY2txdW90ZT4KCgkKCQoJCjxicj48 aHIgYWxpZ249ImxlZnQiIHdpZHRoPSIzMDAiPgpWaWV3IHRoaXMgbWVzc2FnZSBpbiBjb250ZXh0 OiA8YSBocmVmPSJodHRwOi8vZHJvb2xzLjQ2OTk5Lm4zLm5hYmJsZS5jb20vUG9zc2libGUtbWVt b3J5LWxlYWstaW4tRHJvb2xzLTYtMC0xLXRwNDAyOTAxMHA0MDI5MDI3Lmh0bWwiPlJlOiBQb3Nz aWJsZSBtZW1vcnkgbGVhayBpbiBEcm9vbHMgNi4wLjE8L2E+PGJyPgpTZW50IGZyb20gdGhlIDxh IGhyZWY9Imh0dHA6Ly9kcm9vbHMuNDY5OTkubjMubmFiYmxlLmNvbS9Ecm9vbHMtRGV2ZWxvcGVy LWNvbW1pdHRlci1tYWlsaW5nLWxpc3QtZjYyMjYwLmh0bWwiPkRyb29sczogRGV2ZWxvcGVyIChj b21taXR0ZXIpIG1haWxpbmcgbGlzdCBtYWlsaW5nIGxpc3QgYXJjaGl2ZTwvYT4gYXQgPGEgaHJl Zj0iaHR0cDovL25hYmJsZS5jb20vIj5OYWJibGUuY29tPC9hPi48YnI+X19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+cnVsZXMtZGV2IG1haWxpbmcgbGlz dDxicj48YSBocmVmPSJtYWlsdG86cnVsZXMtZGV2QGxpc3RzLmpib3NzLm9yZyI+cnVsZXMtZGV2 QGxpc3RzLmpib3NzLm9yZzwvYT48YnI+PGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5qYm9zcy5vcmcv bWFpbG1hbi9saXN0aW5mby9ydWxlcy1kZXYiPmh0dHBzOi8vbGlzdHMuamJvc3Mub3JnL21haWxt YW4vbGlzdGluZm8vcnVsZXMtZGV2PC9hPjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PC9kaXY+PC9i bG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj48L2JvZHk+PC9odG1sPg== --===============1487023895581758512==--