Return-Path: Delivered-To: apmail-incubator-cassandra-user-archive@minotaur.apache.org Received: (qmail 50953 invoked from network); 16 Dec 2009 23:16:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 16 Dec 2009 23:16:52 -0000 Received: (qmail 98440 invoked by uid 500); 16 Dec 2009 23:16:51 -0000 Delivered-To: apmail-incubator-cassandra-user-archive@incubator.apache.org Received: (qmail 98405 invoked by uid 500); 16 Dec 2009 23:16:51 -0000 Mailing-List: contact cassandra-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cassandra-user@incubator.apache.org Delivered-To: mailing list cassandra-user@incubator.apache.org Received: (qmail 98396 invoked by uid 99); 16 Dec 2009 23:16:51 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Dec 2009 23:16:51 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of bburruss@real.com designates 207.188.23.7 as permitted sender) Received: from [207.188.23.7] (HELO cir-el.real.com) (207.188.23.7) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Dec 2009 23:16:42 +0000 Received: from seacas01.corp.real.com ([::ffff:192.168.139.56]) (TLS: TLSv1/SSLv3,128bits,AES128-SHA) by cir-el.real.com with esmtp; Wed, 16 Dec 2009 15:16:20 -0800 id 001FC036.4B296A44.0000107F Received: from seambx.corp.real.com ([fe80::2d15:fda7:b3b8:e268]) by seacas01.corp.real.com ([192.168.139.56]) with mapi; Wed, 16 Dec 2009 15:16:19 -0800 From: Brian Burruss To: "cassandra-user@incubator.apache.org" Date: Wed, 16 Dec 2009 15:16:19 -0800 Subject: OOM Exception Thread-Topic: OOM Exception Thread-Index: AQHKfqLKbgUNN12UJUqlQUevVH8Utw== Message-ID: <766B5A29D28DA442AB229AAEE2AFC44507D7B914F6@SEAMBX.corp.real.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: en-US Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_cir-el.real.com-4223-1261005380-0001-2" X-Virus-Checked: Checked by ClamAV on apache.org This is a MIME-formatted message. If you see this text it means that your E-mail software does not support MIME-formatted messages. --=_cir-el.real.com-4223-1261005380-0001-2 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable i'll put my question first: - how can i determine how much RAM is required by cassandra? (for normal o= peration and restarting server) *** i've attached my storage-conf.xml i've gotten several more OOM exceptions since i mentioned it a week or so a= go. i started from a fresh database a couple days ago and have been adding= 2k blocks of data keyed off a random integer at the rate of about 400/sec.= i have a 2 node cluster, RF=3D2, Consistency for read/write is ONE. ther= e are ~70,420,082 2k blocks of data in the database. i used the default memory setup of Xmx1G when i started a couple days ago. = as the database grew to ~180G (reported by unix du command) both servers O= OM'ed at about the same time, within 10 minutes of each other. well needle= ss to say, my cluster is dead. so i upped the memory to 3G and the servers= tried to come back up, but one died again with OOM. Before cleaning the disk and starting over a couple days ago, i played the = game of "jack up the RAM", but eventually i didn't want to up it anymore wh= en i got to 5G. the parameter, SSTable.INDEX_INTERVAL, was discussed a few= days ago that would change the number of "keys" cached in memory, so i cou= ld modify that at the cost of read performance, but doing the math, 3G shou= ld be plenty of room. it seems like startup requires more RAM than just normal running. so this of course concerns me. i have the hprof files from when the server initially crashed and when it c= rashed trying to restart if anyone wants them --=_cir-el.real.com-4223-1261005380-0001-2 Content-Type: text/xml; name="storage-conf.xml"; charset=iso-8859-1 Content-Transfer-Encoding: base64 Content-Description: storage-conf.xml Content-Disposition: attachment; filename="storage-conf.xml"; size=14935; creation-date="Wed, 16 Dec 2009 14:55:09 GMT"; modification-date="Wed, 16 Dec 2009 14:55:09 GMT" PCEtLQogfiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikg dW5kZXIgb25lCiB+IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2Vl IHRoZSBOT1RJQ0UgZmlsZQogfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRp b25hbCBpbmZvcm1hdGlvbgogfiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBB U0YgbGljZW5zZXMgdGhpcyBmaWxlCiB+IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Us IFZlcnNpb24gMi4wICh0aGUKIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmls ZSBleGNlcHQgaW4gY29tcGxpYW5jZQogfiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRh aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiB+CiB+ICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9y Zy9saWNlbnNlcy9MSUNFTlNFLTIuMAogfgogfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCiB+IHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVu ZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiB+ICJBUyBJUyIgQkFTSVMsIFdJ VEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogfiBLSU5ELCBlaXRoZXIgZXhw cmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKIH4gc3BlY2lmaWMgbGFu Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogfiB1bmRlciB0aGUg TGljZW5zZS4KLS0+CjxTdG9yYWdlPgogIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CiAgPCEtLSBCYXNp YyBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLT4KICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgoKICA8IS0tIAogICB+IFRoZSBuYW1l IG9mIHRoaXMgY2x1c3Rlci4gIFRoaXMgaXMgbWFpbmx5IHVzZWQgdG8gcHJldmVudCBtYWNoaW5l cyBpbgogICB+IG9uZSBsb2dpY2FsIGNsdXN0ZXIgZnJvbSBqb2luaW5nIGFub3RoZXIuCiAgLS0+ CiAgPENsdXN0ZXJOYW1lPmJ0b2RkYi1jbHVzdGVyPC9DbHVzdGVyTmFtZT4KCiAgPCEtLQogICB+ IFR1cm4gb24gdG8gbWFrZSBuZXcgW25vbi1zZWVkXSBub2RlcyBhdXRvbWF0aWNhbGx5IG1pZ3Jh dGUgdGhlIHJpZ2h0IGRhdGEgCiAgIH4gdG8gdGhlbXNlbHZlcy4gIChJZiBubyBJbml0aWFsVG9r ZW4gaXMgc3BlY2lmaWVkLCB0aGV5IHdpbGwgcGljayBvbmUgCiAgIH4gc3VjaCB0aGF0IHRoZXkg d2lsbCBnZXQgaGFsZiB0aGUgcmFuZ2Ugb2YgdGhlIG1vc3QtbG9hZGVkIG5vZGUuKQogICB+IElm IGEgbm9kZSBzdGFydHMgdXAgd2l0aG91dCBib290c3RyYXBwaW5nLCBpdCB3aWxsIG1hcmsgaXRz ZWxmIGJvb3RzdHJhcHBlZAogICB+IHNvIHRoYXQgeW91IGNhbid0IHN1YnNlcXVlbnRseSBhY2Np ZGVudGx5IGJvb3RzdHJhcCBhIG5vZGUgd2l0aAogICB+IGRhdGEgb24gaXQuICAoWW91IGNhbiBy ZXNldCB0aGlzIGJ5IHdpcGluZyB5b3VyIGRhdGEgYW5kIGNvbW1pdGxvZwogICB+IGRpcmVjdG9y aWVzLikKICAgfgogICB+IE9mZiBieSBkZWZhdWx0IHNvIHRoYXQgbmV3IGNsdXN0ZXJzIGFuZCB1 cGdyYWRlcnMgZnJvbSAwLjQgZG9uJ3QKICAgfiBib290c3RyYXAgaW1tZWRpYXRlbHkuICBZb3Ug c2hvdWxkIHR1cm4gdGhpcyBvbiB3aGVuIHlvdSBzdGFydCBhZGRpbmcKICAgfiBuZXcgbm9kZXMg dG8gYSBjbHVzdGVyIHRoYXQgYWxyZWFkeSBoYXMgZGF0YSBvbiBpdC4gIChJZiB5b3UgYXJlIHVw Z3JhZGluZwogICB+IGZyb20gMC40LCBzdGFydCB5b3VyIGNsdXN0ZXIgd2l0aCBpdCBvZmYgb25j ZSBiZWZvcmUgY2hhbmdpbmcgaXQgdG8gdHJ1ZS4KICAgfiBPdGhlcndpc2UsIG5vIGRhdGEgd2ls bCBiZSBsb3N0IGJ1dCB5b3Ugd2lsbCBpbmN1ciBhIGxvdCBvZiB1bm5lY2Vzc2FyeQogICB+IEkv TyBiZWZvcmUgeW91ciBjbHVzdGVyIHN0YXJ0cyB1cC4pCiAgLS0+CiAgPEF1dG9Cb290c3RyYXA+ ZmFsc2U8L0F1dG9Cb290c3RyYXA+CgogIDwhLS0KICAgfiBLZXlzcGFjZXMgYW5kIENvbHVtbkZh bWlsaWVzOgogICB+IEEgQ29sdW1uRmFtaWx5IGlzIHRoZSBDYXNzYW5kcmEgY29uY2VwdCBjbG9z ZXN0IHRvIGEgcmVsYXRpb25hbAogICB+IHRhYmxlLiAgS2V5c3BhY2VzIGFyZSBzZXBhcmF0ZSBn cm91cHMgb2YgQ29sdW1uRmFtaWxpZXMuICBFeGNlcHQgaW4KICAgfiB2ZXJ5IHVudXN1YWwgY2ly Y3Vtc3RhbmNlcyB5b3Ugd2lsbCBoYXZlIG9uZSBLZXlzcGFjZSBwZXIgYXBwbGljYXRpb24uCgog ICB+IFRoZXJlIGlzIGFuIGltcGxpY2l0IGtleXNwYWNlIG5hbWVkICdzeXN0ZW0nIGZvciBDYXNz YW5kcmEgaW50ZXJuYWxzLgogIC0tPgoKICA8S2V5c3BhY2VzPgogICAgPEtleXNwYWNlIE5hbWU9 InVkcyI+CiAgICAgIDwhLS0KICAgICAgIH4gVGhlIGZyYWN0aW9uIG9mIGtleXMgcGVyIHNzdGFi bGUgd2hvc2UgbG9jYXRpb25zIHdlIGtlZXAgaW4KICAgICAgIH4gbWVtb3J5IGluICJtb3N0bHkg TFJVIiBvcmRlci4gIChKVVNUIHRoZSBrZXkgbG9jYXRpb25zLCBOT1QgYW55CiAgICAgICB+IGNv bHVtbiB2YWx1ZXMuKQoKICAgICAgIH4gVGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSB0aGUg ZGVmYXVsdCBzZXR0aW5nIG9mIDAuMDEgaXMKICAgICAgIH4gY29tcGFyYWJsZSB0byB0aGUgYW1v dW50IHVzZWQgYnkgdGhlIGludGVybmFsIHBlci1zc3RhYmxlIGtleQogICAgICAgfiBpbmRleC4g Q29uc2lkZXIgaW5jcmVhc2luZyB0aGlzIGlmIHlvdSBoYXZlIGZld2VyLCB3aWRlciByb3dzLgog ICAgICAgfiBTZXQgdG8gMCB0byBkaXNhYmxlIGVudGlyZWx5LgogICAgICAtLT4KICAgICAgPEtl eXNDYWNoZWRGcmFjdGlvbj4wLjAxPC9LZXlzQ2FjaGVkRnJhY3Rpb24+CgogICAgICA8IS0tIAog ICAgICAgfiBUaGUgQ29tcGFyZVdpdGggYXR0cmlidXRlIHRlbGxzIENhc3NhbmRyYSBob3cgdG8g c29ydCB0aGUgY29sdW1ucwogICAgICAgfiBmb3Igc2xpY2luZyBvcGVyYXRpb25zLiAgVGhlIGRl ZmF1bHQgaXMgQnl0ZXNUeXBlLCB3aGljaCBpcyBhCiAgICAgICB+IHN0cmFpZ2h0Zm9yd2FyZCBs ZXhpY2FsIGNvbXBhcmlzb24gb2YgdGhlIGJ5dGVzIGluIGVhY2ggY29sdW1uLgogICAgICAgfiBP dGhlciBvcHRpb25zIGFyZSBBc2NpaVR5cGUsIFVURjhUeXBlLCBMZXhpY2FsVVVJRFR5cGUsIFRp bWVVVUlEVHlwZSwKICAgICAgIH4gYW5kIExvbmdUeXBlLiAgWW91IGNhbiBhbHNvIHNwZWNpZnkg dGhlIGZ1bGx5LXF1YWxpZmllZCBjbGFzcwogICAgICAgfiBuYW1lIHRvIGEgY2xhc3Mgb2YgeW91 ciBjaG9pY2UgZXh0ZW5kaW5nCiAgICAgICB+IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmRiLm1hcnNo YWwuQWJzdHJhY3RUeXBlLgogICAgICAgfiAKICAgICAgIH4gU3VwZXJDb2x1bW5zIGhhdmUgYSBz aW1pbGFyIENvbXBhcmVTdWJjb2x1bW5zV2l0aCBhdHRyaWJ1dGUuCiAgICAgICB+IAogICAgICAg fiBCeXRlc1R5cGU6IFNpbXBsZSBzb3J0IGJ5IGJ5dGUgdmFsdWUuICBObyB2YWxpZGF0aW9uIGlz IHBlcmZvcm1lZC4KICAgICAgIH4gQXNjaWlUeXBlOiBMaWtlIEJ5dGVzVHlwZSwgYnV0IHZhbGlk YXRlcyB0aGF0IHRoZSBpbnB1dCBjYW4gYmUgCiAgICAgICB+ICAgICAgICAgICAgcGFyc2VkIGFz IFVTLUFTQ0lJLgogICAgICAgfiBVVEY4VHlwZTogQSBzdHJpbmcgZW5jb2RlZCBhcyBVVEY4CiAg ICAgICB+IExvbmdUeXBlOiBBIDY0Yml0IGxvbmcKICAgICAgIH4gTGV4aWNhbFVVSURUeXBlOiBB IDEyOGJpdCBVVUlELCBjb21wYXJlZCBsZXhpY2FsbHkgKGJ5IGJ5dGUgdmFsdWUpCiAgICAgICB+ IFRpbWVVVUlEVHlwZTogYSAxMjhiaXQgdmVyc2lvbiAxIFVVSUQsIGNvbXBhcmVkIGJ5IHRpbWVz dGFtcAogICAgICAgfgogICAgICAgfiAoVG8gZ2V0IHRoZSBjbG9zZXN0IGFwcHJveGltYXRpb24g dG8gMC4zLXN0eWxlIHN1cGVyY29sdW1ucywgeW91CiAgICAgICB+IHdvdWxkIHVzZSBDb21wYXJl V2l0aD1VVEY4VHlwZSBDb21wYXJlU3ViY29sdW1uc1dpdGg9TG9uZ1R5cGUuKQogICAgICAgfgog ICAgICAgfiBBbiBvcHRpb25hbCBgQ29tbWVudGAgYXR0cmlidXRlIG1heSBiZSB1c2VkIHRvIGF0 dGFjaCBhZGRpdGlvbmFsCiAgICAgICB+IGh1bWFuLXJlYWRhYmxlIGluZm9ybWF0aW9uIGFib3V0 IHRoZSBjb2x1bW4gZmFtaWx5IHRvIGl0cyBkZWZpbml0aW9uLgogICAgICAtLT4KICAgICAgPENv bHVtbkZhbWlseSBDb21wYXJlV2l0aD0iQnl0ZXNUeXBlIiBOYW1lPSJidWNrZXQiIC8+CiAgICAg IDwhLS0KICAgICAgPENvbHVtbkZhbWlseSBDb2x1bW5UeXBlPSJTdXBlciIKICAgICAgICAgICAg ICAgICAgICBDb21wYXJlV2l0aD0iVVRGOFR5cGUiCiAgICAgICAgICAgICAgICAgICAgQ29tcGFy ZVN1YmNvbHVtbnNXaXRoPSJVVEY4VHlwZSIKICAgICAgICAgICAgICAgICAgICBOYW1lPSJTdXBl cjEiCiAgICAgICAgICAgICAgICAgICAgQ29tbWVudD0iQSBjb2x1bW4gZmFtaWx5IHdpdGggc3Vw ZXJjb2x1bW5zLCB3aG9zZSBjb2x1bW4gYW5kIHN1YmNvbHVtbiBuYW1lcyBhcmUgVVRGOCBzdHJp bmdzIi8+CiAgICAgIC0tPgogICAgPC9LZXlzcGFjZT4KICA8L0tleXNwYWNlcz4KCgogIDwhLS0K ICAgfiBQYXJ0aXRpb25lcjogYW55IElQYXJ0aXRpb25lciBtYXkgYmUgdXNlZCwgaW5jbHVkaW5n IHlvdXIgb3duIGFzIGxvbmcKICAgfiBhcyBpdCBpcyBvbiB0aGUgY2xhc3NwYXRoLiAgT3V0IG9m IHRoZSBib3gsIENhc3NhbmRyYSBwcm92aWRlcwogICB+IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmRo dC5SYW5kb21QYXJ0aXRpb25lciwKICAgfiBvcmcuYXBhY2hlLmNhc3NhbmRyYS5kaHQuT3JkZXJQ cmVzZXJ2aW5nUGFydGl0aW9uZXIsIGFuZAogICB+IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmRodC5D b2xsYXRpbmdPcmRlclByZXNlcnZpbmdQYXJ0aXRpb25lci4KICAgfiAoQ29sbGF0aW5nT1BQIGNv bGF0ZXMgYWNjb3JkaW5nIHRvIEVOLFVTIHJ1bGVzLCBub3QgbmFpdmUgYnl0ZQogICB+IG9yZGVy aW5nLiAgVXNlIHRoaXMgYXMgYW4gZXhhbXBsZSBpZiB5b3UgbmVlZCBsb2NhbGUtYXdhcmUgY29s bGF0aW9uLikKICAgfiBSYW5nZSBxdWVyaWVzIHJlcXVpcmUgdXNpbmcgYW4gb3JkZXItcHJlc2Vy dmluZyBwYXJ0aXRpb25lci4KICAgfgogICB+IEFjaHR1bmchICBDaGFuZ2luZyB0aGlzIHBhcmFt ZXRlciByZXF1aXJlcyB3aXBpbmcgeW91ciBkYXRhCiAgIH4gZGlyZWN0b3JpZXMsIHNpbmNlIHRo ZSBwYXJ0aXRpb25lciBjYW4gbW9kaWZ5IHRoZSBzc3RhYmxlIG9uLWRpc2sKICAgfiBmb3JtYXQu CiAgLS0+CiAgPFBhcnRpdGlvbmVyPm9yZy5hcGFjaGUuY2Fzc2FuZHJhLmRodC5SYW5kb21QYXJ0 aXRpb25lcjwvUGFydGl0aW9uZXI+CgogIDwhLS0KICAgfiBJZiB5b3UgYXJlIHVzaW5nIGFuIG9y ZGVyLXByZXNlcnZpbmcgcGFydGl0aW9uZXIgYW5kIHlvdSBrbm93IHlvdXIga2V5CiAgIH4gZGlz dHJpYnV0aW9uLCB5b3UgY2FuIHNwZWNpZnkgdGhlIHRva2VuIGZvciB0aGlzIG5vZGUgdG8gdXNl LiAoS2V5cwogICB+IGFyZSBzZW50IHRvIHRoZSBub2RlIHdpdGggdGhlICJjbG9zZXN0IiB0b2tl biwgc28gZGlzdHJpYnV0aW5nIHlvdXIKICAgfiB0b2tlbnMgZXF1YWxseSBhbG9uZyB0aGUga2V5 IGRpc3RyaWJ1dGlvbiBzcGFjZSB3aWxsIHNwcmVhZCBrZXlzCiAgIH4gZXZlbmx5IGFjcm9zcyB5 b3VyIGNsdXN0ZXIuKSAgVGhpcyBzZXR0aW5nIGlzIG9ubHkgY2hlY2tlZCB0aGUgZmlyc3QKICAg fiB0aW1lIGEgbm9kZSBpcyBzdGFydGVkLiAKCiAgIH4gVGhpcyBjYW4gYWxzbyBiZSB1c2VmdWwg d2l0aCBSYW5kb21QYXJ0aXRpb25lciB0byBmb3JjZSBlcXVhbCBzcGFjaW5nCiAgIH4gb2YgdG9r ZW5zIGFyb3VuZCB0aGUgaGFzaCBzcGFjZSwgZXNwZWNpYWxseSBmb3IgY2x1c3RlcnMgd2l0aCBh IHNtYWxsCiAgIH4gbnVtYmVyIG9mIG5vZGVzLgogIC0tPgogIDxJbml0aWFsVG9rZW4+PC9Jbml0 aWFsVG9rZW4+CgogIDwhLS0KICAgfiBFbmRQb2ludFNuaXRjaDogU2V0dGluZyB0aGlzIHRvIHRo ZSBjbGFzcyB0aGF0IGltcGxlbWVudHMKICAgfiBJRW5kUG9pbnRTbml0Y2ggd2hpY2ggd2lsbCBz ZWUgaWYgdHdvIGVuZHBvaW50cyBhcmUgaW4gdGhlIHNhbWUgZGF0YQogICB+IGNlbnRlciBvciBv biB0aGUgc2FtZSByYWNrLiBPdXQgb2YgdGhlIGJveCwgQ2Fzc2FuZHJhIHByb3ZpZGVzCiAgIH4g b3JnLmFwYWNoZS5jYXNzYW5kcmEubG9jYXRvci5FbmRQb2ludFNuaXRjaAogIC0tPgogIDxFbmRQ b2ludFNuaXRjaD5vcmcuYXBhY2hlLmNhc3NhbmRyYS5sb2NhdG9yLkVuZFBvaW50U25pdGNoPC9F bmRQb2ludFNuaXRjaD4KCiAgPCEtLQogICB+IFN0cmF0ZWd5OiBTZXR0aW5nIHRoaXMgdG8gdGhl IGNsYXNzIHRoYXQgaW1wbGVtZW50cwogICB+IElSZXBsaWNhUGxhY2VtZW50U3RyYXRlZ3kgd2ls bCBjaGFuZ2UgdGhlIHdheSB0aGUgbm9kZSBwaWNrZXIgd29ya3MuCiAgIH4gT3V0IG9mIHRoZSBi b3gsIENhc3NhbmRyYSBwcm92aWRlcwogICB+IG9yZy5hcGFjaGUuY2Fzc2FuZHJhLmxvY2F0b3Iu UmFja1VuYXdhcmVTdHJhdGVneSBhbmQKICAgfiBvcmcuYXBhY2hlLmNhc3NhbmRyYS5sb2NhdG9y LlJhY2tBd2FyZVN0cmF0ZWd5IChwbGFjZSBvbmUgcmVwbGljYSBpbgogICB+IGEgZGlmZmVyZW50 IGRhdGFjZW50ZXIsIGFuZCB0aGUgb3RoZXJzIG9uIGRpZmZlcmVudCByYWNrcyBpbiB0aGUgc2Ft ZQogICB+IG9uZS4pCiAgLS0+CiAgPFJlcGxpY2FQbGFjZW1lbnRTdHJhdGVneT5vcmcuYXBhY2hl LmNhc3NhbmRyYS5sb2NhdG9yLlJhY2tVbmF3YXJlU3RyYXRlZ3k8L1JlcGxpY2FQbGFjZW1lbnRT dHJhdGVneT4KCiAgPCEtLSBOdW1iZXIgb2YgcmVwbGljYXMgb2YgdGhlIGRhdGEgLS0+CiAgPFJl cGxpY2F0aW9uRmFjdG9yPjI8L1JlcGxpY2F0aW9uRmFjdG9yPgoKICA8IS0tCiAgIH4gRGlyZWN0 b3JpZXM6IFNwZWNpZnkgd2hlcmUgQ2Fzc2FuZHJhIHNob3VsZCBzdG9yZSBkaWZmZXJlbnQgZGF0 YSBvbgogICB+IGRpc2suICBLZWVwIHRoZSBkYXRhIGRpc2tzIGFuZCB0aGUgQ29tbWl0TG9nIGRp c2tzIHNlcGFyYXRlIGZvciBiZXN0CiAgIH4gcGVyZm9ybWFuY2UKICAtLT4KICA8Q29tbWl0TG9n RGlyZWN0b3J5PmJ0b2RkYi9jb21taXRsb2c8L0NvbW1pdExvZ0RpcmVjdG9yeT4KICA8RGF0YUZp bGVEaXJlY3Rvcmllcz4KICAgICAgPERhdGFGaWxlRGlyZWN0b3J5PmJ0b2RkYi9kYXRhPC9EYXRh RmlsZURpcmVjdG9yeT4KICA8L0RhdGFGaWxlRGlyZWN0b3JpZXM+CiAgPENhbGxvdXRMb2NhdGlv bj5idG9kZGIvY2FsbG91dHM8L0NhbGxvdXRMb2NhdGlvbj4KICA8U3RhZ2luZ0ZpbGVEaXJlY3Rv cnk+YnRvZGRiL3N0YWdpbmc8L1N0YWdpbmdGaWxlRGlyZWN0b3J5PgoKCiAgPCEtLQogICB+IEFk ZHJlc3NlcyBvZiBob3N0cyB0aGF0IGFyZSBkZWVtZWQgY29udGFjdCBwb2ludHMuIENhc3NhbmRy YSBub2RlcwogICB+IHVzZSB0aGlzIGxpc3Qgb2YgaG9zdHMgdG8gZmluZCBlYWNoIG90aGVyIGFu ZCBsZWFybiB0aGUgdG9wb2xvZ3kgb2YKICAgfiB0aGUgcmluZy4gWW91IG11c3QgY2hhbmdlIHRo aXMgaWYgeW91IGFyZSBydW5uaW5nIG11bHRpcGxlIG5vZGVzIQogIC0tPgogIDxTZWVkcz4KICAg ICAgPFNlZWQ+Z2VuLWFwcDAyLmRldi5yZWFsLmNvbTwvU2VlZD4KICAgICAgPFNlZWQ+Z2VuLWFw cDAzLmRldi5yZWFsLmNvbTwvU2VlZD4KICA8L1NlZWRzPgoKCiAgPCEtLSBNaXNjZWxsYW5lb3Vz IC0tPgoKICA8IS0tIFRpbWUgdG8gd2FpdCBmb3IgYSByZXBseSBmcm9tIG90aGVyIG5vZGVzIGJl Zm9yZSBmYWlsaW5nIHRoZSBjb21tYW5kIC0tPgogIDxScGNUaW1lb3V0SW5NaWxsaXM+NTAwMDwv UnBjVGltZW91dEluTWlsbGlzPgoKICA8IS0tIFNpemUgdG8gYWxsb3cgY29tbWl0bG9nIHRvIGdy b3cgdG8gYmVmb3JlIGNyZWF0aW5nIGEgbmV3IHNlZ21lbnQgLS0+CiAgPENvbW1pdExvZ1JvdGF0 aW9uVGhyZXNob2xkSW5NQj4xMjg8L0NvbW1pdExvZ1JvdGF0aW9uVGhyZXNob2xkSW5NQj4KCgog IDwhLS0gTG9jYWwgaG9zdHMgYW5kIHBvcnRzIC0tPgoKICA8IS0tIAogICB+IEFkZHJlc3MgdG8g YmluZCB0byBhbmQgdGVsbCBvdGhlciBub2RlcyB0byBjb25uZWN0IHRvLiAgWW91IF9tdXN0Xwog ICB+IGNoYW5nZSB0aGlzIGlmIHlvdSB3YW50IG11bHRpcGxlIG5vZGVzIHRvIGJlIGFibGUgdG8g Y29tbXVuaWNhdGUhICAKICAgfgogICB+IExlYXZpbmcgaXQgYmxhbmsgbGVhdmVzIGl0IHVwIHRv IEluZXRBZGRyZXNzLmdldExvY2FsSG9zdCgpLiBUaGlzCiAgIH4gd2lsbCBhbHdheXMgZG8gdGhl IFJpZ2h0IFRoaW5nICppZiogdGhlIG5vZGUgaXMgcHJvcGVybHkgY29uZmlndXJlZAogICB+ICho b3N0bmFtZSwgbmFtZSByZXNvbHV0aW9uLCBldGMpLCBhbmQgdGhlIFJpZ2h0IFRoaW5nIGlzIHRv IHVzZSB0aGUKICAgfiBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgaG9zdG5hbWUgKGl0IG1p Z2h0IG5vdCBiZSkuCiAgLS0+CiAgPExpc3RlbkFkZHJlc3M+MTcyLjI3LjEyOC4yMjwvTGlzdGVu QWRkcmVzcz4KICA8IS0tIFRDUCBwb3J0LCBmb3IgY29tbWFuZHMgYW5kIGRhdGEgLS0+CiAgPFN0 b3JhZ2VQb3J0PjcwMDA8L1N0b3JhZ2VQb3J0PgogIDwhLS0gVURQIHBvcnQsIGZvciBtZW1iZXJz aGlwIGNvbW11bmljYXRpb25zIChnb3NzaXApIC0tPgogIDxDb250cm9sUG9ydD43MDAxPC9Db250 cm9sUG9ydD4KCiAgPCEtLQogICB+IFRoZSBhZGRyZXNzIHRvIGJpbmQgdGhlIFRocmlmdCBSUEMg c2VydmljZSB0by4gVW5saWtlIExpc3RlbkFkZHJlc3MKICAgfiBhYm92ZSwgeW91ICpjYW4qIHNw ZWNpZnkgMC4wLjAuMCBoZXJlIGlmIHlvdSB3YW50IFRocmlmdCB0byBsaXN0ZW4gb24KICAgfiBh bGwgaW50ZXJmYWNlcy4KICAgfgogICB+IExlYXZpbmcgdGhpcyBibGFuayBoYXMgdGhlIHNhbWUg ZWZmZWN0IGl0IGRvZXMgZm9yIExpc3RlbkFkZHJlc3MsCiAgIH4gKGkuZS4gaXQgd2lsbCBiZSBi YXNlZCBvbiB0aGUgY29uZmlndXJlZCBob3N0bmFtZSBvZiB0aGUgbm9kZSkuCiAgLS0+CiAgPFRo cmlmdEFkZHJlc3M+MTcyLjI3LjEyOC4yMjwvVGhyaWZ0QWRkcmVzcz4KICA8IS0tIFRocmlmdCBS UEMgcG9ydCAodGhlIHBvcnQgY2xpZW50cyBjb25uZWN0IHRvKS4gLS0+CiAgPFRocmlmdFBvcnQ+ OTE2MDwvVGhyaWZ0UG9ydD4KICA8IS0tIAogICB+IFdoZXRoZXIgb3Igbm90IHRvIHVzZSBhIGZy YW1lZCB0cmFuc3BvcnQgZm9yIFRocmlmdC4gSWYgdGhpcyBvcHRpb24KICAgfiBpcyBzZXQgdG8g dHJ1ZSB0aGVuIHlvdSBtdXN0IGFsc28gdXNlIGEgZnJhbWVkIHRyYW5zcG9ydCBvbiB0aGUgCiAg IH4gY2xpZW50LXNpZGUsIChmcmFtZWQgYW5kIG5vbi1mcmFtZWQgdHJhbnNwb3J0cyBhcmUgbm90 IGNvbXBhdGlibGUpLgogIC0tPgogIDxUaHJpZnRGcmFtZWRUcmFuc3BvcnQ+ZmFsc2U8L1Rocmlm dEZyYW1lZFRyYW5zcG9ydD4KCgogIDwhLS09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09LS0+CiAgPCEtLSBNZW1vcnks IERpc2ssIGFuZCBQZXJmb3JtYW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtLT4KICA8IS0tPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tPgoKICA8IS0tCiAgIH4gQnVmZmVyIHNpemUg dG8gdXNlIHdoZW4gcGVyZm9ybWluZyBjb250aWd1b3VzIGNvbHVtbiBzbGljZXMuIEluY3JlYXNl CiAgIH4gdGhpcyB0byB0aGUgc2l6ZSBvZiB0aGUgY29sdW1uIHNsaWNlcyB5b3UgdHlwaWNhbGx5 IHBlcmZvcm0uIAogICB+IChOYW1lLWJhc2VkIHF1ZXJpZXMgYXJlIHBlcmZvcm1lZCB3aXRoIGEg YnVmZmVyIHNpemUgb2YgCiAgIH4gQ29sdW1uSW5kZXhTaXplSW5LQi4pCiAgLS0+CiAgPFNsaWNl ZEJ1ZmZlclNpemVJbktCPjY0PC9TbGljZWRCdWZmZXJTaXplSW5LQj4KCiAgPCEtLQogICB+IEJ1 ZmZlciBzaXplIHRvIHVzZSB3aGVuIGZsdXNoaW5nIG1lbXRhYmxlcyB0byBkaXNrLiAoT25seSBv bmUgCiAgIH4gbWVtdGFibGUgaXMgZXZlciBmbHVzaGVkIGF0IGEgdGltZS4pIEluY3JlYXNlIChk ZWNyZWFzZSkgdGhlIGluZGV4CiAgIH4gYnVmZmVyIHNpemUgcmVsYXRpdmUgdG8gdGhlIGRhdGEg YnVmZmVyIGlmIHlvdSBoYXZlIGZldyAobWFueSkgCiAgIH4gY29sdW1ucyBwZXIga2V5LiAgQmln Z2VyIGlzIG9ubHkgYmV0dGVyIF9pZl8geW91ciBtZW10YWJsZXMgZ2V0IGxhcmdlCiAgIH4gZW5v dWdoIHRvIHVzZSB0aGUgc3BhY2UuIChDaGVjayBpbiB5b3VyIGRhdGEgZGlyZWN0b3J5IGFmdGVy IHlvdXIKICAgfiBhcHAgaGFzIGJlZW4gcnVubmluZyBsb25nIGVub3VnaC4pIC0tPgogIDxGbHVz aERhdGFCdWZmZXJTaXplSW5NQj4zMjwvRmx1c2hEYXRhQnVmZmVyU2l6ZUluTUI+CiAgPEZsdXNo SW5kZXhCdWZmZXJTaXplSW5NQj44PC9GbHVzaEluZGV4QnVmZmVyU2l6ZUluTUI+CgogIDwhLS0K ICAgfiBBZGQgY29sdW1uIGluZGV4ZXMgdG8gYSByb3cgYWZ0ZXIgaXRzIGNvbnRlbnRzIHJlYWNo IHRoaXMgc2l6ZS4KICAgfiBJbmNyZWFzZSBpZiB5b3VyIGNvbHVtbiB2YWx1ZXMgYXJlIGxhcmdl LCBvciBpZiB5b3UgaGF2ZSBhIHZlcnkgbGFyZ2UKICAgfiBudW1iZXIgb2YgY29sdW1ucy4gIFRo ZSBjb21wZXRpbmcgY2F1c2VzIGFyZSwgQ2Fzc2FuZHJhIGhhcyB0bwogICB+IGRlc2VyaWFsaXpl IHRoaXMgbXVjaCBvZiB0aGUgcm93IHRvIHJlYWQgYSBzaW5nbGUgY29sdW1uLCBzbyB5b3Ugd2Fu dAogICB+IGl0IHRvIGJlIHNtYWxsIC0gYXQgbGVhc3QgaWYgeW91IGRvIG1hbnkgcGFydGlhbC1y b3cgcmVhZHMgLSBidXQgYWxsCiAgIH4gdGhlIGluZGV4IGRhdGEgaXMgcmVhZCBmb3IgZWFjaCBh Y2Nlc3MsIHNvIHlvdSBkb24ndCB3YW50IHRvIGdlbmVyYXRlCiAgIH4gdGhhdCB3YXN0ZWZ1bGx5 IGVpdGhlci4KICAtLT4KICA8Q29sdW1uSW5kZXhTaXplSW5LQj42NDwvQ29sdW1uSW5kZXhTaXpl SW5LQj4KCiAgPCEtLQogICB+IFRoZSBtYXhpbXVtIGFtb3VudCBvZiBkYXRhIHRvIHN0b3JlIGlu IG1lbW9yeSBwZXIgQ29sdW1uRmFtaWx5IGJlZm9yZQogICB+IGZsdXNoaW5nIHRvIGRpc2suICBO b3RlOiBUaGVyZSBpcyBvbmUgbWVtdGFibGUgcGVyIGNvbHVtbiBmYW1pbHksIGFuZCAKICAgfiB0 aGlzIHRocmVzaG9sZCBpcyBiYXNlZCBzb2xlbHkgb24gdGhlIGFtb3VudCBvZiBkYXRhIHN0b3Jl ZCwgbm90CiAgIH4gYWN0dWFsIGhlYXAgbWVtb3J5IHVzYWdlICh0aGVyZSBpcyBzb21lIG92ZXJo ZWFkIGluIGluZGV4aW5nIHRoZQogICB+IGNvbHVtbnMpLgogIC0tPgogIDxNZW10YWJsZVNpemVJ bk1CPjE1MzY8L01lbXRhYmxlU2l6ZUluTUI+CgogIDwhLS0KICAgfiBUaGUgbWF4aW11bSBudW1i ZXIgb2YgY29sdW1ucyBpbiBtaWxsaW9ucyB0byBzdG9yZSBpbiBtZW1vcnkgcGVyCiAgIH4gQ29s dW1uRmFtaWx5IGJlZm9yZSBmbHVzaGluZyB0byBkaXNrLiAgVGhpcyBpcyBhbHNvIGEgcGVyLW1l bXRhYmxlCiAgIH4gc2V0dGluZy4gIFVzZSB3aXRoIE1lbXRhYmxlU2l6ZUluTUIgdG8gdHVuZSBt ZW1vcnkgdXNhZ2UuCiAgLS0+CiAgPE1lbXRhYmxlT2JqZWN0Q291bnRJbk1pbGxpb25zPjAuMTwv TWVtdGFibGVPYmplY3RDb3VudEluTWlsbGlvbnM+CiAgPCEtLQogICB+IFRoZSBtYXhpbXVtIHRp bWUgdG8gbGVhdmUgYSBkaXJ0eSBtZW10YWJsZSB1bmZsdXNoZWQuCiAgIH4gKFdoaWxlIGFueSBh ZmZlY3RlZCBjb2x1bW5mYW1pbGllcyBoYXZlIHVuZmx1c2hlZCBkYXRhIGZyb20gYQogICB+IGNv bW1pdCBsb2cgc2VnbWVudCwgdGhhdCBzZWdtZW50IGNhbm5vdCBiZSBkZWxldGVkLikKICAgfiBU aGlzIG5lZWRzIHRvIGJlIGxhcmdlIGVub3VnaCB0aGF0IGl0IHdvbid0IGNhdXNlIGEgZmx1c2gg c3Rvcm0KICAgfiBvZiBhbGwgeW91ciBtZW10YWJsZXMgZmx1c2hpbmcgYXQgb25jZSBiZWNhdXNl IG5vbmUgaGFzIGhpdAogICB+IHRoZSBzaXplIG9yIGNvdW50IHRocmVzaG9sZHMgeWV0LiAgRm9y IHByb2R1Y3Rpb24sIGEgbGFyZ2VyCiAgIH4gdmFsdWUgc3VjaCBhcyAxNDQwIGlzIHJlY29tbWVu ZGVkLgogIC0tPgogIDxNZW10YWJsZUZsdXNoQWZ0ZXJNaW51dGVzPjE0NDA8L01lbXRhYmxlRmx1 c2hBZnRlck1pbnV0ZXM+CgogIDwhLS0KICAgfiBVbmxpa2UgbW9zdCBzeXN0ZW1zLCBpbiBDYXNz YW5kcmEgd3JpdGVzIGFyZSBmYXN0ZXIgdGhhbiByZWFkcywgc28KICAgfiB5b3UgY2FuIGFmZm9y ZCBtb3JlIG9mIHRob3NlIGluIHBhcmFsbGVsLiAgQSBnb29kIHJ1bGUgb2YgdGh1bWIgaXMgMgog ICB+IGNvbmN1cnJlbnQgcmVhZHMgcGVyIHByb2Nlc3NvciBjb3JlLiAgSW5jcmVhc2UgQ29uY3Vy cmVudFdyaXRlcyB0bwogICB+IHRoZSBudW1iZXIgb2YgY2xpZW50cyB3cml0aW5nIGF0IG9uY2Ug aWYgeW91IGVuYWJsZSBDb21taXRMb2dTeW5jICsKICAgfiBDb21taXRMb2dTeW5jRGVsYXkuIC0t PgogIDxDb25jdXJyZW50UmVhZHM+ODwvQ29uY3VycmVudFJlYWRzPgogIDxDb25jdXJyZW50V3Jp dGVzPjMyPC9Db25jdXJyZW50V3JpdGVzPgoKICA8IS0tCiAgIH4gQ29tbWl0TG9nU3luYyBtYXkg YmUgZWl0aGVyICJwZXJpb2RpYyIgb3IgImJhdGNoLiIgIFdoZW4gaW4gYmF0Y2gKICAgfiBtb2Rl LCBDYXNzYW5kcmEgd29uJ3QgYWNrIHdyaXRlcyB1bnRpbCB0aGUgY29tbWl0IGxvZyBoYXMgYmVl bgogICB+IGZzeW5jZWQgdG8gZGlzay4gIEl0IHdpbGwgd2FpdCB1cCB0byBDb21taXRMb2dTeW5j QmF0Y2hXaW5kb3dJbk1TCiAgIH4gbWlsbGlzZWNvbmRzIGZvciBvdGhlciB3cml0ZXMsIGJlZm9y ZSBwZXJmb3JtaW5nIHRoZSBzeW5jLgoKICAgfiBUaGlzIGlzIGxlc3MgbmVjZXNzYXJ5IGluIENh c3NhbmRyYSB0aGFuIGluIHRyYWRpdGlvbmFsIGRhdGFiYXNlcwogICB+IHNpbmNlIHJlcGxpY2F0 aW9uIHJlZHVjZXMgdGhlIG9kZHMgb2YgbG9zaW5nIGRhdGEgZnJvbSBhIGZhaWx1cmUKICAgfiBh ZnRlciB3cml0aW5nIHRoZSBsb2cgZW50cnkgYnV0IGJlZm9yZSBpdCBhY3R1YWxseSByZWFjaGVz IHRoZSBkaXNrLgogICB+IFNvIHRoZSBvdGhlciBvcHRpb24gaXMgInRpbWVkLCIgd2hlcmUgd3Jp dGVzIG1heSBiZSBhY2tlZCBpbW1lZGlhdGVseQogICB+IGFuZCB0aGUgQ29tbWl0TG9nIGlzIHNp bXBseSBzeW5jZWQgZXZlcnkgQ29tbWl0TG9nU3luY1BlcmlvZEluTVMKICAgfiBtaWxsaXNlY29u ZHMuCiAgLS0+CiAgPENvbW1pdExvZ1N5bmM+cGVyaW9kaWM8L0NvbW1pdExvZ1N5bmM+CiAgPCEt LQogICB+IEludGVydmFsIGF0IHdoaWNoIHRvIHBlcmZvcm0gc3luY3Mgb2YgdGhlIENvbW1pdExv ZyBpbiBwZXJpb2RpYyBtb2RlLgogICB+IFVzdWFsbHkgdGhlIGRlZmF1bHQgb2YgMTAwMG1zIGlz IGZpbmU7IGluY3JlYXNlIGl0IG9ubHkgaWYgdGhlCiAgIH4gQ29tbWl0TG9nIFBlbmRpbmdUYXNr cyBiYWNrbG9nIGluIGpteCBzaG93cyB0aGF0IHlvdSBhcmUgZnJlcXVlbnRseQogICB+IHNjaGVk dWxpbmcgYSBzZWNvbmQgc3luYyB3aGlsZSB0aGUgZmlyc3QgaGFzIG5vdCB5ZXQgYmVlbiBwcm9j ZXNzZWQuCiAgLS0+CiAgPENvbW1pdExvZ1N5bmNQZXJpb2RJbk1TPjEwMDA8L0NvbW1pdExvZ1N5 bmNQZXJpb2RJbk1TPgogIDwhLS0KICAgfiBEZWxheSAoaW4gbWlsbGlzZWNvbmRzKSBkdXJpbmcg d2hpY2ggYWRkaXRpb25hbCBjb21taXQgbG9nIGVudHJpZXMKICAgfiBtYXkgYmUgd3JpdHRlbiBi ZWZvcmUgZnN5bmMgaW4gYmF0Y2ggbW9kZS4gIFRoaXMgd2lsbCBpbmNyZWFzZQogICB+IGxhdGVu Y3kgc2xpZ2h0bHksIGJ1dCBjYW4gdmFzdGx5IGltcHJvdmUgdGhyb3VnaHB1dCB3aGVyZSB0aGVy ZSBhcmUKICAgfiBtYW55IHdyaXRlcnMuICBTZXQgdG8gemVybyB0byBkaXNhYmxlIChlYWNoIGVu dHJ5IHdpbGwgYmUgc3luY2VkCiAgIH4gaW5kaXZpZHVhbGx5KS4gIFJlYXNvbmFibGUgdmFsdWVz IHJhbmdlIGZyb20gYSBtaW5pbWFsIDAuMSB0byAxMCBvcgogICB+IGV2ZW4gbW9yZSBpZiB0aHJv dWdocHV0IG1hdHRlcnMgbW9yZSB0aGFuIGxhdGVuY3kuCiAgLS0+CiAgPCEtLSA8Q29tbWl0TG9n U3luY0JhdGNoV2luZG93SW5NUz4xPC9Db21taXRMb2dTeW5jQmF0Y2hXaW5kb3dJbk1TPiAtLT4g CgogIDwhLS0KICAgfiBUaW1lIHRvIHdhaXQgYmVmb3JlIGdhcmJhZ2UtY29sbGVjdGlvbiBkZWxl dGlvbiBtYXJrZXJzLiAgU2V0IHRoaXMgdG8KICAgfiBhIGxhcmdlIGVub3VnaCB2YWx1ZSB0aGF0 IHlvdSBhcmUgY29uZmlkZW50IHRoYXQgdGhlIGRlbGV0aW9uIG1hcmtlcgogICB+IHdpbGwgYmUg cHJvcGFnYXRlZCB0byBhbGwgcmVwbGljYXMgYnkgdGhlIHRpbWUgdGhpcyBtYW55IHNlY29uZHMg aGFzCiAgIH4gZWxhcHNlZCwgZXZlbiBpbiB0aGUgZmFjZSBvZiBoYXJkd2FyZSBmYWlsdXJlcy4g IFRoZSBkZWZhdWx0IHZhbHVlIGlzCiAgIH4gdGVuIGRheXMuCiAgLS0+CiAgPEdDR3JhY2VTZWNv bmRzPjg2NDAwMDwvR0NHcmFjZVNlY29uZHM+CgogIDwhLS0KICAgfiBUaGUgdGhyZXNob2xkIHNp emUgaW4gbWVnYWJ5dGVzIHRoZSBiaW5hcnkgbWVtdGFibGUgbXVzdCBncm93IHRvLAogICB+IGJl Zm9yZSBpdCdzIHN1Ym1pdHRlZCBmb3IgZmx1c2hpbmcgdG8gZGlzay4KICAtLT4KICA8QmluYXJ5 TWVtdGFibGVTaXplSW5NQj4yNTY8L0JpbmFyeU1lbXRhYmxlU2l6ZUluTUI+Cgo8L1N0b3JhZ2U+ Cg== --=_cir-el.real.com-4223-1261005380-0001-2--