From 090af50b0436faaff6cf19359ceb6f37429df585 Mon Sep 17 00:00:00 2001 From: Jonathan Warren Date: Sun, 25 Nov 2012 19:36:29 -0500 Subject: [PATCH 1/2] added the Can icon and added my icons folder to the repo --- bitmessage_icons.qrc | 2 + bitmessage_icons_rc.py | 527 ++++++++++++++++++++++++++++++++++++++- bitmessagemain.py | 5 +- bitmessageui.py | 61 ++--- bitmessageui.ui | 4 + images/addressbook.png | Bin 0 -> 673 bytes images/blacklist.png | Bin 0 -> 752 bytes images/can-icon-16px.png | Bin 0 -> 3602 bytes images/can-icon-24px.png | Bin 0 -> 4260 bytes images/greenicon.png | Bin 0 -> 3370 bytes images/identities.png | Bin 0 -> 870 bytes images/inbox.png | Bin 0 -> 687 bytes images/networkstatus.png | Bin 0 -> 629 bytes images/redicon.png | Bin 0 -> 3295 bytes images/send.png | Bin 0 -> 823 bytes images/sent.png | Bin 0 -> 548 bytes images/subscriptions.png | Bin 0 -> 631 bytes images/yellowicon.png | Bin 0 -> 3293 bytes 18 files changed, 558 insertions(+), 41 deletions(-) create mode 100644 images/addressbook.png create mode 100644 images/blacklist.png create mode 100644 images/can-icon-16px.png create mode 100644 images/can-icon-24px.png create mode 100644 images/greenicon.png create mode 100644 images/identities.png create mode 100644 images/inbox.png create mode 100644 images/networkstatus.png create mode 100644 images/redicon.png create mode 100644 images/send.png create mode 100644 images/sent.png create mode 100644 images/subscriptions.png create mode 100644 images/yellowicon.png diff --git a/bitmessage_icons.qrc b/bitmessage_icons.qrc index 57521a84..62ece6fb 100644 --- a/bitmessage_icons.qrc +++ b/bitmessage_icons.qrc @@ -1,5 +1,7 @@ + images/can-icon-24px.png + images/can-icon-16px.png images/greenicon.png images/redicon.png images/yellowicon.png diff --git a/bitmessage_icons_rc.py b/bitmessage_icons_rc.py index 192d7e43..1c240851 100644 --- a/bitmessage_icons_rc.py +++ b/bitmessage_icons_rc.py @@ -2,7 +2,7 @@ # Resource object code # -# Created: Fri Nov 2 17:44:30 2012 +# Created: Sun Nov 25 19:28:49 2012 # by: The Resource Compiler for PyQt (Qt v4.8.3) # # WARNING! All changes made in this file will be lost! @@ -354,6 +354,234 @@ qt_resource_data = "\ \xe3\xf6\x5a\x27\x1b\x9e\x98\xc0\x6f\x01\x06\x00\x48\xae\x45\x78\ \x60\x4e\x1f\xe2\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ +\x00\x00\x0e\x12\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x0a\x4d\x69\x43\x43\x50\x50\x68\x6f\ +\x74\x6f\x73\x68\x6f\x70\x20\x49\x43\x43\x20\x70\x72\x6f\x66\x69\ +\x6c\x65\x00\x00\x78\xda\x9d\x53\x77\x58\x93\xf7\x16\x3e\xdf\xf7\ +\x65\x0f\x56\x42\xd8\xf0\xb1\x97\x6c\x81\x00\x22\x23\xac\x08\xc8\ +\x10\x59\xa2\x10\x92\x00\x61\x84\x10\x12\x40\xc5\x85\x88\x0a\x56\ +\x14\x15\x11\x9c\x48\x55\xc4\x82\xd5\x0a\x48\x9d\x88\xe2\xa0\x28\ +\xb8\x67\x41\x8a\x88\x5a\x8b\x55\x5c\x38\xee\x1f\xdc\xa7\xb5\x7d\ +\x7a\xef\xed\xed\xfb\xd7\xfb\xbc\xe7\x9c\xe7\xfc\xce\x79\xcf\x0f\ +\x80\x11\x12\x26\x91\xe6\xa2\x6a\x00\x39\x52\x85\x3c\x3a\xd8\x1f\ +\x8f\x4f\x48\xc4\xc9\xbd\x80\x02\x15\x48\xe0\x04\x20\x10\xe6\xcb\ +\xc2\x67\x05\xc5\x00\x00\xf0\x03\x79\x78\x7e\x74\xb0\x3f\xfc\x01\ +\xaf\x6f\x00\x02\x00\x70\xd5\x2e\x24\x12\xc7\xe1\xff\x83\xba\x50\ +\x26\x57\x00\x20\x91\x00\xe0\x22\x12\xe7\x0b\x01\x90\x52\x00\xc8\ +\x2e\x54\xc8\x14\x00\xc8\x18\x00\xb0\x53\xb3\x64\x0a\x00\x94\x00\ +\x00\x6c\x79\x7c\x42\x22\x00\xaa\x0d\x00\xec\xf4\x49\x3e\x05\x00\ +\xd8\xa9\x93\xdc\x17\x00\xd8\xa2\x1c\xa9\x08\x00\x8d\x01\x00\x99\ +\x28\x47\x24\x02\x40\xbb\x00\x60\x55\x81\x52\x2c\x02\xc0\xc2\x00\ +\xa0\xac\x40\x22\x2e\x04\xc0\xae\x01\x80\x59\xb6\x32\x47\x02\x80\ +\xbd\x05\x00\x76\x8e\x58\x90\x0f\x40\x60\x00\x80\x99\x42\x2c\xcc\ +\x00\x20\x38\x02\x00\x43\x1e\x13\xcd\x03\x20\x4c\x03\xa0\x30\xd2\ +\xbf\xe0\xa9\x5f\x70\x85\xb8\x48\x01\x00\xc0\xcb\x95\xcd\x97\x4b\ +\xd2\x33\x14\xb8\x95\xd0\x1a\x77\xf2\xf0\xe0\xe2\x21\xe2\xc2\x6c\ +\xb1\x42\x61\x17\x29\x10\x66\x09\xe4\x22\x9c\x97\x9b\x23\x13\x48\ +\xe7\x03\x4c\xce\x0c\x00\x00\x1a\xf9\xd1\xc1\xfe\x38\x3f\x90\xe7\ +\xe6\xe4\xe1\xe6\x66\xe7\x6c\xef\xf4\xc5\xa2\xfe\x6b\xf0\x6f\x22\ +\x3e\x21\xf1\xdf\xfe\xbc\x8c\x02\x04\x00\x10\x4e\xcf\xef\xda\x5f\ +\xe5\xe5\xd6\x03\x70\xc7\x01\xb0\x75\xbf\x6b\xa9\x5b\x00\xda\x56\ +\x00\x68\xdf\xf9\x5d\x33\xdb\x09\xa0\x5a\x0a\xd0\x7a\xf9\x8b\x79\ +\x38\xfc\x40\x1e\x9e\xa1\x50\xc8\x3c\x1d\x1c\x0a\x0b\x0b\xed\x25\ +\x62\xa1\xbd\x30\xe3\x8b\x3e\xff\x33\xe1\x6f\xe0\x8b\x7e\xf6\xfc\ +\x40\x1e\xfe\xdb\x7a\xf0\x00\x71\x9a\x40\x99\xad\xc0\xa3\x83\xfd\ +\x71\x61\x6e\x76\xae\x52\x8e\xe7\xcb\x04\x42\x31\x6e\xf7\xe7\x23\ +\xfe\xc7\x85\x7f\xfd\x8e\x29\xd1\xe2\x34\xb1\x5c\x2c\x15\x8a\xf1\ +\x58\x89\xb8\x50\x22\x4d\xc7\x79\xb9\x52\x91\x44\x21\xc9\x95\xe2\ +\x12\xe9\x7f\x32\xf1\x1f\x96\xfd\x09\x93\x77\x0d\x00\xac\x86\x4f\ +\xc0\x4e\xb6\x07\xb5\xcb\x6c\xc0\x7e\xee\x01\x02\x8b\x0e\x58\xd2\ +\x76\x00\x40\x7e\xf3\x2d\x8c\x1a\x0b\x91\x00\x10\x67\x34\x32\x79\ +\xf7\x00\x00\x93\xbf\xf9\x8f\x40\x2b\x01\x00\xcd\x97\xa4\xe3\x00\ +\x00\xbc\xe8\x18\x5c\xa8\x94\x17\x4c\xc6\x08\x00\x00\x44\xa0\x81\ +\x2a\xb0\x41\x07\x0c\xc1\x14\xac\xc0\x0e\x9c\xc1\x1d\xbc\xc0\x17\ +\x02\x61\x06\x44\x40\x0c\x24\xc0\x3c\x10\x42\x06\xe4\x80\x1c\x0a\ +\xa1\x18\x96\x41\x19\x54\xc0\x3a\xd8\x04\xb5\xb0\x03\x1a\xa0\x11\ +\x9a\xe1\x10\xb4\xc1\x31\x38\x0d\xe7\xe0\x12\x5c\x81\xeb\x70\x17\ +\x06\x60\x18\x9e\xc2\x18\xbc\x86\x09\x04\x41\xc8\x08\x13\x61\x21\ +\x3a\x88\x11\x62\x8e\xd8\x22\xce\x08\x17\x99\x8e\x04\x22\x61\x48\ +\x34\x92\x80\xa4\x20\xe9\x88\x14\x51\x22\xc5\xc8\x72\xa4\x02\xa9\ +\x42\x6a\x91\x5d\x48\x23\xf2\x2d\x72\x14\x39\x8d\x5c\x40\xfa\x90\ +\xdb\xc8\x20\x32\x8a\xfc\x8a\xbc\x47\x31\x94\x81\xb2\x51\x03\xd4\ +\x02\x75\x40\xb9\xa8\x1f\x1a\x8a\xc6\xa0\x73\xd1\x74\x34\x0f\x5d\ +\x80\x96\xa2\x6b\xd1\x1a\xb4\x1e\x3d\x80\xb6\xa2\xa7\xd1\x4b\xe8\ +\x75\x74\x00\x7d\x8a\x8e\x63\x80\xd1\x31\x0e\x66\x8c\xd9\x61\x5c\ +\x8c\x87\x45\x60\x89\x58\x1a\x26\xc7\x16\x63\xe5\x58\x35\x56\x8f\ +\x35\x63\x1d\x58\x37\x76\x15\x1b\xc0\x9e\x61\xef\x08\x24\x02\x8b\ +\x80\x13\xec\x08\x5e\x84\x10\xc2\x6c\x82\x90\x90\x47\x58\x4c\x58\ +\x43\xa8\x25\xec\x23\xb4\x12\xba\x08\x57\x09\x83\x84\x31\xc2\x27\ +\x22\x93\xa8\x4f\xb4\x25\x7a\x12\xf9\xc4\x78\x62\x3a\xb1\x90\x58\ +\x46\xac\x26\xee\x21\x1e\x21\x9e\x25\x5e\x27\x0e\x13\x5f\x93\x48\ +\x24\x0e\xc9\x92\xe4\x4e\x0a\x21\x25\x90\x32\x49\x0b\x49\x6b\x48\ +\xdb\x48\x2d\xa4\x53\xa4\x3e\xd2\x10\x69\x9c\x4c\x26\xeb\x90\x6d\ +\xc9\xde\xe4\x08\xb2\x80\xac\x20\x97\x91\xb7\x90\x0f\x90\x4f\x92\ +\xfb\xc9\xc3\xe4\xb7\x14\x3a\xc5\x88\xe2\x4c\x09\xa2\x24\x52\xa4\ +\x94\x12\x4a\x35\x65\x3f\xe5\x04\xa5\x9f\x32\x42\x99\xa0\xaa\x51\ +\xcd\xa9\x9e\xd4\x08\xaa\x88\x3a\x9f\x5a\x49\x6d\xa0\x76\x50\x2f\ +\x53\x87\xa9\x13\x34\x75\x9a\x25\xcd\x9b\x16\x43\xcb\xa4\x2d\xa3\ +\xd5\xd0\x9a\x69\x67\x69\xf7\x68\x2f\xe9\x74\xba\x09\xdd\x83\x1e\ +\x45\x97\xd0\x97\xd2\x6b\xe8\x07\xe9\xe7\xe9\x83\xf4\x77\x0c\x0d\ +\x86\x0d\x83\xc7\x48\x62\x28\x19\x6b\x19\x7b\x19\xa7\x18\xb7\x19\ +\x2f\x99\x4c\xa6\x05\xd3\x97\x99\xc8\x54\x30\xd7\x32\x1b\x99\x67\ +\x98\x0f\x98\x6f\x55\x58\x2a\xf6\x2a\x7c\x15\x91\xca\x12\x95\x3a\ +\x95\x56\x95\x7e\x95\xe7\xaa\x54\x55\x73\x55\x3f\xd5\x79\xaa\x0b\ +\x54\xab\x55\x0f\xab\x5e\x56\x7d\xa6\x46\x55\xb3\x50\xe3\xa9\x09\ +\xd4\x16\xab\xd5\xa9\x1d\x55\xbb\xa9\x36\xae\xce\x52\x77\x52\x8f\ +\x50\xcf\x51\x5f\xa3\xbe\x5f\xfd\x82\xfa\x63\x0d\xb2\x86\x85\x46\ +\xa0\x86\x48\xa3\x54\x63\xb7\xc6\x19\x8d\x21\x16\xc6\x32\x65\xf1\ +\x58\x42\xd6\x72\x56\x03\xeb\x2c\x6b\x98\x4d\x62\x5b\xb2\xf9\xec\ +\x4c\x76\x05\xfb\x1b\x76\x2f\x7b\x4c\x53\x43\x73\xaa\x66\xac\x66\ +\x91\x66\x9d\xe6\x71\xcd\x01\x0e\xc6\xb1\xe0\xf0\x39\xd9\x9c\x4a\ +\xce\x21\xce\x0d\xce\x7b\x2d\x03\x2d\x3f\x2d\xb1\xd6\x6a\xad\x66\ +\xad\x7e\xad\x37\xda\x7a\xda\xbe\xda\x62\xed\x72\xed\x16\xed\xeb\ +\xda\xef\x75\x70\x9d\x40\x9d\x2c\x9d\xf5\x3a\x6d\x3a\xf7\x75\x09\ +\xba\x36\xba\x51\xba\x85\xba\xdb\x75\xcf\xea\x3e\xd3\x63\xeb\x79\ +\xe9\x09\xf5\xca\xf5\x0e\xe9\xdd\xd1\x47\xf5\x6d\xf4\xa3\xf5\x17\ +\xea\xef\xd6\xef\xd1\x1f\x37\x30\x34\x08\x36\x90\x19\x6c\x31\x38\ +\x63\xf0\xcc\x90\x63\xe8\x6b\x98\x69\xb8\xd1\xf0\x84\xe1\xa8\x11\ +\xcb\x68\xba\x91\xc4\x68\xa3\xd1\x49\xa3\x27\xb8\x26\xee\x87\x67\ +\xe3\x35\x78\x17\x3e\x66\xac\x6f\x1c\x62\xac\x34\xde\x65\xdc\x6b\ +\x3c\x61\x62\x69\x32\xdb\xa4\xc4\xa4\xc5\xe4\xbe\x29\xcd\x94\x6b\ +\x9a\x66\xba\xd1\xb4\xd3\x74\xcc\xcc\xc8\x2c\xdc\xac\xd8\xac\xc9\ +\xec\x8e\x39\xd5\x9c\x6b\x9e\x61\xbe\xd9\xbc\xdb\xfc\x8d\x85\xa5\ +\x45\x9c\xc5\x4a\x8b\x36\x8b\xc7\x96\xda\x96\x7c\xcb\x05\x96\x4d\ +\x96\xf7\xac\x98\x56\x3e\x56\x79\x56\xf5\x56\xd7\xac\x49\xd6\x5c\ +\xeb\x2c\xeb\x6d\xd6\x57\x6c\x50\x1b\x57\x9b\x0c\x9b\x3a\x9b\xcb\ +\xb6\xa8\xad\x9b\xad\xc4\x76\x9b\x6d\xdf\x14\xe2\x14\x8f\x29\xd2\ +\x29\xf5\x53\x6e\xda\x31\xec\xfc\xec\x0a\xec\x9a\xec\x06\xed\x39\ +\xf6\x61\xf6\x25\xf6\x6d\xf6\xcf\x1d\xcc\x1c\x12\x1d\xd6\x3b\x74\ +\x3b\x7c\x72\x74\x75\xcc\x76\x6c\x70\xbc\xeb\xa4\xe1\x34\xc3\xa9\ +\xc4\xa9\xc3\xe9\x57\x67\x1b\x67\xa1\x73\x9d\xf3\x35\x17\xa6\x4b\ +\x90\xcb\x12\x97\x76\x97\x17\x53\x6d\xa7\x8a\xa7\x6e\x9f\x7a\xcb\ +\x95\xe5\x1a\xee\xba\xd2\xb5\xd3\xf5\xa3\x9b\xbb\x9b\xdc\xad\xd9\ +\x6d\xd4\xdd\xcc\x3d\xc5\x7d\xab\xfb\x4d\x2e\x9b\x1b\xc9\x5d\xc3\ +\x3d\xef\x41\xf4\xf0\xf7\x58\xe2\x71\xcc\xe3\x9d\xa7\x9b\xa7\xc2\ +\xf3\x90\xe7\x2f\x5e\x76\x5e\x59\x5e\xfb\xbd\x1e\x4f\xb3\x9c\x26\ +\x9e\xd6\x30\x6d\xc8\xdb\xc4\x5b\xe0\xbd\xcb\x7b\x60\x3a\x3e\x3d\ +\x65\xfa\xce\xe9\x03\x3e\xc6\x3e\x02\x9f\x7a\x9f\x87\xbe\xa6\xbe\ +\x22\xdf\x3d\xbe\x23\x7e\xd6\x7e\x99\x7e\x07\xfc\x9e\xfb\x3b\xfa\ +\xcb\xfd\x8f\xf8\xbf\xe1\x79\xf2\x16\xf1\x4e\x05\x60\x01\xc1\x01\ +\xe5\x01\xbd\x81\x1a\x81\xb3\x03\x6b\x03\x1f\x04\x99\x04\xa5\x07\ +\x35\x05\x8d\x05\xbb\x06\x2f\x0c\x3e\x15\x42\x0c\x09\x0d\x59\x1f\ +\x72\x93\x6f\xc0\x17\xf2\x1b\xf9\x63\x33\xdc\x67\x2c\x9a\xd1\x15\ +\xca\x08\x9d\x15\x5a\x1b\xfa\x30\xcc\x26\x4c\x1e\xd6\x11\x8e\x86\ +\xcf\x08\xdf\x10\x7e\x6f\xa6\xf9\x4c\xe9\xcc\xb6\x08\x88\xe0\x47\ +\x6c\x88\xb8\x1f\x69\x19\x99\x17\xf9\x7d\x14\x29\x2a\x32\xaa\x2e\ +\xea\x51\xb4\x53\x74\x71\x74\xf7\x2c\xd6\xac\xe4\x59\xfb\x67\xbd\ +\x8e\xf1\x8f\xa9\x8c\xb9\x3b\xdb\x6a\xb6\x72\x76\x67\xac\x6a\x6c\ +\x52\x6c\x63\xec\x9b\xb8\x80\xb8\xaa\xb8\x81\x78\x87\xf8\x45\xf1\ +\x97\x12\x74\x13\x24\x09\xed\x89\xe4\xc4\xd8\xc4\x3d\x89\xe3\x73\ +\x02\xe7\x6c\x9a\x33\x9c\xe4\x9a\x54\x96\x74\x63\xae\xe5\xdc\xa2\ +\xb9\x17\xe6\xe9\xce\xcb\x9e\x77\x3c\x59\x35\x59\x90\x7c\x38\x85\ +\x98\x12\x97\xb2\x3f\xe5\x83\x20\x42\x50\x2f\x18\x4f\xe5\xa7\x6e\ +\x4d\x1d\x13\xf2\x84\x9b\x85\x4f\x45\xbe\xa2\x8d\xa2\x51\xb1\xb7\ +\xb8\x4a\x3c\x92\xe6\x9d\x56\x95\xf6\x38\xdd\x3b\x7d\x43\xfa\x68\ +\x86\x4f\x46\x75\xc6\x33\x09\x4f\x52\x2b\x79\x91\x19\x92\xb9\x23\ +\xf3\x4d\x56\x44\xd6\xde\xac\xcf\xd9\x71\xd9\x2d\x39\x94\x9c\x94\ +\x9c\xa3\x52\x0d\x69\x96\xb4\x2b\xd7\x30\xb7\x28\xb7\x4f\x66\x2b\ +\x2b\x93\x0d\xe4\x79\xe6\x6d\xca\x1b\x93\x87\xca\xf7\xe4\x23\xf9\ +\x73\xf3\xdb\x15\x6c\x85\x4c\xd1\xa3\xb4\x52\xae\x50\x0e\x16\x4c\ +\x2f\xa8\x2b\x78\x5b\x18\x5b\x78\xb8\x48\xbd\x48\x5a\xd4\x33\xdf\ +\x66\xfe\xea\xf9\x23\x0b\x82\x16\x7c\xbd\x90\xb0\x50\xb8\xb0\xb3\ +\xd8\xb8\x78\x59\xf1\xe0\x22\xbf\x45\xbb\x16\x23\x8b\x53\x17\x77\ +\x2e\x31\x5d\x52\xba\x64\x78\x69\xf0\xd2\x7d\xcb\x68\xcb\xb2\x96\ +\xfd\x50\xe2\x58\x52\x55\xf2\x6a\x79\xdc\xf2\x8e\x52\x83\xd2\xa5\ +\xa5\x43\x2b\x82\x57\x34\x95\xa9\x94\xc9\xcb\x6e\xae\xf4\x5a\xb9\ +\x63\x15\x61\x95\x64\x55\xef\x6a\x97\xd5\x5b\x56\x7f\x2a\x17\x95\ +\x5f\xac\x70\xac\xa8\xae\xf8\xb0\x46\xb8\xe6\xe2\x57\x4e\x5f\xd5\ +\x7c\xf5\x79\x6d\xda\xda\xde\x4a\xb7\xca\xed\xeb\x48\xeb\xa4\xeb\ +\x6e\xac\xf7\x59\xbf\xaf\x4a\xbd\x6a\x41\xd5\xd0\x86\xf0\x0d\xad\ +\x1b\xf1\x8d\xe5\x1b\x5f\x6d\x4a\xde\x74\xa1\x7a\x6a\xf5\x8e\xcd\ +\xb4\xcd\xca\xcd\x03\x35\x61\x35\xed\x5b\xcc\xb6\xac\xdb\xf2\xa1\ +\x36\xa3\xf6\x7a\x9d\x7f\x5d\xcb\x56\xfd\xad\xab\xb7\xbe\xd9\x26\ +\xda\xd6\xbf\xdd\x77\x7b\xf3\x0e\x83\x1d\x15\x3b\xde\xef\x94\xec\ +\xbc\xb5\x2b\x78\x57\x6b\xbd\x45\x7d\xf5\x6e\xd2\xee\x82\xdd\x8f\ +\x1a\x62\x1b\xba\xbf\xe6\x7e\xdd\xb8\x47\x77\x4f\xc5\x9e\x8f\x7b\ +\xa5\x7b\x07\xf6\x45\xef\xeb\x6a\x74\x6f\x6c\xdc\xaf\xbf\xbf\xb2\ +\x09\x6d\x52\x36\x8d\x1e\x48\x3a\x70\xe5\x9b\x80\x6f\xda\x9b\xed\ +\x9a\x77\xb5\x70\x5a\x2a\x0e\xc2\x41\xe5\xc1\x27\xdf\xa6\x7c\x7b\ +\xe3\x50\xe8\xa1\xce\xc3\xdc\xc3\xcd\xdf\x99\x7f\xb7\xf5\x08\xeb\ +\x48\x79\x2b\xd2\x3a\xbf\x75\xac\x2d\xa3\x6d\xa0\x3d\xa1\xbd\xef\ +\xe8\x8c\xa3\x9d\x1d\x5e\x1d\x47\xbe\xb7\xff\x7e\xef\x31\xe3\x63\ +\x75\xc7\x35\x8f\x57\x9e\xa0\x9d\x28\x3d\xf1\xf9\xe4\x82\x93\xe3\ +\xa7\x64\xa7\x9e\x9d\x4e\x3f\x3d\xd4\x99\xdc\x79\xf7\x4c\xfc\x99\ +\x6b\x5d\x51\x5d\xbd\x67\x43\xcf\x9e\x3f\x17\x74\xee\x4c\xb7\x5f\ +\xf7\xc9\xf3\xde\xe7\x8f\x5d\xf0\xbc\x70\xf4\x22\xf7\x62\xdb\x25\ +\xb7\x4b\xad\x3d\xae\x3d\x47\x7e\x70\xfd\xe1\x48\xaf\x5b\x6f\xeb\ +\x65\xf7\xcb\xed\x57\x3c\xae\x74\xf4\x4d\xeb\x3b\xd1\xef\xd3\x7f\ +\xfa\x6a\xc0\xd5\x73\xd7\xf8\xd7\x2e\x5d\x9f\x79\xbd\xef\xc6\xec\ +\x1b\xb7\x6e\x26\xdd\x1c\xb8\x25\xba\xf5\xf8\x76\xf6\xed\x17\x77\ +\x0a\xee\x4c\xdc\x5d\x7a\x8f\x78\xaf\xfc\xbe\xda\xfd\xea\x07\xfa\ +\x0f\xea\x7f\xb4\xfe\xb1\x65\xc0\x6d\xe0\xf8\x60\xc0\x60\xcf\xc3\ +\x59\x0f\xef\x0e\x09\x87\x9e\xfe\x94\xff\xd3\x87\xe1\xd2\x47\xcc\ +\x47\xd5\x23\x46\x23\x8d\x8f\x9d\x1f\x1f\x1b\x0d\x1a\xbd\xf2\x64\ +\xce\x93\xe1\xa7\xb2\xa7\x13\xcf\xca\x7e\x56\xff\x79\xeb\x73\xab\ +\xe7\xdf\xfd\xe2\xfb\x4b\xcf\x58\xfc\xd8\xf0\x0b\xf9\x8b\xcf\xbf\ +\xae\x79\xa9\xf3\x72\xef\xab\xa9\xaf\x3a\xc7\x23\xc7\x1f\xbc\xce\ +\x79\x3d\xf1\xa6\xfc\xad\xce\xdb\x7d\xef\xb8\xef\xba\xdf\xc7\xbd\ +\x1f\x99\x28\xfc\x40\xfe\x50\xf3\xd1\xfa\x63\xc7\xa7\xd0\x4f\xf7\ +\x3e\xe7\x7c\xfe\xfc\x2f\xf7\x84\xf3\xfb\x25\xd2\x9f\x33\x00\x00\ +\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x25\x00\x00\x80\x83\x00\x00\ +\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\x30\x00\x00\xea\x60\x00\x00\ +\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\x46\x00\x00\x03\x3f\x49\x44\ +\x41\x54\x78\xda\x4c\x92\x4b\x68\x5c\x75\x18\xc5\xcf\xff\x75\xdf\ +\x33\xf7\xde\xb9\x33\xf7\xde\x98\xa1\x8c\x21\xf8\x00\xd1\x85\x9b\ +\xd6\xae\xdc\x58\x17\x6e\xa2\xa4\xc1\xfa\x44\x70\x63\x45\xea\x2e\ +\xfb\x62\xa5\xa0\xae\xc4\x8d\xe0\x42\x17\x2e\x4a\xc1\x95\x88\xa5\ +\x14\xc1\xd2\xa6\x55\x92\x51\x5a\xd3\x26\xa9\xe9\xb4\x99\x99\x66\ +\x26\xce\x4c\xe7\x79\x1f\xf3\xbf\x2e\x94\x34\x67\x75\x16\x87\x1f\ +\xe7\xfb\x38\x24\x4d\x53\x00\x40\x96\x65\x20\x84\x20\xcb\x32\x00\ +\x00\xa5\x14\x8d\xc6\x83\x57\xaa\xd5\x3f\x4e\xfb\x81\x2f\xc2\xd0\ +\x5f\x73\x5d\xf7\x73\x55\x51\x56\x0f\xe6\xc8\x41\x00\x00\x46\x08\ +\xc9\x08\x21\x32\x8e\xe3\xb9\x2b\x57\xaf\xfd\xa9\xaa\xaa\xe1\x07\ +\x45\x38\x8e\x03\x53\x37\x92\xf1\x78\xfc\xb5\x65\x99\xa7\x18\xe3\ +\x49\x96\x49\x50\x3c\x52\x9e\x10\x22\x00\x48\x42\x29\x6e\xdc\x5c\ +\xff\x0a\x80\x51\xf0\x5c\x28\x8a\x02\xce\x39\x54\x55\x15\xae\xeb\ +\x7e\xd0\x6a\xb7\x7f\x89\xa2\xa8\xc8\xb9\xd8\x07\x10\x42\xc8\x08\ +\xc0\x84\x31\x86\x8d\xdb\x1b\xcb\xad\x56\xeb\x98\xe7\x15\xa0\x69\ +\x2a\x74\x43\x87\xae\xe9\x20\x20\x88\xa2\x09\xea\x8d\xe6\x91\x1b\ +\x37\xff\xfa\x22\x4d\x13\x8b\xff\x0f\xc8\x00\xa4\x8c\x31\x74\x3a\ +\xdd\x23\x1b\x9b\x5b\xa7\x83\x20\x80\x61\xe8\x50\x55\x15\x86\x66\ +\x40\x70\x8e\xa9\x94\xb8\xb7\xb3\x83\x6e\xb7\x07\x02\xf2\x5a\xad\ +\xb6\x73\xfe\xe0\x09\x88\xa2\xc8\x5f\xab\x56\xbf\xb5\x6d\x87\xe7\ +\xf2\x39\xa8\x9a\x0a\x5d\xd7\xa1\x08\x01\x00\xe8\xf6\x3a\xa8\xd7\ +\x9b\x20\x20\xb0\x6d\x1b\x42\x08\xc2\xef\xef\xd4\x1f\x7d\xbd\xd9\ +\x3c\x1b\xc7\xd3\xf9\x30\x70\xa1\xa9\x0a\x54\x55\x85\xae\x68\x60\ +\x8c\x21\x8e\x63\xd4\x6a\xf7\x30\x19\x4f\x60\x18\x3a\x2a\x95\x43\ +\xdf\x15\x3d\xef\x02\xef\x76\x7b\xa0\x84\x82\x10\xf2\xf6\x5e\x7b\ +\xef\xdd\x72\xb9\x0c\x45\x15\x10\x8a\x80\xa6\x69\x60\x9c\x21\xcb\ +\x32\x34\x9b\x4d\xb4\x5a\x7b\x60\x8c\xc1\x76\xec\x5d\xca\xe8\x72\ +\xaf\xff\x70\xc8\x85\xe0\x20\x40\x71\x6b\xeb\xce\x19\xc3\x34\x10\ +\x84\x25\xe4\x72\x39\xa4\x69\x0a\xc1\x05\x08\x21\x18\x0c\x06\xd8\ +\xbe\x7b\x17\x52\x4a\x38\x8e\x83\xf1\x68\x7c\xaa\x56\xab\x75\x01\ +\x80\xef\x3e\xd8\x3d\x7c\xee\xdc\xf9\x2f\x57\x56\xae\xcf\x52\x4a\ +\x30\x33\x3b\x83\xd7\x97\x96\xb0\xb8\xf8\xea\x7e\xf5\x3b\xdb\xdb\ +\xe8\xf7\x87\x28\x14\x0a\x98\xca\xf4\xa7\x5e\xaf\xfb\xbd\xe3\x38\ +\x08\xc3\x10\xf4\xd6\xfa\xed\x17\xd6\x56\xab\xcf\x4f\xd3\x14\x9d\ +\x4e\x17\x2b\x57\xaf\xe1\xe4\x87\x1f\xe1\xf8\xd2\x1b\xd8\xdc\xdc\ +\x42\x1c\xc7\x68\xd4\x1b\x30\x2d\x13\xba\xae\x65\xc3\xc1\x70\xd9\ +\x34\x4d\x54\x2a\x15\xd8\xb6\x0d\xea\x07\xc1\x8f\xf3\xf3\xf3\xab\ +\x9c\x73\xe4\x2c\x0b\x9e\x5b\x40\xd1\xf3\x70\xf9\xd7\xcb\x58\x3c\ +\x7e\x02\x17\x2f\x5d\x82\x65\xe5\xe0\xba\x0e\xc6\x93\xf1\x37\x32\ +\x93\x55\xc7\x71\xa1\x2a\x0a\x92\x24\x01\xcd\xdb\xf9\xf5\x63\x2f\ +\xbf\x74\xd2\xb6\xed\x11\xe7\x1c\xa6\x69\xc2\x34\x4c\x84\x41\x88\ +\xc1\xc3\x3e\xce\x7e\xfa\x19\x28\x25\x10\x82\x8f\xa4\x9c\x7e\x62\ +\x18\x3a\xa2\x68\x02\x99\x65\x10\x42\x80\x66\x99\xc4\x63\xb3\x33\ +\x57\x16\x16\x16\x4e\x94\x4a\xa5\x1e\xe7\x1c\x86\x61\xc0\xb2\x2c\ +\x78\x9e\x87\xce\x3f\x1d\xfc\x76\xfd\x77\x48\x39\x3d\xc3\x39\xff\ +\xdb\xb6\x6d\x3c\xf5\xc4\x93\x70\x6d\x07\xae\xed\x80\xbd\xf5\xe6\ +\x3b\x90\x53\x09\xcf\xf3\x6e\xf9\x81\xff\x43\x92\x24\x4f\x27\x69\ +\x32\x4b\x40\x38\xa5\x14\x9c\x0b\x94\x0f\x95\xb7\x9f\x7d\xee\x99\ +\xf7\x28\x65\xd1\x5c\xe5\x71\xe4\x72\xb9\xfd\xf1\x91\x0b\x3f\x5f\ +\xfc\xcf\x50\xc2\x06\xc3\xd1\xb4\xdf\x1f\xa0\x5e\xaf\xcf\xb5\xdb\ +\x7b\xef\xa7\x69\xf2\xa2\xef\xfb\x8d\xa3\x47\x0f\x7f\x6c\x3b\xf9\ +\xed\x30\x08\xe0\x97\x7c\x48\x29\xf7\x01\xff\x0e\x00\x87\x7e\x46\ +\xf6\x00\xdd\xdd\x70\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\x82\ \x00\x00\x02\xaf\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -441,6 +669,275 @@ qt_resource_data = "\ \x12\xe3\x03\xfa\xf1\xc0\xf9\xeb\x4d\xf9\x37\x2f\x04\xe0\x8f\x00\ \x03\x00\xe7\xe3\x7a\x6e\x30\xbb\xf3\xb7\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ +\x00\x00\x10\xa4\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ +\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ +\x01\x00\x9a\x9c\x18\x00\x00\x0a\x4d\x69\x43\x43\x50\x50\x68\x6f\ +\x74\x6f\x73\x68\x6f\x70\x20\x49\x43\x43\x20\x70\x72\x6f\x66\x69\ +\x6c\x65\x00\x00\x78\xda\x9d\x53\x77\x58\x93\xf7\x16\x3e\xdf\xf7\ +\x65\x0f\x56\x42\xd8\xf0\xb1\x97\x6c\x81\x00\x22\x23\xac\x08\xc8\ +\x10\x59\xa2\x10\x92\x00\x61\x84\x10\x12\x40\xc5\x85\x88\x0a\x56\ +\x14\x15\x11\x9c\x48\x55\xc4\x82\xd5\x0a\x48\x9d\x88\xe2\xa0\x28\ +\xb8\x67\x41\x8a\x88\x5a\x8b\x55\x5c\x38\xee\x1f\xdc\xa7\xb5\x7d\ +\x7a\xef\xed\xed\xfb\xd7\xfb\xbc\xe7\x9c\xe7\xfc\xce\x79\xcf\x0f\ +\x80\x11\x12\x26\x91\xe6\xa2\x6a\x00\x39\x52\x85\x3c\x3a\xd8\x1f\ +\x8f\x4f\x48\xc4\xc9\xbd\x80\x02\x15\x48\xe0\x04\x20\x10\xe6\xcb\ +\xc2\x67\x05\xc5\x00\x00\xf0\x03\x79\x78\x7e\x74\xb0\x3f\xfc\x01\ +\xaf\x6f\x00\x02\x00\x70\xd5\x2e\x24\x12\xc7\xe1\xff\x83\xba\x50\ +\x26\x57\x00\x20\x91\x00\xe0\x22\x12\xe7\x0b\x01\x90\x52\x00\xc8\ +\x2e\x54\xc8\x14\x00\xc8\x18\x00\xb0\x53\xb3\x64\x0a\x00\x94\x00\ +\x00\x6c\x79\x7c\x42\x22\x00\xaa\x0d\x00\xec\xf4\x49\x3e\x05\x00\ +\xd8\xa9\x93\xdc\x17\x00\xd8\xa2\x1c\xa9\x08\x00\x8d\x01\x00\x99\ +\x28\x47\x24\x02\x40\xbb\x00\x60\x55\x81\x52\x2c\x02\xc0\xc2\x00\ +\xa0\xac\x40\x22\x2e\x04\xc0\xae\x01\x80\x59\xb6\x32\x47\x02\x80\ +\xbd\x05\x00\x76\x8e\x58\x90\x0f\x40\x60\x00\x80\x99\x42\x2c\xcc\ +\x00\x20\x38\x02\x00\x43\x1e\x13\xcd\x03\x20\x4c\x03\xa0\x30\xd2\ +\xbf\xe0\xa9\x5f\x70\x85\xb8\x48\x01\x00\xc0\xcb\x95\xcd\x97\x4b\ +\xd2\x33\x14\xb8\x95\xd0\x1a\x77\xf2\xf0\xe0\xe2\x21\xe2\xc2\x6c\ +\xb1\x42\x61\x17\x29\x10\x66\x09\xe4\x22\x9c\x97\x9b\x23\x13\x48\ +\xe7\x03\x4c\xce\x0c\x00\x00\x1a\xf9\xd1\xc1\xfe\x38\x3f\x90\xe7\ +\xe6\xe4\xe1\xe6\x66\xe7\x6c\xef\xf4\xc5\xa2\xfe\x6b\xf0\x6f\x22\ +\x3e\x21\xf1\xdf\xfe\xbc\x8c\x02\x04\x00\x10\x4e\xcf\xef\xda\x5f\ +\xe5\xe5\xd6\x03\x70\xc7\x01\xb0\x75\xbf\x6b\xa9\x5b\x00\xda\x56\ +\x00\x68\xdf\xf9\x5d\x33\xdb\x09\xa0\x5a\x0a\xd0\x7a\xf9\x8b\x79\ +\x38\xfc\x40\x1e\x9e\xa1\x50\xc8\x3c\x1d\x1c\x0a\x0b\x0b\xed\x25\ +\x62\xa1\xbd\x30\xe3\x8b\x3e\xff\x33\xe1\x6f\xe0\x8b\x7e\xf6\xfc\ +\x40\x1e\xfe\xdb\x7a\xf0\x00\x71\x9a\x40\x99\xad\xc0\xa3\x83\xfd\ +\x71\x61\x6e\x76\xae\x52\x8e\xe7\xcb\x04\x42\x31\x6e\xf7\xe7\x23\ +\xfe\xc7\x85\x7f\xfd\x8e\x29\xd1\xe2\x34\xb1\x5c\x2c\x15\x8a\xf1\ +\x58\x89\xb8\x50\x22\x4d\xc7\x79\xb9\x52\x91\x44\x21\xc9\x95\xe2\ +\x12\xe9\x7f\x32\xf1\x1f\x96\xfd\x09\x93\x77\x0d\x00\xac\x86\x4f\ +\xc0\x4e\xb6\x07\xb5\xcb\x6c\xc0\x7e\xee\x01\x02\x8b\x0e\x58\xd2\ +\x76\x00\x40\x7e\xf3\x2d\x8c\x1a\x0b\x91\x00\x10\x67\x34\x32\x79\ +\xf7\x00\x00\x93\xbf\xf9\x8f\x40\x2b\x01\x00\xcd\x97\xa4\xe3\x00\ +\x00\xbc\xe8\x18\x5c\xa8\x94\x17\x4c\xc6\x08\x00\x00\x44\xa0\x81\ +\x2a\xb0\x41\x07\x0c\xc1\x14\xac\xc0\x0e\x9c\xc1\x1d\xbc\xc0\x17\ +\x02\x61\x06\x44\x40\x0c\x24\xc0\x3c\x10\x42\x06\xe4\x80\x1c\x0a\ +\xa1\x18\x96\x41\x19\x54\xc0\x3a\xd8\x04\xb5\xb0\x03\x1a\xa0\x11\ +\x9a\xe1\x10\xb4\xc1\x31\x38\x0d\xe7\xe0\x12\x5c\x81\xeb\x70\x17\ +\x06\x60\x18\x9e\xc2\x18\xbc\x86\x09\x04\x41\xc8\x08\x13\x61\x21\ +\x3a\x88\x11\x62\x8e\xd8\x22\xce\x08\x17\x99\x8e\x04\x22\x61\x48\ +\x34\x92\x80\xa4\x20\xe9\x88\x14\x51\x22\xc5\xc8\x72\xa4\x02\xa9\ +\x42\x6a\x91\x5d\x48\x23\xf2\x2d\x72\x14\x39\x8d\x5c\x40\xfa\x90\ +\xdb\xc8\x20\x32\x8a\xfc\x8a\xbc\x47\x31\x94\x81\xb2\x51\x03\xd4\ +\x02\x75\x40\xb9\xa8\x1f\x1a\x8a\xc6\xa0\x73\xd1\x74\x34\x0f\x5d\ +\x80\x96\xa2\x6b\xd1\x1a\xb4\x1e\x3d\x80\xb6\xa2\xa7\xd1\x4b\xe8\ +\x75\x74\x00\x7d\x8a\x8e\x63\x80\xd1\x31\x0e\x66\x8c\xd9\x61\x5c\ +\x8c\x87\x45\x60\x89\x58\x1a\x26\xc7\x16\x63\xe5\x58\x35\x56\x8f\ +\x35\x63\x1d\x58\x37\x76\x15\x1b\xc0\x9e\x61\xef\x08\x24\x02\x8b\ +\x80\x13\xec\x08\x5e\x84\x10\xc2\x6c\x82\x90\x90\x47\x58\x4c\x58\ +\x43\xa8\x25\xec\x23\xb4\x12\xba\x08\x57\x09\x83\x84\x31\xc2\x27\ +\x22\x93\xa8\x4f\xb4\x25\x7a\x12\xf9\xc4\x78\x62\x3a\xb1\x90\x58\ +\x46\xac\x26\xee\x21\x1e\x21\x9e\x25\x5e\x27\x0e\x13\x5f\x93\x48\ +\x24\x0e\xc9\x92\xe4\x4e\x0a\x21\x25\x90\x32\x49\x0b\x49\x6b\x48\ +\xdb\x48\x2d\xa4\x53\xa4\x3e\xd2\x10\x69\x9c\x4c\x26\xeb\x90\x6d\ +\xc9\xde\xe4\x08\xb2\x80\xac\x20\x97\x91\xb7\x90\x0f\x90\x4f\x92\ +\xfb\xc9\xc3\xe4\xb7\x14\x3a\xc5\x88\xe2\x4c\x09\xa2\x24\x52\xa4\ +\x94\x12\x4a\x35\x65\x3f\xe5\x04\xa5\x9f\x32\x42\x99\xa0\xaa\x51\ +\xcd\xa9\x9e\xd4\x08\xaa\x88\x3a\x9f\x5a\x49\x6d\xa0\x76\x50\x2f\ +\x53\x87\xa9\x13\x34\x75\x9a\x25\xcd\x9b\x16\x43\xcb\xa4\x2d\xa3\ +\xd5\xd0\x9a\x69\x67\x69\xf7\x68\x2f\xe9\x74\xba\x09\xdd\x83\x1e\ +\x45\x97\xd0\x97\xd2\x6b\xe8\x07\xe9\xe7\xe9\x83\xf4\x77\x0c\x0d\ +\x86\x0d\x83\xc7\x48\x62\x28\x19\x6b\x19\x7b\x19\xa7\x18\xb7\x19\ +\x2f\x99\x4c\xa6\x05\xd3\x97\x99\xc8\x54\x30\xd7\x32\x1b\x99\x67\ +\x98\x0f\x98\x6f\x55\x58\x2a\xf6\x2a\x7c\x15\x91\xca\x12\x95\x3a\ +\x95\x56\x95\x7e\x95\xe7\xaa\x54\x55\x73\x55\x3f\xd5\x79\xaa\x0b\ +\x54\xab\x55\x0f\xab\x5e\x56\x7d\xa6\x46\x55\xb3\x50\xe3\xa9\x09\ +\xd4\x16\xab\xd5\xa9\x1d\x55\xbb\xa9\x36\xae\xce\x52\x77\x52\x8f\ +\x50\xcf\x51\x5f\xa3\xbe\x5f\xfd\x82\xfa\x63\x0d\xb2\x86\x85\x46\ +\xa0\x86\x48\xa3\x54\x63\xb7\xc6\x19\x8d\x21\x16\xc6\x32\x65\xf1\ +\x58\x42\xd6\x72\x56\x03\xeb\x2c\x6b\x98\x4d\x62\x5b\xb2\xf9\xec\ +\x4c\x76\x05\xfb\x1b\x76\x2f\x7b\x4c\x53\x43\x73\xaa\x66\xac\x66\ +\x91\x66\x9d\xe6\x71\xcd\x01\x0e\xc6\xb1\xe0\xf0\x39\xd9\x9c\x4a\ +\xce\x21\xce\x0d\xce\x7b\x2d\x03\x2d\x3f\x2d\xb1\xd6\x6a\xad\x66\ +\xad\x7e\xad\x37\xda\x7a\xda\xbe\xda\x62\xed\x72\xed\x16\xed\xeb\ +\xda\xef\x75\x70\x9d\x40\x9d\x2c\x9d\xf5\x3a\x6d\x3a\xf7\x75\x09\ +\xba\x36\xba\x51\xba\x85\xba\xdb\x75\xcf\xea\x3e\xd3\x63\xeb\x79\ +\xe9\x09\xf5\xca\xf5\x0e\xe9\xdd\xd1\x47\xf5\x6d\xf4\xa3\xf5\x17\ +\xea\xef\xd6\xef\xd1\x1f\x37\x30\x34\x08\x36\x90\x19\x6c\x31\x38\ +\x63\xf0\xcc\x90\x63\xe8\x6b\x98\x69\xb8\xd1\xf0\x84\xe1\xa8\x11\ +\xcb\x68\xba\x91\xc4\x68\xa3\xd1\x49\xa3\x27\xb8\x26\xee\x87\x67\ +\xe3\x35\x78\x17\x3e\x66\xac\x6f\x1c\x62\xac\x34\xde\x65\xdc\x6b\ +\x3c\x61\x62\x69\x32\xdb\xa4\xc4\xa4\xc5\xe4\xbe\x29\xcd\x94\x6b\ +\x9a\x66\xba\xd1\xb4\xd3\x74\xcc\xcc\xc8\x2c\xdc\xac\xd8\xac\xc9\ +\xec\x8e\x39\xd5\x9c\x6b\x9e\x61\xbe\xd9\xbc\xdb\xfc\x8d\x85\xa5\ +\x45\x9c\xc5\x4a\x8b\x36\x8b\xc7\x96\xda\x96\x7c\xcb\x05\x96\x4d\ +\x96\xf7\xac\x98\x56\x3e\x56\x79\x56\xf5\x56\xd7\xac\x49\xd6\x5c\ +\xeb\x2c\xeb\x6d\xd6\x57\x6c\x50\x1b\x57\x9b\x0c\x9b\x3a\x9b\xcb\ +\xb6\xa8\xad\x9b\xad\xc4\x76\x9b\x6d\xdf\x14\xe2\x14\x8f\x29\xd2\ +\x29\xf5\x53\x6e\xda\x31\xec\xfc\xec\x0a\xec\x9a\xec\x06\xed\x39\ +\xf6\x61\xf6\x25\xf6\x6d\xf6\xcf\x1d\xcc\x1c\x12\x1d\xd6\x3b\x74\ +\x3b\x7c\x72\x74\x75\xcc\x76\x6c\x70\xbc\xeb\xa4\xe1\x34\xc3\xa9\ +\xc4\xa9\xc3\xe9\x57\x67\x1b\x67\xa1\x73\x9d\xf3\x35\x17\xa6\x4b\ +\x90\xcb\x12\x97\x76\x97\x17\x53\x6d\xa7\x8a\xa7\x6e\x9f\x7a\xcb\ +\x95\xe5\x1a\xee\xba\xd2\xb5\xd3\xf5\xa3\x9b\xbb\x9b\xdc\xad\xd9\ +\x6d\xd4\xdd\xcc\x3d\xc5\x7d\xab\xfb\x4d\x2e\x9b\x1b\xc9\x5d\xc3\ +\x3d\xef\x41\xf4\xf0\xf7\x58\xe2\x71\xcc\xe3\x9d\xa7\x9b\xa7\xc2\ +\xf3\x90\xe7\x2f\x5e\x76\x5e\x59\x5e\xfb\xbd\x1e\x4f\xb3\x9c\x26\ +\x9e\xd6\x30\x6d\xc8\xdb\xc4\x5b\xe0\xbd\xcb\x7b\x60\x3a\x3e\x3d\ +\x65\xfa\xce\xe9\x03\x3e\xc6\x3e\x02\x9f\x7a\x9f\x87\xbe\xa6\xbe\ +\x22\xdf\x3d\xbe\x23\x7e\xd6\x7e\x99\x7e\x07\xfc\x9e\xfb\x3b\xfa\ +\xcb\xfd\x8f\xf8\xbf\xe1\x79\xf2\x16\xf1\x4e\x05\x60\x01\xc1\x01\ +\xe5\x01\xbd\x81\x1a\x81\xb3\x03\x6b\x03\x1f\x04\x99\x04\xa5\x07\ +\x35\x05\x8d\x05\xbb\x06\x2f\x0c\x3e\x15\x42\x0c\x09\x0d\x59\x1f\ +\x72\x93\x6f\xc0\x17\xf2\x1b\xf9\x63\x33\xdc\x67\x2c\x9a\xd1\x15\ +\xca\x08\x9d\x15\x5a\x1b\xfa\x30\xcc\x26\x4c\x1e\xd6\x11\x8e\x86\ +\xcf\x08\xdf\x10\x7e\x6f\xa6\xf9\x4c\xe9\xcc\xb6\x08\x88\xe0\x47\ +\x6c\x88\xb8\x1f\x69\x19\x99\x17\xf9\x7d\x14\x29\x2a\x32\xaa\x2e\ +\xea\x51\xb4\x53\x74\x71\x74\xf7\x2c\xd6\xac\xe4\x59\xfb\x67\xbd\ +\x8e\xf1\x8f\xa9\x8c\xb9\x3b\xdb\x6a\xb6\x72\x76\x67\xac\x6a\x6c\ +\x52\x6c\x63\xec\x9b\xb8\x80\xb8\xaa\xb8\x81\x78\x87\xf8\x45\xf1\ +\x97\x12\x74\x13\x24\x09\xed\x89\xe4\xc4\xd8\xc4\x3d\x89\xe3\x73\ +\x02\xe7\x6c\x9a\x33\x9c\xe4\x9a\x54\x96\x74\x63\xae\xe5\xdc\xa2\ +\xb9\x17\xe6\xe9\xce\xcb\x9e\x77\x3c\x59\x35\x59\x90\x7c\x38\x85\ +\x98\x12\x97\xb2\x3f\xe5\x83\x20\x42\x50\x2f\x18\x4f\xe5\xa7\x6e\ +\x4d\x1d\x13\xf2\x84\x9b\x85\x4f\x45\xbe\xa2\x8d\xa2\x51\xb1\xb7\ +\xb8\x4a\x3c\x92\xe6\x9d\x56\x95\xf6\x38\xdd\x3b\x7d\x43\xfa\x68\ +\x86\x4f\x46\x75\xc6\x33\x09\x4f\x52\x2b\x79\x91\x19\x92\xb9\x23\ +\xf3\x4d\x56\x44\xd6\xde\xac\xcf\xd9\x71\xd9\x2d\x39\x94\x9c\x94\ +\x9c\xa3\x52\x0d\x69\x96\xb4\x2b\xd7\x30\xb7\x28\xb7\x4f\x66\x2b\ +\x2b\x93\x0d\xe4\x79\xe6\x6d\xca\x1b\x93\x87\xca\xf7\xe4\x23\xf9\ +\x73\xf3\xdb\x15\x6c\x85\x4c\xd1\xa3\xb4\x52\xae\x50\x0e\x16\x4c\ +\x2f\xa8\x2b\x78\x5b\x18\x5b\x78\xb8\x48\xbd\x48\x5a\xd4\x33\xdf\ +\x66\xfe\xea\xf9\x23\x0b\x82\x16\x7c\xbd\x90\xb0\x50\xb8\xb0\xb3\ +\xd8\xb8\x78\x59\xf1\xe0\x22\xbf\x45\xbb\x16\x23\x8b\x53\x17\x77\ +\x2e\x31\x5d\x52\xba\x64\x78\x69\xf0\xd2\x7d\xcb\x68\xcb\xb2\x96\ +\xfd\x50\xe2\x58\x52\x55\xf2\x6a\x79\xdc\xf2\x8e\x52\x83\xd2\xa5\ +\xa5\x43\x2b\x82\x57\x34\x95\xa9\x94\xc9\xcb\x6e\xae\xf4\x5a\xb9\ +\x63\x15\x61\x95\x64\x55\xef\x6a\x97\xd5\x5b\x56\x7f\x2a\x17\x95\ +\x5f\xac\x70\xac\xa8\xae\xf8\xb0\x46\xb8\xe6\xe2\x57\x4e\x5f\xd5\ +\x7c\xf5\x79\x6d\xda\xda\xde\x4a\xb7\xca\xed\xeb\x48\xeb\xa4\xeb\ +\x6e\xac\xf7\x59\xbf\xaf\x4a\xbd\x6a\x41\xd5\xd0\x86\xf0\x0d\xad\ +\x1b\xf1\x8d\xe5\x1b\x5f\x6d\x4a\xde\x74\xa1\x7a\x6a\xf5\x8e\xcd\ +\xb4\xcd\xca\xcd\x03\x35\x61\x35\xed\x5b\xcc\xb6\xac\xdb\xf2\xa1\ +\x36\xa3\xf6\x7a\x9d\x7f\x5d\xcb\x56\xfd\xad\xab\xb7\xbe\xd9\x26\ +\xda\xd6\xbf\xdd\x77\x7b\xf3\x0e\x83\x1d\x15\x3b\xde\xef\x94\xec\ +\xbc\xb5\x2b\x78\x57\x6b\xbd\x45\x7d\xf5\x6e\xd2\xee\x82\xdd\x8f\ +\x1a\x62\x1b\xba\xbf\xe6\x7e\xdd\xb8\x47\x77\x4f\xc5\x9e\x8f\x7b\ +\xa5\x7b\x07\xf6\x45\xef\xeb\x6a\x74\x6f\x6c\xdc\xaf\xbf\xbf\xb2\ +\x09\x6d\x52\x36\x8d\x1e\x48\x3a\x70\xe5\x9b\x80\x6f\xda\x9b\xed\ +\x9a\x77\xb5\x70\x5a\x2a\x0e\xc2\x41\xe5\xc1\x27\xdf\xa6\x7c\x7b\ +\xe3\x50\xe8\xa1\xce\xc3\xdc\xc3\xcd\xdf\x99\x7f\xb7\xf5\x08\xeb\ +\x48\x79\x2b\xd2\x3a\xbf\x75\xac\x2d\xa3\x6d\xa0\x3d\xa1\xbd\xef\ +\xe8\x8c\xa3\x9d\x1d\x5e\x1d\x47\xbe\xb7\xff\x7e\xef\x31\xe3\x63\ +\x75\xc7\x35\x8f\x57\x9e\xa0\x9d\x28\x3d\xf1\xf9\xe4\x82\x93\xe3\ +\xa7\x64\xa7\x9e\x9d\x4e\x3f\x3d\xd4\x99\xdc\x79\xf7\x4c\xfc\x99\ +\x6b\x5d\x51\x5d\xbd\x67\x43\xcf\x9e\x3f\x17\x74\xee\x4c\xb7\x5f\ +\xf7\xc9\xf3\xde\xe7\x8f\x5d\xf0\xbc\x70\xf4\x22\xf7\x62\xdb\x25\ +\xb7\x4b\xad\x3d\xae\x3d\x47\x7e\x70\xfd\xe1\x48\xaf\x5b\x6f\xeb\ +\x65\xf7\xcb\xed\x57\x3c\xae\x74\xf4\x4d\xeb\x3b\xd1\xef\xd3\x7f\ +\xfa\x6a\xc0\xd5\x73\xd7\xf8\xd7\x2e\x5d\x9f\x79\xbd\xef\xc6\xec\ +\x1b\xb7\x6e\x26\xdd\x1c\xb8\x25\xba\xf5\xf8\x76\xf6\xed\x17\x77\ +\x0a\xee\x4c\xdc\x5d\x7a\x8f\x78\xaf\xfc\xbe\xda\xfd\xea\x07\xfa\ +\x0f\xea\x7f\xb4\xfe\xb1\x65\xc0\x6d\xe0\xf8\x60\xc0\x60\xcf\xc3\ +\x59\x0f\xef\x0e\x09\x87\x9e\xfe\x94\xff\xd3\x87\xe1\xd2\x47\xcc\ +\x47\xd5\x23\x46\x23\x8d\x8f\x9d\x1f\x1f\x1b\x0d\x1a\xbd\xf2\x64\ +\xce\x93\xe1\xa7\xb2\xa7\x13\xcf\xca\x7e\x56\xff\x79\xeb\x73\xab\ +\xe7\xdf\xfd\xe2\xfb\x4b\xcf\x58\xfc\xd8\xf0\x0b\xf9\x8b\xcf\xbf\ +\xae\x79\xa9\xf3\x72\xef\xab\xa9\xaf\x3a\xc7\x23\xc7\x1f\xbc\xce\ +\x79\x3d\xf1\xa6\xfc\xad\xce\xdb\x7d\xef\xb8\xef\xba\xdf\xc7\xbd\ +\x1f\x99\x28\xfc\x40\xfe\x50\xf3\xd1\xfa\x63\xc7\xa7\xd0\x4f\xf7\ +\x3e\xe7\x7c\xfe\xfc\x2f\xf7\x84\xf3\xfb\x25\xd2\x9f\x33\x00\x00\ +\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x25\x00\x00\x80\x83\x00\x00\ +\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\x30\x00\x00\xea\x60\x00\x00\ +\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\x46\x00\x00\x05\xd1\x49\x44\ +\x41\x54\x78\xda\x7c\x95\x4d\x6c\x5c\x57\x1d\xc5\x7f\xf7\xf3\x7d\ +\xcd\x7b\x33\x1e\x4f\x9c\xc8\x4e\xed\xba\x81\xaa\xa1\x75\x58\xd4\ +\x52\x25\x04\xa2\x6d\x40\x7c\xac\x68\x82\x22\xb1\x28\x2c\xa9\x10\ +\xad\x08\x08\x04\xb4\x12\x2a\x15\xaa\x10\xd0\xd2\x6e\x41\x05\xc4\ +\xa2\x05\x01\x8b\x82\x84\x14\x56\xa9\x40\x4a\x88\x90\x1a\xc7\x85\ +\x36\x89\xab\x24\x76\x6c\x8f\xed\x71\x6d\x8f\xe7\xfb\xbd\x77\x59\ +\x8c\x67\xec\x10\x89\xbf\x74\xf5\xde\xe2\xdd\x77\xee\xff\x9c\xff\ +\x39\x57\x38\xe7\xc8\xb2\x8c\x41\x39\xe7\x10\x42\x0c\xdf\x07\x25\ +\xa5\xa4\x56\xab\x3d\xf2\xde\x7b\xd7\x4e\xa5\x69\xf6\x48\xa9\x54\ +\x5c\x2f\x8d\x14\x2f\x56\x0e\x55\xfe\x16\x85\xe1\xe5\x3c\xcb\x0f\ +\x7e\x2f\x00\xa7\xb5\x46\xfc\x1f\x00\xe1\xf6\x76\x28\xa5\xd8\xd8\ +\xa8\x7d\x6e\x6e\xee\xca\x1f\x77\x1b\x8d\x60\x74\xb4\xcc\x68\x65\ +\x94\x42\x21\x42\x49\xd9\xd2\x4a\xff\x22\x08\x82\x97\xc3\x30\xbc\ +\x01\x90\xe7\x0e\x70\x18\x63\x90\xdc\x5d\x02\xd0\x80\x14\x42\x20\ +\x84\xc0\x39\x67\x56\x56\x57\x9f\x4b\xb3\x3c\x18\x1b\x3b\x4c\xa9\ +\x54\x22\x08\x7d\xfc\x20\xa0\x52\x39\x14\x94\xcb\xe5\x67\x3a\x9d\ +\xce\xa5\x5a\xad\xf6\x85\xfe\x1e\xe4\x1e\x09\x77\x02\x38\xe7\x34\ +\x30\x01\x38\x20\x1b\x9c\xfe\xc6\xcd\x5b\x3f\x58\x5c\x5a\xfe\x58\ +\xa1\x10\x11\x86\x01\xbe\xef\x23\x85\x04\xe7\xc8\xd2\x14\x29\x25\ +\x95\x4a\xa5\xe2\xfb\xfe\x9f\x56\x56\x56\x7e\x2a\xa5\xcc\x95\x94\ +\x77\x01\x08\x21\x84\x27\x84\xa8\x03\x99\x73\x0e\xa5\x14\xeb\x1b\ +\xb5\x4f\xbe\xfb\xee\xd5\xef\x84\x81\x4f\x92\x24\x04\xa1\x87\xb1\ +\x1a\x6b\x2d\x9e\xe7\xa1\xb5\x06\x20\x4d\x53\xe2\x38\x16\xb7\x96\ +\x96\xbe\x75\xf5\xda\xf5\x6f\x08\xa9\xee\xee\x00\x68\x02\xdb\x03\ +\x1d\xda\xed\x76\x3c\x7f\x65\xfe\x55\x29\x85\x29\x14\x0a\x08\x09\ +\xc6\x18\x8c\x31\x7d\x00\x6b\x51\x4a\xe1\x9c\xa3\xd7\xeb\x71\xe3\ +\xe6\x4d\xda\xed\x36\x0b\x0b\xef\x3f\xdb\x6a\xb5\x27\xff\x17\xc0\ +\xed\x2d\x06\xd4\x5c\x5f\x78\xff\xf9\x9d\x7a\xfd\x44\xb1\x58\xc4\ +\xf3\x3c\x3c\xcf\x0e\x01\x3c\xeb\x21\xa5\x42\x08\x41\x96\x65\x34\ +\x9a\x0d\x56\xab\xab\xa4\x69\x86\x10\xb2\xb2\xbc\xbc\x7c\x92\x3d\ +\x31\xef\x54\x58\x88\x3e\x35\xeb\x1b\x9f\xbd\x7e\x7d\xe1\x6c\xb9\ +\x5c\x26\x8e\x63\x3c\xcf\xc3\x5a\x8d\xd2\x0a\x6b\x2d\x46\x2b\x94\ +\x10\xe4\x79\x4e\xa7\xd3\xa1\xba\xb6\x46\xb3\xd9\x46\x20\x28\x14\ +\x22\xea\xf5\xdd\xa9\x21\xc0\x60\xee\x07\x5c\x76\xba\xbd\x4f\xcc\ +\xcf\xbf\xf3\x5b\x63\x0c\xc5\x62\x11\xa5\x15\xda\xc8\xe1\xc9\x3d\ +\x63\x90\x52\x81\x10\x74\x7b\x5d\x6a\x9b\x35\xd6\xd6\xd6\xc1\xf5\ +\x3b\x0f\xc3\x90\x4a\xa5\xb2\x38\x04\x58\xad\x56\x0f\xf0\xe4\xec\ +\xad\x9b\x4b\xcf\x6e\xef\xec\x56\x8e\x1e\x1d\xc7\x9a\x3e\xd7\xc6\ +\x1a\xac\x31\x78\xc6\xa2\x94\x46\x0a\x41\x96\xe7\x34\x1b\x4d\x56\ +\x57\xd7\xc8\xb3\xbe\x9f\xb4\x56\x1c\x1a\xab\x2c\x1d\x39\x32\x76\ +\x6e\x08\xb0\xb9\xb9\x3d\xa4\xa7\x97\x76\x7f\x52\xad\x56\x3f\x53\ +\x2e\x97\x89\xc2\x10\x63\x35\xda\x28\x8c\x36\x18\x63\xd1\x4a\xf7\ +\xbd\x01\xf4\xba\x5d\xaa\xd5\x2a\x3b\xf5\x1d\x04\x12\xad\x35\xa3\ +\x95\x51\x4a\xa5\xe2\xd7\x1c\x2c\x0e\x45\xce\xb3\x94\x3c\x4b\x11\ +\xb8\xd9\xda\x46\xed\x29\xdf\xf7\x29\x26\x45\x84\x92\x68\xa3\xd0\ +\x5a\xa3\x8d\xc1\x18\x8d\x54\x72\x28\xec\xd6\xf6\x16\xd5\xea\x1a\ +\xb8\xbe\x16\x61\x18\x62\xb4\x79\xab\xd5\x6a\xfd\x79\x73\x73\x93\ +\x61\x07\x4e\x38\xc2\x20\xa0\xdb\xe9\x7e\x4f\x08\xec\xe4\xe4\x3d\ +\x8c\x8c\x94\x10\x52\xe0\x5c\xdf\xf2\x56\x1b\xa4\x52\x43\xbd\xda\ +\x9d\x36\x2b\xab\xab\xb4\xdb\x2d\x84\x90\x04\x41\x88\x94\xb2\x53\ +\xaf\xef\x7c\xdf\x91\x93\x65\x19\x87\xc7\xc6\xfa\x00\x81\x17\xf0\ +\x9f\x7f\x5f\xfd\xee\xf9\xf3\xe7\x4f\x65\x79\xce\xd4\xe4\x3d\xcc\ +\x7c\xf4\x21\x66\x67\x1f\x26\x89\x13\x5c\xde\x0f\x32\xe7\x1c\x02\ +\x41\xaf\xd7\x63\xbd\x56\x63\x7d\x6d\x03\x90\x78\x5e\x40\xb1\x58\ +\x64\xa7\xbe\xfd\xf3\x3c\xcf\xfe\x51\xdf\xad\x13\x04\xc1\x7e\x07\ +\x6f\xbf\x7d\xf9\xe9\x97\x7e\xf6\xca\x8b\x5b\x5b\x1f\xd0\x6a\xb7\ +\x68\xb7\xdb\x18\x63\x79\xe0\xf8\x03\x7c\xe5\xcb\x4f\x72\xe6\xcc\ +\x69\x3c\xcf\x02\xd0\xeb\xf5\xd8\xa9\xef\xb0\x78\x6b\x91\x6e\xb7\ +\x87\xef\xfb\x44\x51\x48\xa7\xd3\x5a\x68\xb5\x9a\x2f\xe7\x79\x4e\ +\x1c\xc7\x4c\x4f\x4f\xef\x3b\xf9\xda\xd5\x6b\x9f\x4e\xd3\x1e\x71\ +\x1c\x93\xc4\x09\xa5\x52\x09\x63\x0d\x73\x73\x73\x7c\xfd\xe9\x67\ +\x38\x75\xfa\x0c\x97\xe7\xae\xf4\x4f\xa4\x35\xd5\xea\x1a\x5b\x1f\ +\x6c\x61\xad\x25\x49\x12\x3c\xdf\xb2\xdb\x68\xfc\x18\xa8\xfa\xbe\ +\xcf\xd4\xd4\x14\x4a\x1d\x88\x8a\x24\x29\x5e\xd4\x5a\x0f\x5d\x6a\ +\xf6\xc6\x31\x49\x12\x46\xcb\x65\x2e\x5e\xbc\xc4\x13\x4f\x7c\x91\ +\xd7\x5f\xff\x1d\xad\x76\x9b\xdd\xc6\x2e\xbe\x1f\x50\x88\x63\xc2\ +\xc8\xa7\xb1\xdb\x78\x2b\xcb\xf2\x5f\x0a\xa1\x98\x98\x38\x4a\x14\ +\x85\xe4\x79\xbe\x0f\x30\x39\x35\xf9\x9b\x89\x89\xf1\x6a\x9e\xe7\ +\x78\x9e\x87\xd1\x7b\x59\x63\x2c\x9e\xf5\xa8\x8c\x96\xc9\x1d\x9c\ +\xfd\xe6\xb7\x79\xfe\x87\x2f\xe0\x1c\x7b\xd4\x04\x64\x59\x46\xab\ +\xdd\xfa\x91\xd2\xca\x09\x29\x50\x5a\xed\xdd\x07\x07\xe2\x3a\x8a\ +\xa3\xa5\x47\x1f\x7b\xf4\xc5\x41\x5b\xfd\x58\xb0\xc3\xa7\xd1\x96\ +\x42\x18\x51\x4c\x12\x7e\xff\xc6\x1f\xf8\xe7\x85\x4b\xc4\x49\x81\ +\x20\xf0\x69\xb5\x5a\xe7\x8c\xd1\xe7\xac\xd1\x58\xa3\xd8\xad\xd7\ +\x87\x03\xb1\x1f\x76\xce\x71\xfc\xc1\xe3\xaf\x3c\xfe\xf8\x63\x2f\ +\xa9\xbd\x00\xf3\x7d\xff\xc0\xf2\xf0\xac\x25\x0a\x22\x7c\xcf\xe7\ +\xcd\x37\xff\x82\xd6\x9a\x3c\xcf\xbb\x69\x9a\xbe\xe0\xfb\x3e\xd6\ +\x5a\xa2\xa8\x80\xef\xf9\xf8\x9e\x4f\x5c\x88\x0f\xf8\xc0\x39\x04\ +\xf0\xf0\xec\xec\x73\x20\xa2\x0b\x17\x2e\x7c\xb5\xd9\x6c\xf6\xb5\ +\xf0\x3c\xb2\x2c\x23\xcf\x32\xb2\x3c\xc7\x58\xc3\xc6\x7a\x8d\xf9\ +\xb9\x79\x1e\x9c\xf9\xc8\xaf\x8d\x31\x7f\xcf\xb2\x0c\xa5\x14\xf7\ +\x7f\xe8\xc3\x24\x71\xbc\x1f\xc9\xfb\x1d\x08\x5c\x0e\x61\x10\xb4\ +\x66\x66\x1e\x7a\xea\xe4\xa7\x4e\x7e\x69\xfa\xbe\xe9\x45\x6b\xfb\ +\xa3\x69\xad\x25\x08\x43\x82\x20\x20\x8a\x22\xc2\x30\xe4\xf6\xf2\ +\x72\x5d\x6b\xfd\x6a\x14\x45\x58\x6b\x99\x18\x9f\x20\x49\x92\x7e\ +\xe6\x1f\xa0\x48\x0f\x6f\x02\x40\x29\x29\xa3\x42\xe4\xee\x9d\xbe\ +\xf7\x8d\x91\xf2\xc8\x5f\x6f\xdf\xbe\x7d\x7a\x79\x79\xf9\xc9\x5a\ +\x6d\xf3\xe3\xcd\x66\x53\x23\x04\x38\xc7\xf4\xb1\xe9\xe6\x89\x13\ +\x33\x67\x85\x10\xef\x00\x8c\x96\x47\x39\x72\xf8\xf0\x1d\x3f\x1e\ +\x54\x3f\xae\xa5\x1b\x24\xa9\xb0\x56\x0b\xad\x75\x56\x2a\x95\xb6\ +\x7d\xdf\x7f\x6d\x64\x64\xe4\xb5\x4e\xa7\x3b\xab\x94\xfc\xbc\x90\ +\xdc\x5f\x2a\x96\xb6\x8e\x1d\xbb\xef\x57\xa5\x91\xe2\xbf\xd2\x2c\ +\x45\x2b\xcd\xc4\xf8\x38\x4a\xa9\xe1\x68\x1e\xac\xff\x0e\x00\x68\ +\xf0\x5f\xd8\xaf\x76\x9c\x4c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ +\x42\x60\x82\ \x00\x00\x03\x66\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ @@ -1037,6 +1534,11 @@ qt_resource_name = "\ \x05\x46\x9a\xc7\ \x00\x61\ \x00\x64\x00\x64\x00\x72\x00\x65\x00\x73\x00\x73\x00\x62\x00\x6f\x00\x6f\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x11\ +\x03\x89\x73\x27\ +\x00\x63\ +\x00\x61\x00\x6e\x00\x2d\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2d\x00\x31\x00\x36\x00\x70\x00\x78\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\ \x00\x09\ \x09\x6b\xb7\xc7\ \x00\x69\ @@ -1046,6 +1548,11 @@ qt_resource_name = "\ \x00\x73\ \x00\x75\x00\x62\x00\x73\x00\x63\x00\x72\x00\x69\x00\x70\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ \ +\x00\x11\ +\x05\x89\x73\x07\ +\x00\x63\ +\x00\x61\x00\x6e\x00\x2d\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2d\x00\x32\x00\x34\x00\x70\x00\x78\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\ \x00\x0e\ \x0a\x51\x2d\xe7\ \x00\x69\ @@ -1072,16 +1579,18 @@ qt_resource_name = "\ qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ -\x00\x00\x00\x18\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x03\ +\x00\x00\x00\x18\x00\x02\x00\x00\x00\x0d\x00\x00\x00\x03\ \x00\x00\x00\x40\x00\x00\x00\x00\x00\x01\x00\x00\x02\x28\ -\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x17\x9c\ -\x00\x00\x01\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x2a\x64\ -\x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x12\x44\ -\x00\x00\x01\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x2d\x58\ -\x00\x00\x01\x62\x00\x00\x00\x00\x00\x01\x00\x00\x2f\xd1\ +\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x25\xb2\ +\x00\x00\x01\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x49\x22\ \x00\x00\x00\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x14\xe9\ -\x00\x00\x00\xdc\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x17\ -\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x01\x00\x00\x1d\x81\ +\x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x12\x44\ +\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x00\x28\x2d\ +\x00\x00\x01\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x16\ +\x00\x00\x01\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x8f\ +\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x22\xff\ +\x00\x00\x01\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x38\xd5\ +\x00\x00\x01\x4e\x00\x00\x00\x00\x00\x01\x00\x00\x3c\x3f\ \x00\x00\x00\x62\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x09\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ " diff --git a/bitmessagemain.py b/bitmessagemain.py index dcd9792f..19a9900c 100644 --- a/bitmessagemain.py +++ b/bitmessagemain.py @@ -18,7 +18,7 @@ try: from PyQt4.QtCore import * from PyQt4.QtGui import * except Exception, err: - print 'Bitmessage requires PyQt. You can download it from http://www.riverbankcomputing.com/software/pyqt/download or by searching Google for \'PyQt Download\' (without quotes).' + print 'PyBitmessage requires PyQt. You can download it from http://www.riverbankcomputing.com/software/pyqt/download or by searching Google for \'PyQt Download\' (without quotes).' print 'Error message:', err sys.exit() import ConfigParser @@ -2183,7 +2183,7 @@ class MyForm(QtGui.QMainWindow): pass self.trayIcon = QtGui.QSystemTrayIcon(self) - self.trayIcon.setIcon( QtGui.QIcon(':/newPrefix/images/inbox.png') ) + self.trayIcon.setIcon( QtGui.QIcon(':/newPrefix/images/can-icon-16px.png') ) traySignal = "activated(QSystemTrayIcon::ActivationReason)" QtCore.QObject.connect(self.trayIcon, QtCore.SIGNAL(traySignal), self.__icon_activated) menu = QtGui.QMenu() @@ -2910,7 +2910,6 @@ class MyForm(QtGui.QMainWindow): def click_pushButtonAddAddressBook(self): - print 'click_pushButtonAddAddressBook' self.NewSubscriptionDialogInstance = NewSubscriptionDialog(self) if self.NewSubscriptionDialogInstance.exec_(): diff --git a/bitmessageui.py b/bitmessageui.py index 2b9e6443..2937cac6 100644 --- a/bitmessageui.py +++ b/bitmessageui.py @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file 'bitmessageui.ui' # -# Created: Thu Nov 15 14:12:54 2012 -# by: PyQt4 UI code generator 4.9.4 +# Created: Sun Nov 25 19:29:28 2012 +# by: PyQt4 UI code generator 4.9.5 # # WARNING! All changes made in this file will be lost! @@ -18,6 +18,9 @@ class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(795, 561) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/can-icon-24px.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + MainWindow.setWindowIcon(icon) MainWindow.setTabShape(QtGui.QTabWidget.Rounded) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) @@ -71,9 +74,9 @@ class Ui_MainWindow(object): self.textEditInboxMessage.setBaseSize(QtCore.QSize(0, 500)) self.textEditInboxMessage.setObjectName(_fromUtf8("textEditInboxMessage")) self.verticalLayout_2.addWidget(self.textEditInboxMessage) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/inbox.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabWidget.addTab(self.inbox, icon, _fromUtf8("")) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/inbox.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabWidget.addTab(self.inbox, icon1, _fromUtf8("")) self.send = QtGui.QWidget() self.send.setObjectName(_fromUtf8("send")) self.gridLayout_2 = QtGui.QGridLayout(self.send) @@ -131,9 +134,9 @@ class Ui_MainWindow(object): self.labelFrom.setText(_fromUtf8("")) self.labelFrom.setObjectName(_fromUtf8("labelFrom")) self.gridLayout_2.addWidget(self.labelFrom, 2, 2, 1, 3) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/send.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabWidget.addTab(self.send, icon1, _fromUtf8("")) + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/send.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabWidget.addTab(self.send, icon2, _fromUtf8("")) self.sent = QtGui.QWidget() self.sent.setObjectName(_fromUtf8("sent")) self.verticalLayout = QtGui.QVBoxLayout(self.sent) @@ -166,9 +169,9 @@ class Ui_MainWindow(object): self.textEditSentMessage = QtGui.QTextEdit(self.sent) self.textEditSentMessage.setObjectName(_fromUtf8("textEditSentMessage")) self.verticalLayout.addWidget(self.textEditSentMessage) - icon2 = QtGui.QIcon() - icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/sent.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabWidget.addTab(self.sent, icon2, _fromUtf8("")) + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/sent.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabWidget.addTab(self.sent, icon3, _fromUtf8("")) self.youridentities = QtGui.QWidget() self.youridentities.setObjectName(_fromUtf8("youridentities")) self.gridLayout_3 = QtGui.QGridLayout(self.youridentities) @@ -206,9 +209,9 @@ class Ui_MainWindow(object): self.tableWidgetYourIdentities.verticalHeader().setSortIndicatorShown(False) self.tableWidgetYourIdentities.verticalHeader().setStretchLastSection(False) self.gridLayout_3.addWidget(self.tableWidgetYourIdentities, 1, 0, 1, 2) - icon3 = QtGui.QIcon() - icon3.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/identities.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabWidget.addTab(self.youridentities, icon3, _fromUtf8("")) + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/identities.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabWidget.addTab(self.youridentities, icon4, _fromUtf8("")) self.subscriptions = QtGui.QWidget() self.subscriptions.setObjectName(_fromUtf8("subscriptions")) self.gridLayout_4 = QtGui.QGridLayout(self.subscriptions) @@ -240,9 +243,9 @@ class Ui_MainWindow(object): self.tableWidgetSubscriptions.horizontalHeader().setStretchLastSection(True) self.tableWidgetSubscriptions.verticalHeader().setVisible(False) self.gridLayout_4.addWidget(self.tableWidgetSubscriptions, 2, 0, 1, 2) - icon4 = QtGui.QIcon() - icon4.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/subscriptions.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabWidget.addTab(self.subscriptions, icon4, _fromUtf8("")) + icon5 = QtGui.QIcon() + icon5.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/subscriptions.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabWidget.addTab(self.subscriptions, icon5, _fromUtf8("")) self.addressbook = QtGui.QWidget() self.addressbook.setObjectName(_fromUtf8("addressbook")) self.gridLayout_5 = QtGui.QGridLayout(self.addressbook) @@ -273,9 +276,9 @@ class Ui_MainWindow(object): self.tableWidgetAddressBook.horizontalHeader().setStretchLastSection(True) self.tableWidgetAddressBook.verticalHeader().setVisible(False) self.gridLayout_5.addWidget(self.tableWidgetAddressBook, 2, 0, 1, 2) - icon5 = QtGui.QIcon() - icon5.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/addressbook.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabWidget.addTab(self.addressbook, icon5, _fromUtf8("")) + icon6 = QtGui.QIcon() + icon6.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/addressbook.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabWidget.addTab(self.addressbook, icon6, _fromUtf8("")) self.blackwhitelist = QtGui.QWidget() self.blackwhitelist.setObjectName(_fromUtf8("blackwhitelist")) self.gridLayout_6 = QtGui.QGridLayout(self.blackwhitelist) @@ -310,17 +313,17 @@ class Ui_MainWindow(object): self.tableWidgetBlacklist.horizontalHeader().setStretchLastSection(True) self.tableWidgetBlacklist.verticalHeader().setVisible(False) self.gridLayout_6.addWidget(self.tableWidgetBlacklist, 3, 0, 1, 2) - icon6 = QtGui.QIcon() - icon6.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/blacklist.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabWidget.addTab(self.blackwhitelist, icon6, _fromUtf8("")) + icon7 = QtGui.QIcon() + icon7.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/blacklist.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabWidget.addTab(self.blackwhitelist, icon7, _fromUtf8("")) self.networkstatus = QtGui.QWidget() self.networkstatus.setObjectName(_fromUtf8("networkstatus")) self.pushButtonStatusIcon = QtGui.QPushButton(self.networkstatus) self.pushButtonStatusIcon.setGeometry(QtCore.QRect(680, 440, 21, 23)) self.pushButtonStatusIcon.setText(_fromUtf8("")) - icon7 = QtGui.QIcon() - icon7.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/redicon.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.pushButtonStatusIcon.setIcon(icon7) + icon8 = QtGui.QIcon() + icon8.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/redicon.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.pushButtonStatusIcon.setIcon(icon8) self.pushButtonStatusIcon.setFlat(True) self.pushButtonStatusIcon.setObjectName(_fromUtf8("pushButtonStatusIcon")) self.tableWidgetConnectionCount = QtGui.QTableWidget(self.networkstatus) @@ -367,9 +370,9 @@ class Ui_MainWindow(object): self.labelBroadcastCount = QtGui.QLabel(self.networkstatus) self.labelBroadcastCount.setGeometry(QtCore.QRect(350, 150, 171, 16)) self.labelBroadcastCount.setObjectName(_fromUtf8("labelBroadcastCount")) - icon8 = QtGui.QIcon() - icon8.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/networkstatus.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.tabWidget.addTab(self.networkstatus, icon8, _fromUtf8("")) + icon9 = QtGui.QIcon() + icon9.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/networkstatus.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.tabWidget.addTab(self.networkstatus, icon9, _fromUtf8("")) self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) diff --git a/bitmessageui.ui b/bitmessageui.ui index 2f7edf1a..d30c64d9 100644 --- a/bitmessageui.ui +++ b/bitmessageui.ui @@ -13,6 +13,10 @@ Bitmessage + + + :/newPrefix/images/can-icon-24px.png:/newPrefix/images/can-icon-24px.png + QTabWidget::Rounded diff --git a/images/addressbook.png b/images/addressbook.png new file mode 100644 index 0000000000000000000000000000000000000000..6942413425124a6038ac0aeb7913ead1d5a47d17 GIT binary patch literal 673 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 Y0Ed1?_5j`8Z~y=R07*qoM6N<$g4I6e9smFU literal 0 HcmV?d00001 diff --git a/images/can-icon-24px.png b/images/can-icon-24px.png new file mode 100644 index 0000000000000000000000000000000000000000..45e397e3a7456235c333cc25dd567113215975b9 GIT binary patch literal 4260 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 literal 0 HcmV?d00001 diff --git a/images/inbox.png b/images/inbox.png new file mode 100644 index 0000000000000000000000000000000000000000..dc6a6f7590ea4e60253b7289386c0c1e35e2c15b GIT binary patch literal 687 zcmV;g0#N;lP)EPV+8Au8U z*LD5mf$Ni#a}IrT!j%$T+IKxq?JJcE9u#wR<2|O>(j0!0C43 z_Po<>!)i9sXf!Z8H8n@MvqX~h2?YD_rw3PBGI&ALF5$)MDm)^J#bRi+S~xy3q6(|k zD();UBA-m&UMb8zg^mJ+=LM-7L_p7FkDi=hZJA64bb=y@$KwdF-;w$1>#xRx?$f0037HSeZJtfNJ@;1O%!YhBXg2Sm4xRx=D z6^@5oBxNS7_jQyD*Dyf0-j^FkUv}&_CH99U1WQZ!y1oZi+eXAR6O82+L?n?;O(%Xn z3s2I@@_jhMP(XeSZew%#E>4e)tD0$3Eh)yb0&+D`x@oyM1EHx)sXVmw&p zkcno!jz+Df>O!Fq97W(t;qdT~v(<>q$YycSJo3jJe=cngpsHuA=z0itIy7Uk5#;GNv z6=N1I0tT%MMZuL{z&{Hi8>Jw)G3tDRtn@2XTO)`YOS5p{Lbrk-=t8@2p<*_opi$Zy z!c3+nlgxPUby~D4RD5u_FOz$I_q;cWs?};xN}UF<2miJ{rD^)WOp=5@l$*`w%{Y#? zUcax81|{AV)Q%@^Yhn1KI3PA;>w0ao6;?ym?iI2#BzqN#O%NPID##48aDx^cC!=$PtS`2aK&RGH6ztH0Hf|HZp zW&7u(*POu0j^So<_^sfIGlMC0T*fS?PcRoPWJA|DdZtM6pXPtocL4?f`5zIWLM5Cu P00000NkvXXu0mjfF=!z1 literal 0 HcmV?d00001 diff --git a/images/redicon.png b/images/redicon.png new file mode 100644 index 0000000000000000000000000000000000000000..9d8440bec2adf6a6f8b0c3f08904211ec1eb7d09 GIT binary patch literal 3295 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 R^S1y1002ovPDHLkV1nu28eaea literal 0 HcmV?d00001 diff --git a/images/yellowicon.png b/images/yellowicon.png new file mode 100644 index 0000000000000000000000000000000000000000..31bf1909bea9c8c93a7fa8a8be7eadafaad57d50 GIT binary patch literal 3293 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 literal 0 HcmV?d00001 From 2b4c6b67a8e60bb87af8e3d9d6435ce0bbd8dbea Mon Sep 17 00:00:00 2001 From: Atheros1 Date: Mon, 26 Nov 2012 14:18:52 -0500 Subject: [PATCH 2/2] fixed potential attack vector (attaching a bad version message as message ack data) --- bitmessagemain.py | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/bitmessagemain.py b/bitmessagemain.py index 19a9900c..f992e31f 100644 --- a/bitmessagemain.py +++ b/bitmessagemain.py @@ -647,7 +647,7 @@ class receiveDataThread(QThread): sqlReturnQueue.get() sqlLock.release() - blockMessage = False #Set to True if the user shouldn't see the message according to black or white lists. + blockMessage = False #Gets set to True if the user shouldn't see the message according to black or white lists. fromAddress = encodeAddress(sendersAddressVersionNumber,sendersStreamNumber,ripe.digest()) if config.get('bitmessagesettings', 'blackwhitelist') == 'black': t = (fromAddress,) @@ -790,15 +790,6 @@ class receiveDataThread(QThread): return #We must check to make sure the proof of work is sufficient. - #POW, = unpack('>Q',hashlib.sha512(hashlib.sha512(self.data[24:24+self.payloadLength]).digest()).digest()[4:12]) - #print 'POW:', POW - #if POW > 2**64 / ((self.payloadLength+payloadLengthExtraBytes) * averageProofOfWorkNonceTrialsPerByte): - # printLock.acquire() - # print 'The Proof of Work in the pubkey message is insufficient. Ignoring it.' - # print 'pubkey payload length:', len(self.data[24:self.payloadLength+24]) - # print repr(self.data[24:self.payloadLength+24]) - # printLock.release() - # return if not self.isProofOfWorkSufficient(): print 'Proof of work in pubkey message insufficient.' return @@ -1022,7 +1013,6 @@ class receiveDataThread(QThread): if queryreturn <> []: for row in queryreturn: objectType, payload = row - print 'Sending data out of inventory that came from sql.' #todo: remove line self.sendData(objectType,payload) else: print 'Someone asked for an object with a getdata which is not in either our memory inventory or our SQL inventory. That shouldn\'t have happened.' @@ -1256,9 +1246,9 @@ class receiveDataThread(QThread): #We have received a version message def recversion(self): if self.payloadLength < 83: - self.data = '' + #This version message is unreasonably short. Forget it. return - else: + elif not self.verackSent: #There is a potential exploit if we don't check to make sure that we have not already received and accepted a version message: An attacker could connect directly to us, send a msg message with the ackdata set to an invalid version message which would cause us to close the connection to the attacker thus proving that we were able to decode the message. Checking the connectionIsOrWasFullyEstablished variable would also suffice. self.remoteProtocolVersion, = unpack('>L',self.data[24:28]) #print 'remoteProtocolVersion', self.remoteProtocolVersion self.myExternalIP = socket.inet_ntoa(self.data[64:68]) @@ -1308,18 +1298,6 @@ class receiveDataThread(QThread): self.sendverack() if self.initiatedConnection == False: self.sendversion() - '''#Now that we have a friendly connection with this peer, we should advertise it to our other peers - payload = '\x01' - payload += pack('>I',int(time.time())) - payload += pack('>I',self.streamNumber) - payload += pack('>q',1) #service bit flags offered by this node - payload += '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF' + socket.inet_aton(self.HOST) - payload += pack('>H',self.remoteNodeIncomingPort)#remote port - datatosend = '\xE9\xBE\xB4\xD9addr\x00\x00\x00\x00\x00\x00\x00\x00' - datatosend += pack('>L',len(payload)) #payload length - datatosend += hashlib.sha512(payload).digest()[0:4] - datatosend += payload - broadcastToSendDataQueues((self.streamNumber, 'send', datatosend))''' #Sends a version message def sendversion(self): @@ -1449,9 +1427,9 @@ class sendDataThread(QThread): self.streamNumber = specifiedStreamNumber elif command == 'send': try: - #To prevent some network analysis, 'leak' the data out to our peer after waiting a sort random amount of time. + #To prevent some network analysis, 'leak' the data out to our peer after waiting a random amount of time. random.seed() - #time.sleep(random.randrange(0, 5)) todo: uncomment this line. + time.sleep(random.randrange(0, 5)) self.sock.sendall(data) self.lastTimeISentData = int(time.time()) except: @@ -1845,7 +1823,7 @@ class singleWorker(QThread): payload += messageToTransmit #Later, if anyone impliments clients that don't send the ack_data, then we should probably check here to make sure that the receiver will make use of this ack_data and not attach it if not. - fullAckPayload = self.generateFullAckMessage(ackdata,fromStreamNumber) + fullAckPayload = self.generateFullAckMessage(ackdata,toStreamNumber) payload += encodeVarint(len(fullAckPayload)) payload += fullAckPayload sendersPrivKey = rsa.PrivateKey(config.getint(fromaddress, 'n'),config.getint(fromaddress, 'e'),config.getint(fromaddress, 'd'),config.getint(fromaddress, 'p'),config.getint(fromaddress, 'q'))