This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---559023410-851401618-1118790750=:7508 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: Please review the code and tell me whether you think I can apply it to kdecore or not? Other suggestions? What does it do: It basically adds a new "formatNumber"-method in klocale, which supports arbitrarily large numbers (as QString) and one can switch off rounding. What is it good for? In "kcalc" there was an implementation of such a routine, but I thought let's make it available to everyone, and it is nice to have a formatNumber that only rounds optionally. Thanks Klaus ---559023410-851401618-1118790750=:7508 Content-Type: TEXT/PLAIN; NAME="out.txt" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: ATTACHMENT; FILENAME="out.txt" SW5kZXg6IGtsb2NhbGUuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t IGtsb2NhbGUuaAkocmV2aXNpb24gNDI0MTA0KQ0KKysrIGtsb2NhbGUuaAko d29ya2luZyBjb3B5KQ0KQEAgLTM4OSwxNCArMzg5LDQxIEBADQogICAgKiBl LmcuIGdpdmVuIDEyMzQ1Ni43OEYsIHJldHVybiAiMTIzLDQ1Ni43OCIgKGZv ciBzb21lIEV1cm9wZWFuIGNvdW50cnkpLg0KICAgICogSWYgcHJlY2lzaW9u IGlzbid0IHNwZWNpZmllZCwgMiBpcyB1c2VkLg0KICAgICoNCisgICAqIFRo aXMgZnVuY3Rpb24gaXMgYSB3cmFwcGVyIHRoYXQgaXMgcHJvdmlkZWQgZm9y IGNvbnZlbmllbmNlLg0KKyAgICoNCiAgICAqIEBwYXJhbSBudW0gVGhlIG51 bWJlciB0byBjb252ZXJ0DQogICAgKiBAcGFyYW0gcHJlY2lzaW9uIE51bWJl ciBvZiBmcmFjdGlvbmFsIGRpZ2l0cyB1c2VkLg0KICAgICoNCiAgICAqIEBy ZXR1cm4gVGhlIG51bWJlciBhcyBhIGxvY2FsaXplZCBzdHJpbmcNCisgICAq IEBzZWUgZm9ybWF0TnVtYmVyKGNvbnN0IFFTdHJpbmcsIGJvb2wsIGludCkN CiAgICAqLw0KICAgUVN0cmluZyBmb3JtYXROdW1iZXIoZG91YmxlIG51bSwg aW50IHByZWNpc2lvbiA9IC0xKSBjb25zdDsNCiANCiAgIC8qKg0KKyAgICog QGRlcHJlY2F0ZWQNCisgICAqDQorICAgKiBLREUgNC4wOiBtZXJnZSB3aXRo IGZvcm1hdE51bWJlcihjb25zdCBRU3RyaW5nIGludCkNCisgICAqDQorICAg KiBjYWxscyBmb3JtYXROdW1iZXIobnVtU3RyLCAyKQ0KKyAgICovDQorICBR U3RyaW5nIGZvcm1hdE51bWJlcihjb25zdCBRU3RyaW5nICZudW1TdHIpIGNv bnN0IEtERV9ERVBSRUNBVEVEOw0KKw0KKyAgLyoqDQorICAgKiBHaXZlbiBh IHN0cmluZyByZXByZXNlbnRpbmcgYSBudW1iZXIsIGNvbnZlcnRzIHRoYXQg dG8gYSBudW1lcmljDQorICAgKiBzdHJpbmcgY29udGFpbmluZyB0aGUgbG9j YWxpemVkIG51bWVyaWMgZXF1aXZhbGVudC4NCisgICAqDQorICAgKiBlLmcu IGdpdmVuIDEyMzQ1Ni43OEYsIHJldHVybiAiMTIzLDQ1Ni43OCIgKGZvciBz b21lIEV1cm9wZWFuIGNvdW50cnkpLg0KKyAgICoNCisgICAqIEBwYXJhbSBu dW1TdHIgVGhlIG51bWJlciB0byBjb252ZXJ0DQorICAgKiBAcGFyYW0gcm91 bmQgUm91bmQgIGZyYWN0aW9uYWwgZGlnaXRzLg0KKyAgICogQHBhcmFtIHBy ZWNpc2lvbiBOdW1iZXIgb2YgZnJhY3Rpb25hbCBkaWdpdHMgdXNlZC4NCisg ICAqDQorICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgYXMgYSBsb2NhbGl6ZWQg c3RyaW5nDQorICAgKiBAc2luY2UgMy41DQorICAgKi8NCisgIFFTdHJpbmcg Zm9ybWF0TnVtYmVyKGNvbnN0IFFTdHJpbmcgJm51bVN0ciwgYm9vbCByb3Vu ZCwgaW50IHByZWNpc2lvbikgY29uc3Q7DQorDQorICAvKioNCiAgICAqIEdp dmVuIGFuIGludGVnZXIsIGNvbnZlcnRzIHRoYXQgdG8gYSBudW1lcmljIHN0 cmluZyBjb250YWluaW5nDQogICAgKiB0aGUgbG9jYWxpemVkIG51bWVyaWMg ZXF1aXZhbGVudC4NCiAgICAqDQpAQCAtMTExOCwxMiArMTE0NSw2IEBADQog DQogICAvKioNCiAgICAqIEBkZXByZWNhdGVkDQotICAgKiB1c2UgZm9ybWF0 TnVtYmVyKGRvdWJsZSkNCi0gICAqLw0KLSAgUVN0cmluZyBmb3JtYXROdW1i ZXIoY29uc3QgUVN0cmluZyAmbnVtU3RyKSBjb25zdCBLREVfREVQUkVDQVRF RDsNCi0NCi0gIC8qKg0KLSAgICogQGRlcHJlY2F0ZWQNCiAgICAqIFVzZSBs YW5ndWFnZUxpc3QoKQ0KICAgICoNCiAgICAqIEByZXR1cm4gU3RyaW5nIGNv bnRhaW5pbmcgbGFuZ3VhZ2UgY29kZXMgc2VwYXJhdGVkIGJ5IGNvbG9ucw0K SW5kZXg6IHRlc3RzL2tsb2NhbGV0ZXN0LmNwcA0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KLS0tIHRlc3RzL2tsb2NhbGV0ZXN0LmNwcAkocmV2aXNpb24g NDI0MTA0KQ0KKysrIHRlc3RzL2tsb2NhbGV0ZXN0LmNwcAkod29ya2luZyBj b3B5KQ0KQEAgLTExNCw2ICsxMTQsMTcgQEANCiAgIGZvcm1hdHRlZCA9IEtH bG9iYWw6OmxvY2FsZSgpLT5mb3JtYXROdW1iZXIoIDcwLjI0NSApOyBjaGVj aygiZm9ybWF0TnVtYmVyKDcwLjI0NSkiLGZvcm1hdHRlZCwiNzAuMjUiKTsg Lypyb3VuZGVkKi8NCiAgIGZvcm1hdHRlZCA9IEtHbG9iYWw6OmxvY2FsZSgp LT5mb3JtYXROdW1iZXIoMTIzNDU2Ny44OTEyMzQ1Njc4OSw4KTsgY2hlY2so ImZvcm1hdE51bWJlcigxMjM0NTY3Ljg5MTIzNDU2Nzg5LDgpIixmb3JtYXR0 ZWQsIjEsMjM0LDU2Ny44OTEyMzQ1NyIpOw0KIA0KKyAgZm9ybWF0dGVkID0g S0dsb2JhbDo6bG9jYWxlKCktPmZvcm1hdE51bWJlcigiNzAiKTsgY2hlY2so ImZvcm1hdE51bWJlcihcIjcwXCIpIixmb3JtYXR0ZWQsIjcwLjAwIik7DQor ICBmb3JtYXR0ZWQgPSBLR2xvYmFsOjpsb2NhbGUoKS0+Zm9ybWF0TnVtYmVy KCI3MCIsIHRydWUsIDIpOyBjaGVjaygiZm9ybWF0TnVtYmVyKFwiNzBcIiwg dHJ1ZSwgMikiLGZvcm1hdHRlZCwiNzAuMDAiKTsNCisgIGZvcm1hdHRlZCA9 IEtHbG9iYWw6OmxvY2FsZSgpLT5mb3JtYXROdW1iZXIoIjcwIiwgdHJ1ZSwg MCk7IGNoZWNrKCJmb3JtYXROdW1iZXIoXCI3MFwiLCB0cnVlLCAwKSIsZm9y bWF0dGVkLCI3MCIpOw0KKyAgZm9ybWF0dGVkID0gS0dsb2JhbDo6bG9jYWxl KCktPmZvcm1hdE51bWJlcigiLTcwLjIiLCB0cnVlLCAyKTsgY2hlY2soImZv cm1hdE51bWJlcihcIi03MC4yXCIsIHRydWUsIDIpIixmb3JtYXR0ZWQsIi03 MC4yMCIpOw0KKyAgZm9ybWF0dGVkID0gS0dsb2JhbDo6bG9jYWxlKCktPmZv cm1hdE51bWJlcigiKzcwLjI0IiwgdHJ1ZSwgMik7IGNoZWNrKCJmb3JtYXRO dW1iZXIoXCIrNzAuMjRcIiwgdHJ1ZSwgMikiLGZvcm1hdHRlZCwiNzAuMjQi KTsNCisgIGZvcm1hdHRlZCA9IEtHbG9iYWw6OmxvY2FsZSgpLT5mb3JtYXRO dW1iZXIoIjcwLjI0NSIsIHRydWUsIDIpOyBjaGVjaygiZm9ybWF0TnVtYmVy KFwiNzAuMjQ1XCIsIHRydWUsIDIpIixmb3JtYXR0ZWQsIjcwLjI1Iik7IC8q cm91bmRlZCovDQorICBmb3JtYXR0ZWQgPSBLR2xvYmFsOjpsb2NhbGUoKS0+ Zm9ybWF0TnVtYmVyKCI5OS45OTYiLCB0cnVlLCAyKTsgY2hlY2soImZvcm1h dE51bWJlcihcIjk5Ljk5NlwiLCB0cnVlLCAyKSIsZm9ybWF0dGVkLCIxMDAu MDAiKTsgLypyb3VuZGVkKi8NCisgIGZvcm1hdHRlZCA9IEtHbG9iYWw6Omxv Y2FsZSgpLT5mb3JtYXROdW1iZXIoIjEyMzQ1Njc4OTAxMjM0NTY3Ljg5MTIz NDU2Nzg5IiwgZmFsc2UsIDApOyBjaGVjaygiZm9ybWF0TnVtYmVyKFwiMTIz NDU2Nzg5MDEyMzQ1NjcuODkxMjM0NTY3ODlcIiwgZmFsc2UsIDApIixmb3Jt YXR0ZWQsIjEyLDM0NSw2NzgsOTAxLDIzNCw1NjcuODkxMjM0NTY3ODkiKTsN CisNCisNCisNCiAgIGRvdWJsZSBudW07DQogICBib29sIG9rOw0KICAgbnVt ID0gS0dsb2JhbDo6bG9jYWxlKCktPnJlYWROdW1iZXIoICIxMiwxIiwgJm9r ICk7IGNoZWNrKCJyZWFkTnVtYmVyKDEyLDEpIixvaz8ieWVzIjoibm8iLCJu byIpOw0KSW5kZXg6IGtsb2NhbGUuY3BwDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQotLS0ga2xvY2FsZS5jcHAJKHJldmlzaW9uIDQyNDEwNCkNCisrKyBr bG9jYWxlLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTExNzEsMjAgKzExNzEs OCBAQA0KIA0KIFFTdHJpbmcgS0xvY2FsZTo6Zm9ybWF0TnVtYmVyKGRvdWJs ZSBudW0sIGludCBwcmVjaXNpb24pIGNvbnN0DQogew0KLSAgYm9vbCBuZWcg PSBudW0gPCAwOw0KICAgaWYgKHByZWNpc2lvbiA9PSAtMSkgcHJlY2lzaW9u ID0gMjsNCi0gIFFTdHJpbmcgcmVzID0gUVN0cmluZzo6bnVtYmVyKG5lZz8t bnVtOm51bSwgJ2YnLCBwcmVjaXNpb24pOw0KLSAgaW50IHBvcyA9IHJlcy5m aW5kKCcuJyk7DQotICBpZiAocG9zID09IC0xKSBwb3MgPSByZXMubGVuZ3Ro KCk7DQotICBlbHNlIHJlcy5yZXBsYWNlKHBvcywgMSwgZGVjaW1hbFN5bWJv bCgpKTsNCi0NCi0gIHdoaWxlICgwIDwgKHBvcyAtPSAzKSkNCi0gICAgcmVz Lmluc2VydChwb3MsIHRob3VzYW5kc1NlcGFyYXRvcigpKTsgLy8gdGhvdXNh bmQgc2VwDQotDQotICAvLyBIb3cgY2FuIHdlIGtub3cgd2hlcmUgd2Ugc2hv dWxkIHB1dCB0aGUgc2lnbj8NCi0gIHJlcy5wcmVwZW5kKG5lZz9uZWdhdGl2 ZVNpZ24oKTpwb3NpdGl2ZVNpZ24oKSk7DQotDQotICByZXR1cm4gcmVzOw0K KyAgcmV0dXJuIGZvcm1hdE51bWJlcihRU3RyaW5nOjpudW1iZXIobnVtLCAn ZicsIHByZWNpc2lvbiksIGZhbHNlLCAwKTsNCiB9DQogDQogUVN0cmluZyBL TG9jYWxlOjpmb3JtYXRMb25nKGxvbmcgbnVtKSBjb25zdA0KQEAgLTExOTQs OSArMTE4MiwxNDMgQEANCiANCiBRU3RyaW5nIEtMb2NhbGU6OmZvcm1hdE51 bWJlcihjb25zdCBRU3RyaW5nICZudW1TdHIpIGNvbnN0DQogew0KLSAgcmV0 dXJuIGZvcm1hdE51bWJlcihudW1TdHIudG9Eb3VibGUoKSk7DQorICByZXR1 cm4gZm9ybWF0TnVtYmVyKG51bVN0ciwgdHJ1ZSwgMik7DQogfQ0KIA0KKy8v IGluY3JlYXNlIHRoZSBkaWdpdCBhdCAncG9zaXRpb24nIGJ5IG9uZQ0KK3N0 YXRpYyB2b2lkIF9pbmNfYnlfb25lKFFTdHJpbmcgJnN0ciwgaW50IHBvc2l0 aW9uKQ0KK3sNCisgIGZvciAoaW50IGkgPSBwb3NpdGlvbjsgaSA+PSAwOyBp LS0pDQorICAgIHsNCisgICAgICBjaGFyIGxhc3RfY2hhciA9IHN0cltpXS5s YXRpbjEoKTsNCisgICAgICBzd2l0Y2gobGFzdF9jaGFyKQ0KKwl7DQorCWNh c2UgJzAnOg0KKwkgIHN0cltpXSA9ICcxJzsNCisJICBicmVhazsNCisJY2Fz ZSAnMSc6DQorCSAgc3RyW2ldID0gJzInOw0KKwkgIGJyZWFrOw0KKwljYXNl ICcyJzoNCisJICBzdHJbaV0gPSAnMyc7DQorCSAgYnJlYWs7DQorCWNhc2Ug JzMnOg0KKwkgIHN0cltpXSA9ICc0JzsNCisJICBicmVhazsNCisJY2FzZSAn NCc6DQorCSAgc3RyW2ldID0gJzUnOw0KKwkgIGJyZWFrOw0KKwljYXNlICc1 JzoNCisJICBzdHJbaV0gPSAnNic7DQorCSAgYnJlYWs7DQorCWNhc2UgJzYn Og0KKwkgIHN0cltpXSA9ICc3JzsNCisJICBicmVhazsNCisJY2FzZSAnNyc6 DQorCSAgc3RyW2ldID0gJzgnOw0KKwkgIGJyZWFrOw0KKwljYXNlICc4JzoN CisJICBzdHJbaV0gPSAnOSc7DQorCSAgYnJlYWs7DQorCWNhc2UgJzknOg0K KwkgIHN0cltpXSA9ICcwJzsNCisJICBpZiAoaSA9PSAwKSBzdHIucHJlcGVu ZCgnMScpOw0KKwkgIGNvbnRpbnVlOw0KKwljYXNlICcuJzoNCisJICBjb250 aW51ZTsNCisJfQ0KKyAgICAgIGJyZWFrOw0KKyAgICB9DQorfQ0KKw0KK3N0 YXRpYyB2b2lkIF9yb3VuZChRU3RyaW5nICZzdHIsIGludCBwcmVjaXNpb24p DQorew0KKyAgLy8gQ3V0IG9mZiBpZiBtb3JlIGRpZ2l0cyBpbiBmcmFjdGlv bmFsIHBhcnQgdGhhbiAncHJlY2lzaW9uJw0KKyAgaW50IGRlY2ltYWxTeW1i b2xQb3MgPSBzdHIuZmluZCgnLicpOw0KKw0KKyAgaWYgKHByZWNpc2lvbiA9 PSAwICAmJiBkZWNpbWFsU3ltYm9sUG9zID09IC0xKSByZXR1cm47DQorICAg ICAgDQorICAvLyBhZGQgZG90IGlmIG1pc3NpbmcgKGFuZCBuZWVkZWQpDQor ICBpZiAoZGVjaW1hbFN5bWJvbFBvcyA9PSAtMSAgJiYgIHByZWNpc2lvbiA+ IDApDQorICAgIHsNCisgICAgICBzdHIuYXBwZW5kKCcuJyk7DQorICAgICAg ZGVjaW1hbFN5bWJvbFBvcyA9IHN0ci5sZW5ndGgoKSAtIDE7DQorICAgIH0N CisNCisgIC8vIGZpbGwgdXAgd2l0aCBtb3JlIHRoYW4gZW5vdWdoIHplcm9l cyAoaW4gY2FzZSBudW1iZXIgdG9vIHNob3J0KQ0KKyAgc3RyLmFwcGVuZChR U3RyaW5nKCkuZmlsbCgnMCcsIHByZWNpc2lvbikpOw0KKw0KKyAgLy8gTm93 IGRlY2lkZSB3aGV0aGVyIHRvIHJvdW5kIHVwIG9yIGRvd24NCisgIGNoYXIg bGFzdF9jaGFyID0gc3RyW2RlY2ltYWxTeW1ib2xQb3MgKyBwcmVjaXNpb24g KyAxXS5sYXRpbjEoKTsNCisgIHN3aXRjaCAobGFzdF9jaGFyKQ0KKyAgICB7 DQorICAgIGNhc2UgJzAnOg0KKyAgICBjYXNlICcxJzoNCisgICAgY2FzZSAn Mic6DQorICAgIGNhc2UgJzMnOg0KKyAgICBjYXNlICc0JzoNCisgICAgICAv LyBub3RoaW5nIHRvIGRvLCByb3VuZGluZyBkb3duDQorICAgICAgYnJlYWs7 DQorICAgIGNhc2UgJzUnOg0KKyAgICBjYXNlICc2JzoNCisgICAgY2FzZSAn Nyc6DQorICAgIGNhc2UgJzgnOg0KKyAgICBjYXNlICc5JzoNCisgICAgICBf aW5jX2J5X29uZShzdHIsIGRlY2ltYWxTeW1ib2xQb3MgKyBwcmVjaXNpb24p Ow0KKyAgICAgIGJyZWFrOw0KKyAgICBkZWZhdWx0Og0KKyAgICAgIGJyZWFr Ow0KKyAgICB9DQorDQorICBkZWNpbWFsU3ltYm9sUG9zID0gc3RyLmZpbmQo Jy4nKTsNCisgIHN0ci50cnVuY2F0ZShkZWNpbWFsU3ltYm9sUG9zICsgcHJl Y2lzaW9uICsgMSk7DQorICANCisgIC8vIGlmIHByZWNpc2lvbiA9PSAwIGRl bGV0ZSBhbHNvICcuJw0KKyAgaWYgKHByZWNpc2lvbiA9PSAwKSBzdHIgPSBz dHIuc2VjdGlvbignLicsIDAsIDApOw0KK30NCisNCisNCitRU3RyaW5nIEtM b2NhbGU6OmZvcm1hdE51bWJlcihjb25zdCBRU3RyaW5nICZudW1TdHIsIGJv b2wgcm91bmQsDQorCQkJICAgICAgaW50IHByZWNpc2lvbikgY29uc3QNCit7 DQorICBRU3RyaW5nIHRtcFN0cmluZyA9IG51bVN0cjsNCisgIGlmICgocm91 bmQgICYmIHByZWNpc2lvbiA8IDApICB8fA0KKyAgICAgICEgUVJlZ0V4cCgi XlsrLV0/XFxkKyhcXC5cXGQrKSooZVsrLV0/XFxkKyk/JCIpLmV4YWN0TWF0 Y2godG1wU3RyaW5nKSkNCisgICAgcmV0dXJuIG51bVN0cjsNCisNCisgIA0K KyAgLy8gU2tpcCB0aGUgc2lnbiAoZm9yIG5vdykNCisgIGlmICh0bXBTdHJp bmdbMF0gPT0gJysnKSAgdG1wU3RyaW5nLnJlbW92ZSgwLCAxKTsNCisgIGJv b2wgbmVnID0gKHRtcFN0cmluZ1swXSA9PSAnLScpOw0KKyAgaWYgKG5lZykg dG1wU3RyaW5nLnJlbW92ZSgwLCAxKTsNCisNCisgIC8vIFNwbGl0IG9mZiBl eHBvbmVudGlhbCBwYXJ0IChpbmNsdWRpbmcgJ2UnLXN5bWJvbCkNCisgIFFT dHJpbmcgbWFudFN0cmluZyA9IHRtcFN0cmluZy5zZWN0aW9uKCdlJywgMCwg MCwNCisJCQkJCSBRU3RyaW5nOjpTZWN0aW9uQ2FzZUluc2Vuc2l0aXZlU2Vw cyk7DQorICBRU3RyaW5nIGV4cFN0cmluZyA9IHRtcFN0cmluZy5zZWN0aW9u KCdlJywgMSwgMSwNCisJCQkJCVFTdHJpbmc6OlNlY3Rpb25DYXNlSW5zZW5z aXRpdmVTZXBzIHwNCisJCQkJCVFTdHJpbmc6OlNlY3Rpb25JbmNsdWRlTGVh ZGluZ1NlcCk7DQorDQorICBpZiAocm91bmQpIF9yb3VuZChtYW50U3RyaW5n LCBwcmVjaXNpb24pOw0KKyANCisgIC8vIFJlcGxhY2UgZG90IHdpdGggbG9j YWxlIGRlY2ltYWwgc2VwYXJhdG9yDQorICBtYW50U3RyaW5nLnJlcGxhY2Uo UUNoYXIoJy4nKSwgZGVjaW1hbFN5bWJvbCgpKTsNCisgIA0KKyAgLy8gSW5z ZXJ0IHRoZSB0aG91c2FuZCBzZXBhcmF0b3JzDQorICBpbnQgcG9zID0gbWFu dFN0cmluZy5maW5kKGRlY2ltYWxTeW1ib2woKSk7DQorICBpZiAocG9zID09 IC0xKSBwb3MgPSBtYW50U3RyaW5nLmxlbmd0aCgpOw0KKyAgcG9zIC0tOw0K Kw0KKyAgZm9yIChpbnQgaW5kZXg9MTsgcG9zPjA7IHBvcy0tLCBpbmRleCsr KQ0KKyAgICBpZiAoaW5kZXglMyA9PSAwKQ0KKyAgICAgIG1hbnRTdHJpbmcu aW5zZXJ0KHBvcywgdGhvdXNhbmRzU2VwYXJhdG9yKCkpOw0KKw0KKyAgLy8g SG93IGNhbiB3ZSBrbm93IHdoZXJlIHdlIHNob3VsZCBwdXQgdGhlIHNpZ24/ DQorICBtYW50U3RyaW5nLnByZXBlbmQobmVnP25lZ2F0aXZlU2lnbigpOnBv c2l0aXZlU2lnbigpKTsNCisgIA0KKyAgcmV0dXJuIG1hbnRTdHJpbmcgKyAg ZXhwU3RyaW5nOw0KK30NCisNCiBRU3RyaW5nIEtMb2NhbGU6OmZvcm1hdERh dGUoY29uc3QgUURhdGUgJnBEYXRlLCBib29sIHNob3J0Rm9ybWF0KSBjb25z dA0KIHsNCiAgIGNvbnN0IFFTdHJpbmcgcnN0ID0gc2hvcnRGb3JtYXQ/ZGF0 ZUZvcm1hdFNob3J0KCk6ZGF0ZUZvcm1hdCgpOw0K ---559023410-851401618-1118790750=:7508--