From d104c6669b28e38b87e6c951dd21b54c39250bcc Mon Sep 17 00:00:00 2001 From: koldo Date: Sat, 21 May 2011 20:25:54 +0000 Subject: [PATCH] MAPIEx: Modified OpenSubFolder() git-svn-id: svn://ultimatepp.org/upp/trunk@3442 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- bazaar/MAPIEx/MAPIEx.cpp | 8 +++++--- bazaar/MAPIEx/MAPIEx.h | 2 +- bazaar/MAPIEx/MAPIFolder.cpp | 10 ++++++---- bazaar/MAPIEx/MAPIFolder.h | 3 ++- bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tpp | 6 +++--- bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tppi | 16 ++++++++-------- 6 files changed, 25 insertions(+), 20 deletions(-) diff --git a/bazaar/MAPIEx/MAPIEx.cpp b/bazaar/MAPIEx/MAPIEx.cpp index 66cad267e..722319235 100644 --- a/bazaar/MAPIEx/MAPIEx.cpp +++ b/bazaar/MAPIEx/MAPIEx.cpp @@ -349,10 +349,12 @@ bool MAPIEx::OpenFolder(unsigned long ulFolderID, MAPIFolder& folder) { return false; } -bool MAPIEx::OpenFolder(const String &folderName, MAPIFolder &folder) { +bool MAPIEx::OpenFolder(const String &folderName, MAPIFolder &folder, bool fullPath) { MAPIFolder root; - if(OpenRootFolder(root)) - root.OpenSubFolder(folderName, folder); + if(!OpenRootFolder(root)) + return false; + if (!root.OpenSubFolder(folderName, folder, fullPath, "")) + return false; folder.GetHierarchy(); folder.GetContents(); return true; diff --git a/bazaar/MAPIEx/MAPIEx.h b/bazaar/MAPIEx/MAPIEx.h index 0765e17b8..77797918d 100644 --- a/bazaar/MAPIEx/MAPIEx.h +++ b/bazaar/MAPIEx/MAPIEx.h @@ -84,7 +84,7 @@ public: CPOOM* GetPOOM(); #endif - bool OpenFolder(const String &folderName, MAPIFolder &folder); + bool OpenFolder(const String &folderName, MAPIFolder &folder, bool fullPath = true); bool OpenSpecialFolder(unsigned long ulFolderID, MAPIFolder &folder); bool OpenRootFolder(MAPIFolder &folder); bool OpenInbox(MAPIFolder &folder); diff --git a/bazaar/MAPIEx/MAPIFolder.cpp b/bazaar/MAPIEx/MAPIFolder.cpp index 9e3178244..0ea512f6a 100644 --- a/bazaar/MAPIEx/MAPIFolder.cpp +++ b/bazaar/MAPIEx/MAPIFolder.cpp @@ -103,20 +103,22 @@ LPMAPITABLE MAPIFolder::GetHierarchy() { } // High Level function to open a sub folder by iterating recursively (DFS) over all folders -// (use instead of manually calling GetHierarchy and GetNextSubFolder) -bool MAPIFolder::OpenSubFolder(const String &subFolderName, MAPIFolder &subFolder) { +bool MAPIFolder::OpenSubFolder(const String &subFolderName, MAPIFolder &subFolder, + bool fullPath, String path) { if(!GetHierarchy()) return NULL; String strFolder; MAPIFolder folder; - MAPIFolder* pSubFolder=NULL; + MAPIFolder* pSubFolder = NULL; while(GetNextSubFolder(folder, strFolder)) { bool retSubFolder; + if (fullPath) + strFolder = path + "/" + strFolder; if(!CompareNoCase(strFolder, subFolderName)) retSubFolder = subFolder.Attach(m_pMAPI, folder.Detach()); else - retSubFolder = folder.OpenSubFolder(subFolderName, subFolder); + retSubFolder = folder.OpenSubFolder(subFolderName, subFolder, fullPath, strFolder); if(retSubFolder) return true; } diff --git a/bazaar/MAPIEx/MAPIFolder.h b/bazaar/MAPIEx/MAPIFolder.h index e47b08cdb..b647e7d43 100644 --- a/bazaar/MAPIEx/MAPIFolder.h +++ b/bazaar/MAPIEx/MAPIFolder.h @@ -68,7 +68,8 @@ protected: bool IsOpened() {return m_pHierarchy;}; public: String GetName(); - bool OpenSubFolder(const String &subFolderName, MAPIFolder &subFolder); + bool OpenSubFolder(const String &subFolderName, MAPIFolder &subFolder, + bool fullPath = false, String path = Null); bool CreateSubFolder(const String &subFolderName, MAPIFolder &subFolder); bool DeleteSubFolder(const String &subFolder); bool DeleteSubFolder(MAPIFolder &folder); diff --git a/bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tpp b/bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tpp index a5206e151..547f5e582 100644 --- a/bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tpp +++ b/bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tpp @@ -90,15 +90,15 @@ e]()&] [s3;%% &] [s4; &] [s5;:MAPIMessage`:`:GetTo`(`): [_^String^ String]_[* GetTo]()&] -[s2;%% Returns the `"to`" email addresses.&] +[s2;%% Returns the `"to`" email display addresses.&] [s3; &] [s4; &] [s5;:MAPIMessage`:`:GetCC`(`): [_^String^ String]_[* GetCC]()&] -[s2;%% Returns the `"cc`" email addresses.&] +[s2;%% Returns the `"cc`" email display addresses.&] [s3; &] [s4; &] [s5;:MAPIMessage`:`:GetBCC`(`): [_^String^ String]_[* GetBCC]()&] -[s2;%% Returns the `"bcc`" email addresses.&] +[s2;%% Returns the `"bcc`" email display addresses.&] [s3; &] [s4; &] [s5;:MAPIMessage`:`:GetSensitivity`(`): [@(0.0.255) int]_[* GetSensitivity]()&] diff --git a/bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tppi b/bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tppi index 994ac25a0..f02efa8dd 100644 --- a/bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tppi +++ b/bazaar/MAPIEx/src.tpp/MAPIMessage$en-us.tppi @@ -1,11 +1,11 @@ TITLE("class MAPIMessage : public MAPIObject") COMPRESSED -120,156,237,89,235,111,219,56,18,255,87,136,102,91,36,129,207,16,245,176,100,27,11,36,117,250,8,54,137,139,196,123,251,193,80,108,218,98,18,93,101,201,39,209,73,179,69,251,183,223,240,33,137,242,75,114,239,62,94,81,216,22,57,175,223,204,112,56,163,140,77,244,219,111,70,203,56,50,106,254,245,46,232,3,89,69,204,31,135,182,237,245,137,233,244,191,254,49,236,246,57,63,6,126,203,197,150,231,88,216,54,59,240,129,45,108,58,166,101,99,207,236,218,158,101,121,70,111,30,145,44,243,199,145,233,121,130,201,108,153,71,166,235,152,216,181,61,219,195,150,235,153,192,107,26,134,105,184,166,131,109,203,51,157,94,64,179,185,63,54,128,220,2,29,221,142,213,53,176,97,184,24,27,150,233,26,150,99,99,108,153,32,194,116,77,108,56,61,26,7,254,248,115,167,207,25,108,14,202,233,128,233,29,144,102,219,6,72,231,108,182,133,45,195,180,28,220,117,58,189,25,125,12,227,109,144,156,90,72,174,209,11,25,93,40,68,196,238,159,158,57,125,12,172,157,86, -231,200,5,181,182,3,202,186,28,145,5,108,166,217,113,186,216,177,193,36,219,48,123,41,253,247,42,76,233,130,198,76,73,8,49,54,113,127,134,221,62,152,240,243,231,207,54,182,13,233,41,23,108,193,6,216,109,98,88,3,28,46,118,186,70,215,241,176,103,88,174,109,58,46,64,95,146,148,44,20,146,153,109,246,21,14,175,229,29,117,112,7,60,106,120,96,191,211,5,1,6,128,128,111,112,164,3,255,45,175,199,20,51,231,227,76,221,86,247,8,156,100,57,134,219,53,92,219,117,108,64,98,226,14,6,71,26,28,63,132,161,23,39,233,130,68,254,248,251,228,7,26,163,239,223,49,207,146,179,99,8,72,219,54,219,198,9,26,103,70,255,237,91,52,62,61,115,251,54,186,62,255,114,121,77,179,140,60,82,223,255,241,227,157,207,183,133,181,194,231,103,199,70,219,104,131,129,39,6,210,246,138,152,244,52,254,105,111,42,179,169,135,198,37,159,133,84,134,89,104,226,143,79,173,138,70,190,216,131,101,157,124,185,154,69,225,60,167,63,179,250,146,101,56,251,23, -157,51,159,27,209,237,163,225,138,69,73,242,21,209,5,9,35,180,144,226,218,124,211,2,87,73,75,249,87,238,128,143,199,216,244,78,62,137,207,51,92,250,0,13,146,56,99,233,106,206,146,20,5,148,129,180,220,13,182,16,144,57,27,24,245,199,227,233,73,143,139,209,65,29,159,112,62,147,43,80,135,19,205,75,45,202,200,70,198,125,17,174,64,215,148,61,37,1,186,10,51,86,107,220,101,246,103,156,82,18,40,203,74,199,162,89,146,68,254,4,164,230,36,186,161,183,148,173,210,56,67,96,36,69,225,67,238,81,20,102,104,37,136,53,179,247,120,134,164,95,207,179,91,161,158,171,219,105,66,73,232,31,111,35,56,179,208,76,236,78,166,191,79,116,2,110,159,95,154,205,229,100,133,177,36,69,220,84,4,161,148,70,67,68,151,80,123,194,248,17,177,39,138,158,73,4,232,146,7,52,126,251,143,82,133,66,6,210,246,98,27,128,64,6,1,231,203,31,190,77,223,77,91,252,215,199,36,10,104,202,159,194,152,77,91,123,65,75,9,0,120,114,47,133,220,35, -249,13,40,223,9,204,11,178,12,253,22,82,4,82,182,36,146,191,11,194,7,249,216,170,40,2,11,148,239,226,47,105,152,164,33,123,21,254,187,188,254,50,188,29,157,223,12,62,76,39,55,195,219,235,243,171,214,86,3,185,71,238,200,51,29,37,119,80,254,10,141,123,3,32,49,101,194,189,121,24,86,25,119,184,132,150,187,90,33,11,99,101,122,190,94,0,121,9,217,19,90,42,179,243,221,18,7,106,33,18,7,40,34,51,26,209,0,145,12,77,223,4,240,147,65,212,31,24,200,203,86,179,69,200,166,111,120,242,230,225,93,7,131,124,72,231,7,18,101,178,82,8,0,255,36,81,24,228,138,67,64,2,38,110,106,39,41,69,219,220,168,175,125,190,252,244,153,167,158,190,118,53,252,171,97,122,221,61,37,47,31,161,116,23,9,118,186,150,96,107,89,165,130,141,114,190,109,105,165,211,79,79,85,136,151,124,243,144,36,43,131,61,132,195,36,67,45,203,238,75,24,7,201,11,208,165,139,173,65,207,85,237,138,122,123,163,252,136,224,160,4,232,65,254,42,165, -224,225,139,225,31,124,33,91,205,231,224,45,238,224,121,148,0,17,253,6,229,144,235,84,105,151,137,4,185,188,24,112,207,95,113,22,73,23,211,151,130,164,105,44,160,102,236,169,159,124,91,175,157,252,89,115,75,163,74,249,137,178,207,80,124,32,178,27,122,238,88,10,176,132,166,130,106,107,169,214,142,220,147,160,106,8,15,164,114,147,105,122,67,22,249,13,54,185,151,106,239,215,212,151,132,187,76,200,4,5,138,129,164,41,114,41,244,3,119,86,35,245,130,178,70,255,65,174,191,91,137,102,162,78,185,164,170,243,125,38,201,170,186,85,12,118,105,135,82,53,10,53,231,243,135,123,196,63,53,229,138,168,129,126,160,68,44,108,30,128,91,58,167,225,51,13,106,108,208,201,234,172,72,21,237,65,118,92,145,140,93,39,65,248,16,206,9,11,147,184,198,158,109,228,117,118,65,239,201,208,66,99,58,200,64,113,189,213,27,166,147,213,25,52,87,180,186,29,13,78,236,40,169,201,214,81,178,75,243,244,13,75,224,98,148,53,155,4,65,10,130,139,90,88,239,130, -65,141,226,193,96,183,226,249,252,215,21,191,175,213,252,126,159,234,217,127,163,27,234,78,6,237,192,51,92,254,155,5,58,191,122,171,116,181,199,180,36,109,106,133,122,186,99,132,173,178,189,118,84,40,107,45,17,84,77,141,200,155,160,189,250,139,78,169,70,117,222,224,53,142,67,248,183,58,119,23,127,13,111,47,114,175,195,106,45,72,160,57,160,28,134,203,16,218,196,45,78,46,110,253,10,157,174,253,19,1,189,105,166,87,66,69,213,70,163,4,205,224,200,147,136,55,173,51,10,157,18,229,130,110,232,183,82,216,241,73,83,59,43,108,211,99,121,24,248,236,81,254,226,83,200,70,175,168,99,168,200,16,77,227,218,217,170,52,141,239,84,211,8,195,171,232,1,90,91,14,227,46,6,121,107,111,140,40,5,73,60,122,93,234,163,4,24,151,65,183,246,141,149,30,68,1,97,4,69,225,87,42,250,11,173,55,47,13,146,39,188,178,35,53,139,126,144,129,14,189,165,23,58,215,187,127,78,148,241,30,191,39,55,66,236,24,253,161,24,194,121,16,166,147,209,176, -135,10,167,241,153,152,240,76,94,144,244,21,29,143,146,147,210,224,246,14,1,131,193,134,128,57,73,103,188,73,77,150,32,100,48,104,32,228,253,22,41,179,8,122,240,170,172,247,155,194,26,221,48,183,116,25,189,214,94,51,138,170,114,0,120,224,248,217,43,51,31,30,9,19,83,19,75,208,35,133,159,176,9,140,205,122,164,243,32,208,210,92,188,59,65,213,20,111,201,197,249,19,73,97,80,218,149,238,186,156,234,123,6,193,14,52,155,40,213,236,67,183,39,111,37,117,43,137,255,187,159,167,74,149,41,215,164,47,9,171,243,131,242,55,88,153,110,147,119,243,231,213,85,233,100,160,2,39,242,97,166,60,29,98,102,86,153,77,215,114,254,255,9,95,55,227,149,83,192,90,134,173,165,211,115,18,6,106,238,43,71,130,131,146,73,77,8,190,62,50,178,108,125,128,208,107,152,98,56,0,139,152,130,54,15,203,1,208,132,132,67,145,149,227,225,246,180,175,225,148,149,186,244,75,225,128,82,110,117,73,50,52,247,75,117,210,145,222,16,191,119,95,146,119,235,131, -207,118,92,250,20,160,48,177,197,174,16,87,166,35,45,208,192,113,80,190,22,115,99,83,36,250,24,249,63,192,161,205,154,191,138,130,191,115,21,254,93,50,245,146,56,111,95,246,6,164,96,218,253,194,24,232,182,191,174,220,214,181,228,213,87,133,90,37,22,103,191,89,69,209,102,70,10,233,69,46,174,177,53,71,127,65,35,206,246,90,245,192,30,228,107,12,191,128,126,45,148,129,18,40,115,114,169,151,29,33,163,33,22,249,6,31,250,254,103,241,86,188,230,77,191,162,211,187,6,190,81,190,185,207,248,253,194,73,26,245,194,119,27,179,17,111,10,246,120,113,109,62,218,113,171,87,169,118,29,1,177,171,247,148,85,182,166,185,32,222,77,127,12,35,90,119,255,148,56,10,150,3,171,244,3,176,136,90,170,65,2,89,37,38,104,210,218,139,236,81,16,106,200,10,190,246,198,223,135,248,200,35,254,58,20,39,16,185,100,22,209,133,30,57,248,242,255,3,213,110,146,8, +120,156,237,89,107,111,219,184,18,253,43,68,179,45,146,192,215,16,245,176,100,27,11,36,117,250,8,54,137,139,196,123,247,131,161,216,180,197,36,188,149,37,175,68,39,205,22,237,111,191,67,138,146,40,191,36,239,221,143,183,40,18,91,154,199,57,51,195,209,140,50,54,209,47,191,24,45,227,200,168,249,215,187,160,15,100,21,114,127,204,108,219,235,19,211,233,127,253,109,216,237,11,125,12,250,150,139,45,207,177,176,109,118,224,7,182,176,233,152,150,141,61,179,107,123,150,229,25,189,121,72,210,212,31,135,166,231,73,37,179,101,30,153,174,99,98,215,246,108,15,91,174,103,130,174,105,24,166,225,154,14,182,45,207,116,122,1,77,231,254,216,0,113,11,124,116,59,86,215,192,134,225,98,108,88,166,107,88,142,141,177,101,130,9,211,53,177,225,244,104,20,248,227,207,157,190,80,176,5,41,167,3,208,59,96,205,182,13,176,46,212,108,11,91,134,105,57,184,235,116,122,51,250,200,162,109,148,156,90,74,174,209,99,156,46,20,35,98,247,79,207,156,62,6,213,78, +171,115,228,130,91,219,1,103,93,193,200,2,53,211,236,56,93,236,216,0,201,54,204,94,66,255,92,177,132,46,104,196,149,5,134,177,137,251,51,236,246,1,194,207,159,63,219,216,54,178,72,185,128,5,27,128,219,196,112,13,120,184,216,233,26,93,199,195,158,97,185,182,233,184,64,125,73,18,178,80,76,102,182,217,87,60,188,150,119,212,193,29,136,168,225,1,126,167,11,6,12,32,1,191,33,144,14,252,183,188,30,87,202,66,79,40,117,91,221,35,8,146,229,24,110,215,112,109,215,177,129,137,137,59,24,2,105,8,254,144,134,94,20,39,11,18,250,227,239,147,31,104,140,190,127,199,162,74,206,142,33,33,109,219,108,27,39,104,156,26,253,183,111,209,248,244,204,237,219,232,250,252,203,229,53,77,83,242,72,125,255,199,143,119,190,184,45,209,202,152,159,29,27,109,163,13,0,79,12,164,221,43,114,210,211,244,167,189,105,86,77,61,52,46,245,44,164,42,204,66,19,127,124,106,85,60,138,139,61,184,172,139,47,87,179,144,205,115,249,51,171,159,169,12,103,255, +161,115,238,11,16,221,62,26,174,120,24,199,95,17,93,16,22,162,69,102,174,45,110,90,16,170,12,169,248,149,7,224,227,49,54,189,147,79,242,231,25,46,99,128,6,113,148,242,100,53,231,113,130,2,202,193,90,30,6,91,26,72,157,13,142,250,215,227,233,73,79,152,209,73,29,159,8,61,83,56,80,135,19,205,75,47,10,100,35,112,95,100,40,208,53,229,79,113,128,174,88,202,107,193,93,166,191,71,9,37,129,66,86,6,22,205,226,56,244,39,96,53,23,209,129,222,82,190,74,162,20,1,72,138,216,67,30,81,196,82,180,146,194,26,236,61,145,33,201,215,243,244,86,186,23,238,118,66,40,5,253,227,109,2,103,22,154,201,187,147,233,175,19,93,64,224,243,75,216,194,78,90,128,37,9,18,80,17,164,50,3,13,25,93,66,239,97,209,35,226,79,20,61,147,16,216,197,15,104,252,246,95,165,11,197,12,172,237,229,54,0,131,28,18,46,46,127,248,54,125,55,109,137,79,31,227,48,160,137,248,198,34,62,109,237,37,157,89,0,194,147,251,204,200,61,202, +126,3,203,119,146,243,130,44,153,223,66,74,32,179,157,9,101,159,11,193,135,236,107,171,226,8,16,168,216,69,95,18,22,39,140,191,202,248,93,94,127,25,222,142,206,111,6,31,166,147,155,225,237,245,249,85,107,43,64,17,145,59,242,76,71,241,29,180,191,194,227,222,4,100,156,82,25,222,60,13,171,84,4,60,163,150,135,90,49,99,145,130,158,95,47,136,188,48,254,132,150,10,118,126,183,228,129,90,136,68,1,10,201,140,134,52,64,36,69,211,55,1,124,228,144,245,7,14,246,210,213,108,193,248,244,141,40,222,60,189,235,100,144,15,229,252,64,194,52,235,20,146,192,191,73,200,130,220,49,3,38,0,113,211,59,73,40,218,22,70,253,218,231,203,79,159,69,233,233,215,174,134,127,52,44,175,187,167,248,229,35,180,238,162,192,78,215,10,108,173,170,84,178,81,174,183,173,172,116,249,233,169,74,241,82,220,60,164,200,202,100,15,225,48,101,169,206,218,238,11,139,130,248,5,228,146,197,214,164,231,174,118,101,189,189,209,126,100,114,80,12,242,96,127,149,80, +136,240,197,240,55,113,33,93,205,231,16,45,17,224,121,24,131,16,253,6,237,80,248,84,101,151,202,2,185,188,24,136,200,95,9,149,76,46,162,47,133,72,211,92,64,207,216,211,63,197,109,189,119,138,239,90,88,26,117,202,79,148,127,134,230,3,153,221,240,115,199,19,160,37,61,21,82,91,91,181,118,228,158,164,84,67,122,96,85,64,166,201,13,89,228,79,176,201,125,230,246,126,205,125,41,184,11,66,42,37,80,4,34,77,153,103,70,63,136,96,53,114,47,37,107,252,31,20,250,187,149,28,38,234,156,103,82,117,177,79,51,177,170,111,149,131,93,222,161,85,141,152,22,124,241,229,30,137,159,154,115,37,212,192,63,72,34,206,154,39,224,150,206,41,123,166,65,13,6,93,172,14,69,162,100,15,194,113,69,82,126,29,7,236,129,205,9,103,113,84,131,103,155,120,29,46,152,61,57,90,104,74,7,1,148,143,183,122,96,186,88,29,160,185,146,213,113,52,56,177,163,184,166,90,71,241,46,207,211,55,60,134,7,99,214,179,3,150,46,67,242,138,72,16,36,224, +160,232,137,245,161,24,212,0,24,12,118,3,152,207,255,119,0,239,107,17,188,223,7,97,246,79,96,128,126,148,194,152,240,12,67,193,102,227,206,31,201,85,185,218,227,91,138,54,69,161,190,221,113,194,87,233,94,28,21,201,90,36,82,170,41,136,124,56,218,235,191,152,160,106,92,231,131,95,227,60,176,191,212,121,188,248,99,120,123,145,71,29,174,214,146,4,153,3,218,36,91,50,24,31,183,4,185,152,6,42,114,186,247,79,4,252,38,169,222,33,149,84,27,141,98,52,131,86,64,66,49,204,206,40,76,80,84,24,186,161,223,74,99,199,39,77,113,86,212,166,199,217,161,16,59,73,249,73,108,39,27,51,164,206,161,98,67,14,147,107,103,172,50,76,190,83,195,36,44,181,114,54,104,109,57,148,187,20,178,167,249,198,234,82,136,68,163,215,165,190,98,0,184,20,166,184,111,188,140,32,10,8,39,40,100,95,169,156,59,180,153,189,4,148,157,244,202,157,204,179,156,19,57,248,208,71,125,233,115,125,43,16,66,169,152,253,123,217,13,134,29,163,63,148,203,185, +72,194,116,50,26,246,80,17,52,177,43,19,81,201,11,146,188,162,227,81,124,82,2,110,239,48,48,24,108,24,152,147,100,38,134,215,120,9,70,6,131,6,70,222,111,177,50,11,97,54,175,218,122,191,105,172,209,147,231,150,46,195,215,218,199,143,146,170,28,0,145,56,113,246,202,202,135,175,132,203,109,138,199,232,145,194,71,184,9,138,205,102,167,243,32,208,202,92,190,83,65,213,18,111,101,23,231,79,36,129,5,106,87,185,235,118,170,239,31,164,58,200,108,178,84,59,17,221,94,188,149,210,173,20,254,175,126,94,42,85,165,220,147,126,73,162,206,15,202,95,128,50,217,102,239,230,247,171,171,50,200,32,5,65,20,75,78,121,58,228,46,173,42,155,174,213,252,255,11,190,110,247,43,183,131,181,10,91,43,167,231,152,5,106,31,44,87,133,131,138,73,109,14,190,190,74,242,116,125,177,208,123,152,82,56,128,139,220,142,54,15,203,1,212,164,133,67,153,149,107,227,246,178,175,209,204,58,117,25,151,34,0,165,221,234,165,76,161,121,92,170,27,80,22,13,249, +121,247,67,242,110,125,33,218,206,75,223,14,20,39,190,216,149,226,202,214,164,37,26,52,14,170,215,98,159,108,202,68,95,47,255,1,30,218,14,250,119,89,136,119,177,50,190,75,174,94,30,231,227,203,222,132,20,74,187,95,36,131,220,246,215,152,219,166,150,188,251,170,84,171,194,18,234,55,171,48,220,172,72,105,189,168,197,53,181,230,236,47,104,40,212,94,171,17,216,195,124,77,225,111,176,95,75,101,160,12,102,53,185,212,219,142,180,209,144,75,246,102,31,230,254,103,249,182,188,230,47,0,74,78,159,26,196,141,242,141,126,42,158,47,66,164,209,44,124,183,177,27,137,161,96,79,20,215,246,163,29,79,245,170,212,174,35,32,239,234,51,101,85,173,105,45,200,119,214,31,89,72,235,158,63,37,143,66,229,192,46,253,0,42,178,151,106,148,192,86,201,9,134,180,246,34,125,148,130,26,179,66,175,189,241,119,35,177,242,200,191,26,69,49,100,46,158,133,116,161,103,14,126,249,255,5,38,71,155,74,