From 1eb04c25dfde29c4ae79008a237e6b6cac6bbfab Mon Sep 17 00:00:00 2001 From: jgoerzen Date: Thu, 25 Jul 2002 00:13:09 +0100 Subject: [PATCH] /offlineimap/head: changeset 184 Updated the manual with blinkenlights. Fixed build-dep to have python2.2-dev. Fixed TTY to has isusable() that requires TTYs on stdin and stdout. --- offlineimap/head/debian/changelog | 6 +- offlineimap/head/debian/control | 2 +- offlineimap/head/manual.html | 324 +++++++- offlineimap/head/manual.pdf | Bin 47492 -> 56404 bytes offlineimap/head/manual.ps | 799 ++++++++++++-------- offlineimap/head/manual.txt | 142 +++- offlineimap/head/offlineimap.1 | 138 +++- offlineimap/head/offlineimap.conf | 3 +- offlineimap/head/offlineimap/ui/TTY.py | 3 + offlineimap/head/offlineimap/ui/Tk.py | 5 +- offlineimap/head/offlineimap/ui/detector.py | 4 +- 11 files changed, 1061 insertions(+), 365 deletions(-) diff --git a/offlineimap/head/debian/changelog b/offlineimap/head/debian/changelog index b8c2498..8e9e8aa 100644 --- a/offlineimap/head/debian/changelog +++ b/offlineimap/head/debian/changelog @@ -1,6 +1,10 @@ offlineimap (3.2.0) unstable; urgency=low - * New BLINKENLIGHTS interface! + * New BLINKENLIGHTS interface! Mesmerising, isn't it? + * New ui.Tk.Blinkenlights section in offlineimap.conf. + * New USER INTERFACES section in the manual. + * TTYUI isusable() now checks to see if stdout and stdin are TTYs. + * Added build-dependency on python2.2-dev. Closes: #154167. -- John Goerzen Wed, 24 Jul 2002 07:53:20 -0500 diff --git a/offlineimap/head/debian/control b/offlineimap/head/debian/control index 0b2ae9f..402915b 100644 --- a/offlineimap/head/debian/control +++ b/offlineimap/head/debian/control @@ -2,7 +2,7 @@ Source: offlineimap Section: mail Priority: optional Maintainer: John Goerzen -Build-Depends-Indep: debhelper (>> 3.0.0), python2.2 (>= 2.2.1-4) +Build-Depends-Indep: debhelper (>> 3.0.0), python2.2 (>= 2.2.1-4), python2.2-dev (>= 2.2.1-4) Standards-Version: 3.5.2 Package: offlineimap diff --git a/offlineimap/head/manual.html b/offlineimap/head/manual.html index ffc47ab..8029405 100644 --- a/offlineimap/head/manual.html +++ b/offlineimap/head/manual.html @@ -13,6 +13,7 @@ INSTALLATION
CONFIGURATION
OPTIONS
+USER INTERFACES
EXAMPLES
ERRORS
OTHER FREQUENTLY ASKED QUESTIONS
@@ -25,7 +26,7 @@
- +

NAME

-u will be forced to be used, even if its isuable() method states that it cannot -be. Use this option with care.
+be. Use this option with care. The pre-defined options are +listed in the USER INTERFACES section. + +

USER INTERFACES

+ + + +
+OfflineIMAP has a pluggable user interface system +that lets you choose how the program communicates +information to you. There are two graphical interfaces, one +terminal interface, and two noninteractive interfaces +suitable for scripting or logging purposes. The ui +option in the configuration file specifies the user +interface preferences. The -u command-line option can +override the configuration file. The available values for +the configuration file or command-line are describef in this +section.
+ + + +
+Tk.Blinkenlights
+ + + +
+This is an interface designed to be sleek, fun to watch, and +informative of the overall picture of what +OfflineIMAP is doing. I consider it to be the best +general-purpose interface in OfflineIMAP. +Tk.Blinkenlights contains, by default, a small window with a +row of LEDs and a row of command buttons. The total size of +the window is very small, so it uses little desktop space, +yet it is quite functional. There is also an optional, +toggable, log that shows more detail about what is happening +and is color-coded to match the color of the +lights.
+ + + +
+Tk.Blinkenlights is the only user interface that has +configurable parameters; see the example +offlineimap.conf for more details.
+ + + +
+Each light in the Tk.Blinkenlights interface represents a +thread of execution -- that is, a particular task that +OfflineIMAP is performing right now. The color +indicates what task the particular thread is performing, and +are as follows:
+ + + +
+Black
-The pre-defined options are Tk.TkUI (a graphical -interface), TTY.TTYUI (a text-mode interface), -Noninteractive.Basic (a non-interactive mode suitable -for cronning), and Noninteractive.Quiet (a mode that -generates no output except for errors).
+indicates that this light's thread has terminated; it will +light up again later when new threads start up. So, black +indicates no activity. + + + +
+Red (Meaning 1)
+ + + +
+is the color of the main program's thread, which basically +does nothing but monitor the others. It might remind you of +HAL 9000 in 2001.
+ + + +
+Purple
+ + + +
+is the color of an account synchronization thread that is +monitoring the progress of the folders in that account (not +generating any I/O).
+ + + +
+Cyan
+ + + +
+indicates that the thread is syncing a folder.
+ + + +
+Green
+ + + +
+means that a folder's message list is being +loaded.
+ + + +
+Blue
+ + + +
+is the color of a message synchronization controller +thread.
+ + + +
+Orange
+ + + +
+indicates that an actual message is being +copied.
+ + + +
+Red (Meaning 2)
+ + + +
+indicates that a message is being deleted.
+ + + +
+Yellow
+ + + +
+(bright orange) indicates that message flags are being +added.
+ + + +
+Pink
+ + + +
+(bright red) indicates that message flags are being +removed.
+ + + +
+Red / Black Flashing
+ + + +
+corresponds to the countdown timer that runs between +synchronizations.
+ + + +
+The name of this interface derives from a bit of computer +science history. Eric Raymond's Jargon File defines +blinkenlights, in part, as:
+ + + +
+Front-panel diagnostic lights on a computer, esp. a +dinosaur. Now that dinosaurs are rare, this term usually +refers to status lights on a modem, network hub, or the +like.
+ + + +
+This term derives from the last word of the famous +blackletter-Gothic sign in mangled pseudo-German that once +graced about half the computer rooms in the English-speaking +world. One version ran in its entirety as +follows:
+ + + +
+ACHTUNG! ALLES LOOKENSPEEPERS!
+ + + +
+Das computermachine ist nicht fuer gefingerpoken und +mittengrabben. Ist easy schnappen der springenwerk, +blowenfusen und poppencorken mit spitzensparken. Ist nicht +fuer gewerken bei das dumpkopfen. Das rubbernecken +sichtseeren keepen das cotten-pickenen hans in das pockets +muss; relaxen und watchen das blinkenlichten.
+ + + +
+Tk.VerboseUI
+ + + +
+This interface (formerly known as Tk.TkUI) is a graphical +interface that presents a variable-sized window. In the +window, each currently-executing thread has a section where +its name and current status are displayed. This interface is +best suited to people running on slower connections, as you +get a lot of detail, but for fast connections, the detail +may go by too quickly to be useful. People with fast +connections may wish to use Tk.Blinkenlights +instead.
+ + + +
+TTY.TTYUI
+ + + +
+This interface is the default for people running in +terminals. It prints out basic status messages, has an +interruptible timer like the graphical interfaces do, and is +generally friendly to use on a console or +xterm.
+ + + +
+Noninteractive.Basic
+ + + +
+This interface is designed for situations where +OfflineIMAP will be run non-attended and the status +of its execution will be logged. You might use it, for +instance, to have the system run automatically and e-mail +you the results of the synchronization. This user interface +is not capable of reading a password from the keyboard; +account passwords must be specified using one of the +configuration file options.
+ + + +
+Noninteractive.Quiet
+ + + +
+This interface is designed for non-attended running in +situations where normal status messages are not desired. It +will output nothing except errors and serious warnings. Like +Noninteractive.Basic, this user interface is not capable of +reading a password from the keyboard; account passwords must +be specified using one of the configuration file +options.

EXAMPLES

diff --git a/offlineimap/head/manual.pdf b/offlineimap/head/manual.pdf index cfe468017ac849b27f2aa7dd8da3bf59380f8911..f5349ea674d518ee7ec4c5159db2b8c67f209e4f 100644 GIT binary patch delta 20916 zcmZU)V|1Wx(5)HUNym1_wr$(C?I-FO9ox2TqhqsU+fL8>t(kMq%$k2ytN!2jzH09Z zeE?f(2d`Hk08+F!T{b1q{8u%nvd(BwM-i^G%DAe`Qe5_jQ;Aw-7>T(s8lXU-uvjNK zx$^dbsk2-hJt@i~dd&$67Y2WB|M$o7m*U&Aystj4txu1Ktlys*A9Y+2tH_*ne=9-- zyw|qVTU5wp$c?E9kvLUk6o1}1b!zu~eSdJi2<~kE10Js!<7wYsRl2u({9bor?@Q9m z)}HHo?!5Q%%xkPuxDKCwYc@-jR)m9l&yNT_pDv(er-MKJbrYK#W$i)&k=H;Bn(sAOoTPr(A2xXQ1)}SsZPrqslDLlbJqsx+ zZnUv9Z~MA_=#%*z0O{T=Ogq1FS!S><#dhD$fT;e4I2W{x!G%$4n2BFQ z-Tg!^E6hBCAA(F8Y_q_@3P&^?t?c)GL6VuBy?jV7{ijC z0K8|M$U>7K4WDzLI2Nb6FmiVJ2XE2ZpTdru58b*J|*_cB`Zh=3Y6;MOBw6PavLBiB(1A&nfXXm#c{r4FsAI8y9QrcgUje| zH40+)bPIRkT$vjLS&{VEgF7zpX%ijkC!~{D=>KC9J_22}vugjzI9HBq9Q{0L5j<9$9<-v|JdJ@@* zNq9uzM%h~}E8Cb5vTtLVcwLh5xXhRB?|B`JB@u93*?k#?fBDhwl4DW{t8*GBcp9){ zC+~IOg}Fh_rgip^n*=Hw4P0teH?YcNddFdi8P;PZn9hOUiYx+RDKHtag_feaYibGD5OsFDzpI#PJXTr-Wsuv6Xi*hx6K3i>4y{cc_Z;Bw%<>) zaYf3QH=1T#2zEE7qiB|3L?Fz)e|BP+2RDB=?9UgkNK}$?vDoBc*PfNs!$7vr{Q+UB zT2p%dukr@;f#iNjNS#1j@)d$fp9TunIlPQ}%&qR0=g{OkuSP1S=cOWkSDMiiKN|yV z8D#4L9AzP`iiCMY`oOQo5oWir3u`iO=W5Xu5yx0_k+Sxd{b!r4X==g(f?k|Gg_UhO9z~vet@IqXwMF7Q zRwyzV<@z1jW-(`lr09Kw0vU^HAv?lNj0cfa^)`4C&7^cE0s^9pQc3y83QLnKeO-A1 z=S{%x(cl0f^#n9D*4Cx7cCxJJBGgpD>Hq>Z!cMT|3JNQg4ydp=O!o;u<3UZ#?xa5Slix?M9>_KGpvlNzJNS z?{Eoc)=I5ydHOy1e38y$DpsCms{IJw2o~up0^goaE!>z;*IOtmAA;<_(IAoDhPW1t z4nL6)SIDcd4g`M;`W)vUmp9N_6S6P<8Ql#i>N4Ov!%fz%q5qmvp)QDAj!C~;&S3mq zSsR|)fhvAb+;~6pNt!z)QBN;~?Ty3=Qc#1Ul#^MZDg!M(D6|yYYQ>mkNfpSPO5s3k zwhjLpaV^xro${25o<(j{HVheG9)x#05%tNWnsSs2Rao!B;+w;Q{y-hRZNKw zKW{@o0j4N{CE==P{}I2t2FExnH9DkRc3BIIK}V~K%!rT*hB|CZI5ZY~Ve3akXVvA7 z0)i;~j+Y}bGhw4bGaeZv+V@dvq45khd|42+0NJYz>aH0n?yVC`Bs;1PnWkkBbBcR; zQAMWed)|iGcuD;%=KxtE4Eg2e(z3!t{hvdG0NL(}coRFDH!)H+R4YoQA;q8E0m}}I zjE&pNO_+$i>FODSsXqv}jV|*E0yq+ux2(e%`zdp#EIG_z(7|d=wyH~4aonMmqq*03 zk0he(8*GYlenFf6d;_>NPAZKE-j(d<$@wyKQZziU66Czc;|U$M^b;P@35KX_3Y+}W zfr#pa0Kx1HVrub>&z++P7RiB%5^ip3B4gQugj~J$;|)y-*IqkzHs!L5+|sCkopV1~ zoCSp%vH4#*Z(oi}a4~EtS_st;E4I9R9>ew#UWS;WDWa^0+mhesg%4$)Z13u>$}Dk5 z*4gd7uAy0o6)#ltE-^Nvf)bx|%KY+nz$G-lY-TLg@3@rMfOI-OnS-?_oe%?*XdFAa z2`$aXL4Nd+U)*ik>aaYMYR%PfrP`TJQcCLTrehoxqds4&BNymE4`um%;;OoVU$@`C z#=FSdjHtizx1px`c~hC)tFtKV7=3x-PiMO~&{QT}ZlVS{Gpm{X#6`625~q1hJU0(-r7NH9G_JYzqE z1P;yQXv*Wg%l&T-0|{Hhx9Y9|!OZ$^z_{Y7{I&gQf#rf6LxR5%Ml1 zo_RCmC^`r>Yv{Ze>8+dqqtreIggayp8you$=FL<%?78A{ogp<69mEjDBmm1z_~DR5 z60~}fXo22ah$K{RR>nss?o0yfuXB9*eWM#5Xn5%_OuAZqy!Q6=s=xa0t47UaW{ocm*dwu>|j?x-V{I;>Q{V4^@qrA5yZ&{Ak<4s!>t>I&=s{Gm#pu2T> zv#xjX%lbD&3HlGiyM5Csy^z0WH%*&LDZR?zH_` zQGH=^58I-PH2Lwg*M!4$oPB>kA?ct5>CGL?T-{vEjqTz7s~k;i;8>Z6nTY@If`c`w zh1wff|Bn_h|Dy%B+(ETSre|}N2P3M+q8K_}4*m?a#Bj_x4CcYX{2-}E(cb=tSyu-~ z2omm;%uE?|yQFRZ7uVUI$DY8q$Go>DyV(HVk66fa)(^?`My#wR%bUU&fpxpt$MryS zl0WlDLPM%2y5p(R?-N2owQxdyG3eZ$Xwjl!9vKtHm^B`m6u6+!>vla3<7&jga~68{~UWuCj&*jC4SVzY9 z^M?XQ981n8sipYydHOpZ} zTd;iJ&gMrB-EDOT?H1xrF~)(5 znasZ>!BO~k&CYR1Rpj9gtdRox8>Ton@3t?o4(KVHVJnqjJ2|q4nRh@P*)dISrH#Ox zr2f7Ybm6Kby)vMN|2GEp@Sr%z_1x(lT@dFFuc*iK|Cx?|-} zhljoQWvt7$<>e7ykEi2lL5A9$zMgh3-@EHCEZNh!G)wQ)(GHa_-Eu4cwR^N!NhTrc zi*pyw#w&=~zhLGLBlR~oc8mxrSqRqES>W#zOX}4%2`~ht?ydkCPs+adUP|*?OS`(YW*ylM^gZ+#AB-E$pRd5z$ZG=x&y#VEqe(i5L0rvUqkM(G(GI-Q zMdQ6?tMk-1Zjj_KneYyhJ}ez|WATMa{Sx}Q8JZ9UA!H9UQ$|X<+DNMSYg`RfaVqXn z?c!rX@I@kfg^~c=Rz#+{p3P#?@SlaPmKPhFmyKl{2%TSOd=>eQeH1yp%V`yC=&ly* za!wy}kt*A9ri`8n_aR%O(uspA5uku3wCZ7)<7ONR4Gj$~b?SwGP2L|>wGiIry}3Bg z%H7l3Ue2;PY_b!pWD#EJw-#n}e`Xf~JNAe$L9JE%y)z(PuG2ylOzMk}=ueLFOiMRg z?nevBrrdGPl16G?bNBM`%tzUbMV*x1{LZ6_U%TECQg+(Z?nHdttDl(=^Sip8b9}@s zW0k#NpjScsmOF=a(O@Q+0TgZi$no_Mg%>5^L8z1OE`_57GPLvYTSK(z{#cyuPphpE zSTKjv&S0Q{FSKCBSajMEw;}aOlK8}b+d2%!^3YkWT_e#ZyVnYyoDzVYFFqF<;!jRgf$FZS;CzE z7Gkibl$1*d2F0DWN1tdEEtf`h3fX@z{N`*Vh8obKhqn)}=PHg}8AVR;f+z^X1_#$} zPA{2wypI9JpeU?4r5~jtAA{FURpujx(ogwZxWgGd?j<=Xs&35#F)n4aEnSBJwFZS@ zx@z4;e#hl;O4UCN|J^HmwMi zN@uI%{d$SYL>#NS<2kvT=X^`fAtqIA6b2v;UnV2BSJXj%&DVfh_|8) z2$$9J{ymMPmttXTwYPScj!;4;M3L>>OFT`RdDf7caD)UaKQCr|guhK>fT>sUPk%N= zyk&YQ+N(bW^EellRbi)=(9bS&1E_LCo9ONbGib@H-d)u*Z(%#Tu`wS0B4HoXp7Ckxai8nnNq5HgG? z)6Vg|Omf=^^z4u-2E}Om{UnhW43u42NY5QeeW*tWlh&CYn`wkw$pCQM%xiZVNNRLm zV*I0rpz1`zu7w(sAY}U?wlWyuTKPSSkqI~xR8a_G?UftVF2o_C1E~*#kY??3rR~#0 z1$1>5j|H#963Ag`%exO+3UT-#Dw-(mnFKLe^x-|$sVCQz4iF6o* z`3frlW?=5J`|V_j%q>XO`8_)>ei65uO6_wE=aNpJt8cPg-SK=#hq`BV``rzvRvig!pteereBB*T; z%5Gu?;Qg znj6@>o*s0;+gXWl4*-2I9Vm{|Q&+QR@1<`->4^CpyQa@KNqKGp3Q8=79m<*gm0Sxl z=i0?Sppv~t)~L|mm3GOX@JyJ?Js6CBjDVg&O>`wgv1@5-KmbbDMnhKJbyni}!sapj*FKUX6&t5kWyv_U}nbrVsfSfFLTE3W}ii=AaNTJJgJ3G4@X3weT8} zumDF#ga@`Ja2=zu&>bx@u|)w2{@?fBV3-wHz5NijnOS5r+TAWq?5R3-@r~sGytzX-Dz2Uf65qG)3~0m>VKl?b_$|L)-~N>h>ucFpd5#g)oe|ZYRog>)avP3-BEpF zV)K>HsPxV4es-Oqy^xUIA51azsHUlz!{c7Lno#R>EBNJUkn`zsAMJFO@kU!We9}gB z!YLf1=)g(Uz4D`hYM&UTZ8`FybKzn5YG`8r{q3R7Ku;g&eSL3oyvDrV9^3bMxVxIA z$~~Cm`ZepYN`*xK>8VVsM^RZ#*ocPJAx%0!Oz&d`gO$A#n(JY56dv^G*Kkj!*XvS@ z6}9qPMX6dkKRSnO}$!KqEDI;>XWowYi$tic-wF@LB0^LzRB*c5vA~CB1-hD z;Bk7hw37?qpDR!~`#9d~9|h0w8kI@;aa87OFLx~O9wn>cfGz8^_4MsH)<-o)X6<3O zv5KDeg(3fsQ9$r?_P~ja?@lmioaz_^eyhII@$YAq;N|kj>g`vjQP=G^Z9w1K>*a84 ziDlyEZU)2m=gUPM>XA(se3AOk~TUWJUkyHDE`x~pG3t=aiVevw2ne^#DH-!GVBWmm{#y%jK9O8!c zZhe{6+4b%7{`mgfF>Qz74O5Df&CY2nT&O(9LA-yOrNG}wSdOJ25JOU&z`_4N|YN)=as?Ecwz zA?67p2pcJgOaNA-E<;F?SOu$fFvdu%CrDz?6rC)en<7P)%a~&(LzdHy;wXu^_d?dy z2@BbvK2@viGhC~_SfvmCtp_vp`#1v_XG)n)mzyf0ze*am+GteQ3|uaJxk3 ze>W8{ehQI}CH$*W_vs{xx6RFWrX?a&uNT2=03yB_ivS(qCY$%ha$9!1QFso*jwf@G zD<^p!A)5lei0x$zYhgYCLu`u_%AR8pM?&td8U&*|OfLar7{O9?y^4b;4SoiQsp4Tc zI~LP?-l98uj)8`>e*naKjd<5Ln3n&F@40lNSp7u|+ae(OHm$fIu0OVnrW;-SVNBnt z2L(@IB(ImiQ?62RB?gMWkWA9%MGfD5;Q5dOz}|xt+z`Uny#o|} zKKVY;jxd8V8s()grN^aOQ%#<~(9jkx0f#g*xnyMUhq3BMtm6B;O@$S38=0Z0JK}Kg%J@1=V#dAv|e|g;s#{S%VzT6i?|1A~dMNSB^5< zUBKk!I(qF6szt6lhw_;35fc$D`bm;W-TWsDk070^p`*8#JJn1nIrk!7pnEL>T#fiV zqqJ0Fvw&~2`8*ADvJBv>2Em(F5=AQL3Bm=P<=Dzs-{hcYo8V{ri*z`ya8y^Y0%sL= z`R@Er*ZW#crPqs6Y9S~f7BR@uyn*38|8J0c6=IaxU3o*c?T~v6+3o5KVdRUwCJr5zOriQcqY1@&>>ciT)`$%5tsG5O~vN z_s4z*zTXoZc8j6l%7K~hNojki?Y8dfw=mIZOIVMl9Cm&u-zJ@!IS27JMv>3Fu3~@*ekK!3kn>m z+iHnma$V5-5bG@6ay2+4(u}ePCQwA%U6w2`;_ZSf@Iw#Yl7~=> z3980Nf#v6!nTG`(laYt&?s$K21}?0Dnbp~tTe1i#6&=`}2O4kj6J(?jTNI9WGbq!8 zR|RpUN!LZBln&$ry*^=oF2_@4lLkKkfBvO7)GJ+Hh(%t|*&Fm(Ufdb8yDtX><~6@l zE*>vO>sb#Yj`P77jc(jJ*~hf`^mDp2Jg1ZJuCj>kn$<`-vqq2M2%Eic;O0aW;8W{o zRuRoRNcWWk0ubPSN{?#Kc(!M9+3U}~KPQfoBF9ditg6#ELO5>{_4c$}-E)663 zlC_eaZBy_G2rZ1gqiWdA~x<-r->6j%rG{=cp1xP?|dv8E1M8GWTCAGLCSg>cb z1;FEFV_jaS-9qQBNp=86QH3YiC*M04EVj7GtfRAPu9R4J4h=A9a>`zkRKq#glIf;_bw_ z2#QfRKOdW+D`!_jfLSS_j9Wq4Tf+(4066|J)fZA_-p*}4oKUirt`5CS^#t+KqEBbR z-j=GjD(YdsHHj&MtfCL!vSY1+{=p6mO(=FajAi{-ML`&mnRK(pE6B=P?Mp!GNZE+& zEAI7u*svAl%tlC|sT-+I`}pSnyReD54$s`h$!(`yM&B-llE&!ds>81QJc?#B4**h= zB)Wrx`H7H^<2f_q9qHe$PB#hIM*K65V9Fyqm_2X=%{0b&YC7{HF`tw>dzkR?2)HXx z2xhZaxfIqBvz5C}ju`?5vz4eF`0gHM*5gbkN#@m_q0%8UDcR#a%Hz?%C=RtSrn%wy zJP^kix6QpT<_(_N7l<;4d2@G*1Z zub=4k+%Zrnq%_cj?k0=Ya3@Lv+FZk0Zwyt+{OaqO%}=QFzVok}5f)q2KrURV(mxKd zwv8rhQmB_NtdK`G;7#j7>L8A%)`0@*6nSkK35(7A6Q5OqP*ehd&0oLhR2(de zB~w6+k-c$=fzjUjdRF->ZBuu zNx6`Byy4Qa`QWYTvqt7oS!ptrPZm=5=^J8Hpxoj92HhBU2Vssh z&m%HrYIPvH`WQjclRJK+G$MoJ8NlFopc?^iOpd{(jtJK3Q|?+nY?q&EFyVt9V}hJO1PwyL-hX4HmF72!B1j*YNYb zznTC**cy-g|APUF|F2iV{(rm@Htzprps=$i8Hf_mFsiV#!LhUbXQrqK2>kCE_y1$A z@bNLqnLAjzSrKzEC1s0J0-JH0kgkb z|K9i2lp7y~#J!f~09NfF-k}Q!)IG1-&}+JGi4pN2(GV@w)2ipKmf%)) zc55u>6IOm1u+s<715kP%fZA8XPY?Y~wZ63G{OVhkvCUt%7BnB?aYUAWcqa}6t9SUE z|LrZcBYgQ*VINh!&CiJi{8W+5g*B^u)SIVOw)RF9(k*Px-l)bLDhq7zQaJHa>NXve z!fS1K*_)GiPnyO2-lsp-B#mW`f!b!y5H`8emw$W9zEAI8 zRfeZ0)L{=~h9CDsRc%#yr_O<62FYu$r}Y1xMNF>6j8hfby1y=}(xNy+X`8qrF2mZY zvOFCfk5(|_WEpRrYm%_Cxe(XTX+w+ExWAw23)fX5mTbf1PRR>;sjDHxPIs~V%CWdA zkdy~%6Xj3f_Q(5>bXt+Z*U zY2`sQD5R}4pS{mR)0wpUoV7f{o+0CN#}d)4RcFWM@yV@gz@>!N^5+>TIYUpGqQMqIbEPtLH z=~8B$A#_ZcQP;gF6Ag(#ha?IcMA}kotvS#@;gI8!k~s%D30oNY-k#U9>4rOO7PE}r zf_L|pjs2|d4NH4&m3ytiZsRUM^6~L4K&)98aB|Xr_75-&etf2&LeftN*u6x>9^NGt zWzXBiRCha2y2Nkblp~mB8C($cH=VR*hxPql8arV1$u0~vN2eU580dN_SqgE79rrL7 zybd=|*LAm(Bo}>G<;1!X1x5x_{3aE6rfQ_A6h7C#1?3CQLG zoXUSa?1!)14qhIH$Bt%kd(Z!U{Gi!mWWhle+)^%t$#%uFO13gg>MErX@Zf*iUolp9<3hp-YvNVAU*En z25$t#{M3ZMOjGs9;2M0=U$3tYSylhLIha*~vED?^gSqjru02nI6U6WSeNzQ2R&sg7 zbZYA@Et|tQg`a6s)Mn%G81V6<2X)UMjn761#LDsq*u&nDP5o0&M?D!Cz(D)7Wxa!; z4SOBt+z{PVsA3nbvPaw~LX-Xt&~wHg3UV}z>RmH;W?T!VcmFOk;4B!oEo4b*0p@9>i{ zb8RVk1?p`%8mWt!28ZJq@cCJiPBf)pO~h~Rn~`Vb+W4xLS5lh1QT~c>^wn0blih!Q z#oKFUYgVJ}(V zrMqN{`O|aO{(c0?(B9M97Yx-{7v*#3kDTIoRNkz(@VNDZOqpH)FutlL-^yw&H0`OW ziBaX+5}JG-11Xnl9SUa;A5gbk9^g|L`X^VA=jIK*ex`Pd$g0%|`ol_w)LS^1x3Q<$ z<8$5#mp@%BMF~1QNVwRY#2ws?-)%YH{;Y;w3=L5k&xa-Sgqi@>P4Te3tm}mow*$8X zGt&kBL<2n>&+xDo7{v@>3_OzH@|(N>@6u~)s0AhHD6D)40T0`8N!VclEegH*kj)m( zkzc;c%V-g|Va~L6F=nTduEUk-Ei8H{v>Jn|{D${OS%`d|iz9ZYWA1`H<2fHwmVmfj zsrV`Tlo)vq^6PBUe0KXl=;5~4ZjxaqPZ7Z_g^X%^IIvO~V2~FevJ7^en>y4LCY>=n zZ@O$foMe#%wmIUdQy;q*y|^#l+`DQ60$#-GunXJA{J1hDbS7tneQk@Y!$nON;Z&a8 zuQp;>>`bA{6drkSHJZKYK`p2gQuRCPxQw|||KLI;&{~=@kS&5?iS#S5iY-Co)G|Bo zidz_197*T^3FJ*Id;2x(r*Sc?0#yvWyo^E>akHN_#WCgzR^qc(ZA_uoT1@bC@T88u z`Zh|+xK9$LP*_qDO*pwcIMg7K=*WWZfnnEOG~06$Nx2h|XlFR>)XMk)j_p z?^uus@EqpyT>Pnx@$oT=rd9ePn(bPK@f_0=-HFgZNhXFffB(z&xG)O@PgNe_r~ zic=BMChEh!m0D=fCaGZ5u^h`PyZZqtrnS>3DbN=7E&A1I8lNwp=MHBffRz*KO;e*q z{2I0y=K!_H?5F1a;UIwAw}8lCv~(6f4*3U|C~eAG#6Bj z^nXicGg~pG#N3}QFa||&-5oLi#!D^P&UlDyIQiTh;PzL)J`H_r+lbxGX}c3FjZD}` zriGfw8EB3Yxn$_#g-#mQ!RsV-ez~JSgjdpuNvg+|BYiss`JH(cPKFSTm`=hm6~0CR z~9mj(|xBCL}!>>4|1-7~|d_-h~7&m00B2%Ik2{OJb{*Awk zw4Y#_ZMGoHmaOj=bE+Dv^W6Lv)dGoUSr7=fu9dtqK)5m`hwHiCM@ig1mfTDPwzozGZL5fK<1a9&FkNF3^{P&5 z)phjD4~>-&K`&`#1GhG6J(2G~1BZ%^!ym6s-R^(~mP|W{)`Yrcr$_>WL-Ce6sLV_h zMEy8)5kj}@KrVZSdHNsHTXJ4Y2H9O2t2{oE{U%a`mP<> zglY!0T1%GWF;up*x7A6&Q{V71N*Q))mYLtDMWs*g%jL=NZ~qJ7|1Y1$@xPgim6hp# zaTN#a|KTbX4i-2LmjB_d{}7B5j-B)Wi(nl8)BjJt?f->fT*OKC929`8>wjl4y%(Bt zZ)lw|_zXl2Jl( z0|LI>hZ0-sZ;8IM929$V{Lov!r$43J_P_QIFG+6i(niihXEsRP#7@0U8u%ORb$Q~n zE)^*~)6!O(Hlx?4-@bs=$giiGcHJKR&wzccRs>To`-B{=_uak+k-eV{@=+Y?yCl3( zGBfKQL~uHhWX~OFJS$PI6zn$TlWsU< zip`bFnY7jb%a@b7r z968E=kK;8|O{y)k8}Ke`a4FMm6Jx4wo_z`9)=bKmR_c(8Q?}l!+!yZxxXPFniSGup zDa!q+({K&+7ZSzNHRr1H`B;zB-U%9T0T{gMHIs09*)+!1SA;Qd+{hRvHLm13%?COLvN($*2ZBVc!s znte>Vk)rES)uAtm5>jU*0q551c-A5>6%K9{1parec&HlRH0h;yUY{tJ$u~ z;YG1^Rk3mg#z|Hu-^e0paiJq0rM*Dpbx`>(=xTz&aK>=q?uzInu1GwMu^< zy_k2_A)a#8`LDls`4XfY@JSUxN>(BIQaY+eyHuNHFg^^BhvKkL`eQ_s>mK2&CSWHz zK6F=Jz*3iowVWK|eX|i1wmiM+A?2q7!*M<0yT9jgBZISB=Ia0O>*4!uX zvy5Tal3ypgCd-X!e2n;&x_l?%P!o&Eozx2M{AY)p3c>GBCOe@cZD5moQI7hlioer& z0&-&p%lp!iuHk=T+N%GIZbF#uuqpA~gbLt+bUVHFfrA|CsUT*tV=Ie_goxKjmRL z*rp2~w)i|em!UVG;IjNunb_G^6nM2g{ar9zwK>)SqDO~| zXdY_z4(TyH+#tl-{~WWEpNkTWJ{4aGE-Ue^)od!p zTNmN+FV#vj0LxLu>PMkNVx{-P>I)a}k8m7Fvzz<*WNwK}at{vs10oazH&W6wOYPms z)7SgOiM6W-ty5RT)YE>`Xn`Q|6lP?}^OTwP2KVY8`{FXVwGV`Zcu^(T#xx?klymO+ zw~t|pJgfn#n#OHrkh++#91ws0BiF0+SMS>Xg&5u+WdA{3!QY zLR1ABqcyN|VLNGETs!97lKe~9`;7PZ(tkos&!y5E91H{j^i!nhVc69KAMZUb%#1v$ zV~8|fpT=yq>pqgCl1vocOdBZQ6<%y&8HrQ5W)l@pT~5mGry?~O6Qf5Gf=aJ~nE%bT zyX*$hJ}7HYRnfYH_~ELQ;0FOhkziur0L!|Y8TZ4}#G_J7W|qw&7Nc=~KIksc4@UnF zvoeEjpmx0{GG~afS}rJpm@y}{(Dty-{SE!^Z@B@#0*K#cF>(&w`9*;FD9q)zd1~2s zapYQf;uAtMQ?{i=m}r9|zx905vhm|Eipl=vo3n2$Pkk1GEodb_jAXDPEiQ%0SYw=+ zXu-oHh{y6MtkCawm+Ga~LmcxdvnP2uGwCO(4bkET=j!?H3RzsMe0g1TydZ_!Syt^@ z1mT#=ApZU)4-;>YHdUZ6hKCRVTG|F|>-0kR=QT0mk5Of0kU6p#aLPlPKx&Clg@W3n z^JdE#cn0?{&HNDD>k|zOB6qhKiC|ZiTi zUsgXdw8>jD${cVKgSoh(QZp0_jJz&GXS%EM*)JO9*o=i*Xr6!?b#@iCsb%_6ER`G< zF7&F(EtP}7d5Zh)c_Y3+0xKDd8PQs##1|V;{jrA+kAE$B^w#-L#5%dm(LTzHF4S=u z7D4WdbM1jlHsnHd`&Q(}j*|!FJeB9S3WiAIEfBasz72Fc2RSgvLNa0pkgMMP=C6$* zrPqCASk})Oasy&!N_xiYfes-fy_bmSZD8Qp-IX~n&sJU!2U}5Je`@3-dgLTJdehhv zFOikHFQ2hbm!AkF)5?nN0@aSOvsM1z{ZN4^D9;^8t)yDP_K*|exesLx&rek=EP(@e zQa2Ya6cA2)X>u+z+;+8TgCHmH0Hz{xZ7BOzrDC*4ZGiP_Up`d)gT6?bGaoTYmkd>w ze0c3P7X&8CJoEXC3ubNo^ItT+m#`!f>CP1|kuV?oZsi5BVzWZfS{NlBRo>)$rfH+* zXSC%%t_sxvZV;j`>>FmEMzH0Ia_*K8r}1uIf`Yq&!wMT2$t^Jd&K;YG)xQi4mkbdXVh)9uR1qJ7FMbobD_nr;8b?$4 z+&)_(RLg_zmSQ&9G)` z<}0%NOn){!VFNa_DlwYH1{vOBr`bQMf5msvKsfQdgQzq1HxjaN>&NH*8HX-SY+ZAh zCnDaMI7q9ifyk}kx>W^M^G319U_(rLq|6cQ?{4?@TwUZ(xg11*uBiQK&hwVD*> z=M2EBkNmvXqmST&W7X2M+_Bzq@-YiDu1LvT=!6+lNE-hL9)f;4f8&pSSgSh4NI{Jh zDUfm>XdPRZ}VT%Ju2(q14(Y3n4!<9CN* zJv==2^QbASU-x5X@ns4>%gGjEP;)YPH&(=f+QGj^v}v0FHGkql8G2kOqHz3ec$(1c z+gz+R!P%a7V2zbXj?bp&#b1~Jo|foCNsFUsO#CE422Et0=B{%j3pu0GT}e&@(hLl+ zFvb0RwQz{*-HQtS%>ZaxhxE!te2Y3WNB?s1=q`AZGA)xE`z{!>Dkm|ZTSG#C+>Y9Q zDmN6A-q-`lKtkx0lNl`$DzuCf>7%`{FdEI@MQjSw_z|OqTLt#nqU+qvvB^vLxU)Nc z)>9rzJzE;EAg~w$^J%|r^-vB*-M+UhZSICAxq|9F37?Tb$8P_HTE<36RigMcbu4!7Q zWR|b>0Rm2sj2=E;iJZ8#cn5$im_K?r@njY3(Li-T8Rx>j`wm}UE@Rf|90*J&j4$FB z0t*fx4j>$?wsv_Il6$;31V2p6RSNjI`m3Er{VBY#W{E90W94kQ|BdFdZ(fATyE2h} z(oh`^u1xO^+gv#ByjKTw$ZM6mN(Co?m2^yO4yG%ff;j7VBh?F}J{VyAWKp(wI}a3W z=9*#7)Y#lW$*tOybS{BYpZ7eeAOP1wc9IJNo#=5)%i{a7>RkzEB(Mf|m*x{of17Wv zUx@QCgAkK-@MsYs%WB|eXm9-c&*Sa0LODJj8GW^AL>{k>7O#Zqije9;T~a8Norz+* zE>Y~%tM>m@wzbDYmA>(vF|iE>QQ0EOP+D~E=gcOF?INW$c3ny$N3v`*82a&XqPL}uUp1;4iV^{Us>E?I+c5mHMV<*)e%G4Q(9@M*n; z)xU>QJ6FUAoI<2gQ|L7-_wB6Se5Ax-{vzMLbH|h3+^chVA3N|jID*tr|58JBHB61J zW>FG>|62`{@YoVpOhSB;Su%swFoE+4ocSC(kR+MkqpRWZqbHIi0Zt^%rS8t*ZHsiz z4SHxrT52!Z*f&r#X<<=q`Gud1)9iRxlPx^%stY})=SSr{%=)+Mrrj*drL9lDX-*LK z_4Z!>A#=U`EZ*>~t?p$**WU5&+wQhIGRbG+gJ)Z(^vtZgE2}UNs|On_xD%Trt~E5c zRV9e<8_a7NpXR?TIP*8KA1D}HO`)P_YGcdX0` zZu7S0FVVPuiJD=R6jM-OSoL(%+t(bMm@Drp6VLWn=uQ0d#~smXsRw&Ya_6P)Ix5E0 z;8dY-`{VlEZXst5+kX6??b~s4O>zFf~2<#EcSYMpGvl}YfV401eJ)cn(0xq-!mNf2bT$`|bj>p!PfB9?27k!Iv=}Sib zxD^bxppr#58y}gk>A8~k+2na$zhybU+BqoAoH5~)R~Wxz#%tfRrYrF=>rD|ihua08 zGSZrC@cdDPW_jnC&9hx9ijA$UjBU)HpZ9$fE;aFZ-DZ+|zuVH~K<Z2A-ZLOb-9FFX@ZkKfjHJbQiF;*yQ}#=|Q%s;9Xmy)3#|nQtA$Ypm?t9a-1m zlykw=Nm`TYeEN<_x0lDlh`=P|mi{)~zO;(w+1UoMd!lXT7C zhRo-A)&ntFaW%7gY<77bi}v(dcKagrId-z{P4@+D>7nM2eWn(P4UIaxJT|#EIb6!z z(b{8e$qy3OXx2+myh_jL%*AtrFw|Q84^20>0($3Zd+Ghl?gtlq)_L)lXOjl5^`w~{ z$@QM}^ClhBGyE#|`C%LO3;esxwQ8xSX&t3%XJ2v`Ha<39z5o1FuU9q4PVN&PJCH4K z{zh~$+WTyl^my6T!iXh?RmMZL0%+aC2X>ZK+9scCeDv_POuxn>&9L+g>{;yB%eu46 z3eFkr@vFJlv*N{_1WL_lu_&lS;Na!@OWR+mE*+N>%*+<&rLz716vW4F?lr}*3#2yPz!CpUrr>%EThD*>80HxkBi&<40CFjm%&e(0`Ah<-5ldAQX^S*c33 zB#F^#2O}`@sah)B$qQVuqhJWQTR{s1;V95SC(0-*Qp6;*QX__=417v7gn&_) z?vzpXBnboGDK(-v%p7tk(J(LyHVua<1fo};5CW|*+jIL z(=drL*{-Anfk+kaBP2$$BLe(|iaC~3=nLEcIwLA0CJBP=RS=0Vn-3vWQ2_E(P(U!8 znV}UF1HB{$!%{X;r0QwVStVCcl2Abg1!X~bbd2{!sznMTJ`Gs>qA{4GB(73`Q4s>J z#>&%htoCD|F0+FWg9&EtQt}c6hist K<_lLW;{P8*17uwQ delta 15796 zcmZvCbwE^G_cq<#64EF=!OValDJ3aLNJt~yT|-Itpma(|cZVR-E!~ZDBP}1^-&@!F zo%v(-tl4X=XFtz6`|N$r8LvkTJVhy2q=T2dnX{RfBJrNmIOD)Ii&v!AETesN6|?s+rHb9d=8gRj?B#dL{;RuWXNOIImbHh6B8WTDYVv%%pzvb{y5mvw zRniAc5&GMKKp#`MF{@`SKfn8~)TMF7v&<@gNuF@84DLQuMl@I5+Io>h-4?gwom=?H z-tFr4Zc0+U``1!+B?=L``l#hsC>h)zF{6YpJ>SX-b@o;7d`BS+<=frO0HA+`0q)QcZ5Mr?A%+w|84GBY3lECf9=15@wEjzmBh} z+qAFcl0k{y|9T=%f2=Uze#^|ta-vY6FERYvir?_&S4kj|NC`|8J%G0s-Dm2h&?6S1 zh=@w1ePHuYm`##~WvxQW=HuvZ1TdbVw)@RQNLbDKmkhg=QNfI+b+5d%qk2+!v{y#% zGTXP3kGbFJyS!ii@XbUTCc^UZbJP;=SukU1zxJ)roG1+Rm8p%dbAvkYBZbNDO0 zktl@AW`3*^3kJkIX`db%1m2vOFo*BAwy?dZa;4diz^aE;?6m@C@H?YSOp+#-m%|FI zQ;G^_s+iB*SEB~E2C(6u8+xR;%Cz2;eV131cgmWV%A`ooM_k!(R^3*?tr)VoxR=K` ztR2((L@5t>2GA}BU6CNx??c+4wwRXcPN*A-lgna+#e@Uxj}kE_n)Yz;_lERYe!7up zaq&0}S`eV}1uuRh0U#|gF2=Du>aHq1WxbRjnkqz%$goEr{A4KWC!r~Ez>80Xb^7%O za-xM;v?ePCQl^u0nC#9moa8+!CYR{O`4z*duq_Os!&HN|dD)zzlD}n=rIJ-+(c1U{ z&w>XviHPTt@P(E8Ku!s=NGjV-#ZkSGc+yd2AATK`oH;c|3KEbHkL&I>XU z8;#0NUMp@2PkuO6^O9nj%2x-w&rCYB#%FM1WwC=X=oNKHQLGMhwdapJ7tXJ~antWS z-D)T68eg(8W!IkCc0s%|2a0>6jgTJrUZ*_iCQU1ajn7zBT)ujTK^?x|O`E>|2)TIg z4Rf`Ph0IZ!kskq_Ih=r%t(Qs{16iiVwqU|NG&}~pEqb<kkESmekw;X7kQ^}+(qZh{zqqVVtahH9c~2dhljT1q-FvBaN@v1&RER%2Lg8-J zirmTpNvhWgv41C8!S_bLJekLqcv#bht4Iy~aY?&%X7|RpvkcsSj`DQ5DYTd{DR|L% z&L0>jsCamx7t));lkaCHzpk0H7D~{O1uo$<GWS9RlGoxX7~40ehZY_BYTyuCm7>q|8z3l87az>sTYt?v{-3wl10#`EY*81Ccj-Qd=}n8EwDGJLnw zkfgDJkR=tbgpH^*iwi6JCyFWSlb@~<(<2cpsHuDLsAK4GPh~o=En4)x75*3tPA76s z&021WZ&Kxod}^A#Y;Ez}0raXxeyK}GRd z*upzrX~t4wpdymat+=q7-}JD?C-J(trm!_78{)SPKOjRX0acUCDh%y`DBdtlFRYne z?^twbP**oD1rl6*!uAss+S5qU2HWBsCyJt9%I1flTV7-T=&%G6M;e-?-t)6oW3ed~ zp_7fUU~uc}p+76SZ|T^m5^3F5&U7aX!N=VeWXfOgNu|dI?XoG;YdChd;|B_rH#K@~kX& zYlomiot&@cXcu8F5Qf`G$YVxiLO*N({CY>HAwDRO>q*{N64p31t| z5aCE9Z+U+4v5IeG7CtIhbO{L725HYU*e?g3oE^2-FTq@PQ=@Bab28hPtRevf&+lTm z;Dq`NmtUxUEpmN0P_|%BVHCAF5}EO`6^`~7JL>s0onM5D&`{PCfBS1e*lL44n>ZOQ zSIHI4n&=EwpL>eFgR zKM9Mc$3+L(dB`{YaSDTKnK@=Uf>G6i68Jb<{!4Pf0QgNEdoyZ>PV=|EH&gkLydPlB!3>o&y| zBM)i@QcK(yJFNR$gy%zTO|o`}a6POVgt9!RZw53e4q|F!&FiG~G2rp-F%;~{d&lYa z1(lw@b1+NI;D+oz-#ex-3~RLJ8h9GTs=g4VsXD~~uxM~ynjVg&Zw;{Xelg2H0kl5a8g67*k^4e#4L=1ggvc6B z0g}os3$z+u=?}AOr{Ll)C#~$Xn?_vV_Gs;feoEV%BxCTUg05%VvWypPjl$oNs*8m1 zZ83h>T-T$l2BmduC@NuLeN=^h!_Ay_W$yRW;~x099$f}`=lmAxoBTnM6Mr|0%8nhZ zPmRmV)lNpC5Q#L)E0OwK3ZBG_Wk2?s;cLekRP>SzI)37k6i1Y(mukn=v6uN=Z6#Q* zDuo6|Gvv$L%iWb#1y@h7;B^8|^d}=1W1;H0X|P)@$Zo4{QG_qR2Gu~>55VS0{A=`u z+Xa(OUWySaGkn}<-@}*EjO(PtH?)0)^AJ32X-7+B*xv}_G6aKHct z0K@MFh+hDRV}dYZcZJVI&36%dXOx*S5KcbnFBupAGzq{jl0J zH*pn7xq_Hm2%F*{ZeTj`w%0C=SNZPTxqoNjeYe`#-(M8ouK^$S@u*WjOb^>#7@NB< z){*Xg>Njjt#~DoV3s%NgN@AjQZtfTUnpSQ)hT{1&7G>(v<--De4ZYRrdBw4~&Ox8( zylK(7-hnx@UeJLZl~C!8A*WV}T&#v}hO0nnSiI9fA-)F^#j`lu<5%HPP@J4FHkyj< z;A&F*rI$f|6&mnEzUQi0XUsRnebo%%^P02ojpe4+_2r%%FG#&V!q<^(=%PsAttvWp z=6aatR=1tQN^FEF(`>%gWy|z8S#$LC+do~HejE_KWkv}F5EfOBFCA$Oe<;1LsafVZ zR;mRa*|k*I->s`9Q~pTMSkhgaL;7kfam zs|HCmjFV$S{-J@T{T`Gz$YWy@;hF6ga(O;Tqu59MXqkB<5~_3Xt>B>Zt!s8^^=H@Y zlJ-{;_X&mLCQ~gTHLf+Eo02I7Rm)iTgJ#< zrv|jZA~uXKEnYmralL*KLPmC4>vPS5q0F7La>ju5bzS7?OY?8flS18EdJ;riVl%W+fydkNo*OC%HHLLjV|U`i7tcqif4zlp*~ZUq1BmY2dAmyriJOjm_d>R3VQX`M?TYPjqSjxs)q;^s?jQb(N)#8vxczLr5$Cq#1@P?TKwYB&&>f=)e%?uIPC=pr%#<{hJc8|l8B;q{ z8EzbpB$pYnGikiOAn!G{YQJNA(q~;o=pjs6#DNRX_l&&zU+65Nd>9; z*z1@I)E=U(o_K!%sMZ$B^S7>)%1=W^=bwIG5}_KSrR!kQ2xh1J?Eah% zC#WM@;`*^(Z^k2LmCi9GGTyeGg5F{OVa)pdpoKVP4()9z=Ama8@7IQ`68Uirso4&; zxEtXuyURJX9bS;P6t3*$TcrhZSyX+o@F!{0n}@F6bqs3FQij{79`8uKWZ`egdibM) zbK=rF%vQ^5=(+=t*4m?1P%eBiPum%Uy!yU}o>2X)#+I0B3#X&84*O!8=35jQ*Sp(V zbL;3z%^uq4IX9u~{xSCj`m)vV{cH{LO{hXRq`?c9{iAby0A4MYQxfT5I|hWH5Ki=! z7E$4yLErlsh)brk*e9AN>E0g`vl4Lum{?glEGx^%K>qTMT|K_Jia<;)84doTqSvXe z(6SS{ukvc#x*x0S*%}+OKP=2-^?GV{`RgLRCU$02+4Vqq98J*aW_fu`bo z)Vkjl8Dpfk2rC?!Nd<{eUdT$OA;Zs;pJvZhl0A(Z*bpL+VdXiz&W1Ye7L5*s$b#Nk zC%MIf9WBs9kY_whLp}lXYf(5Q^zb|BnT#cs_*b%)hV?Y3rnLx{z!%pR7^EF3z@yDf z+o^q~Uh(Zg6iI@4MG!{YA{`!qW|!zoO@l)5O!KC5-gj<{9E$18X>E;x-te0Jh_d;l zabY^h#wm<&LmiDFNv1T9EJZ5u#*;yE;x(}5ljhIhs;MtAdL-|2zk8tnyt>nw3~X$c zkNzL??2T3jdt)ou;sQS4Vo$n>migJtaQnk!j;Qw%R-gAs0k~ue9FG;5#Nv!o%JCY%9;?)Pxm!paTH>g z<)Q2p6xX2uj`>5^MEUuL?T^*x{#&}Db>sp; z_8n#%i6~$-(RLQog%@a>o}ZA6JQ^)`F4!zAs94N+_~xi*g+6!Q9cu=6N?a zliewmYkFvE{!X9RzbIZXDWB@y_8sL*_(Ez#K1Tn??ks+&=716RTjkVg#<4A)dmeF^3&cSJ`JOAY0?BZDHFg6s#zU76@^Gz{JP z65DI}cI#`*gLz_Krw>&uY}z9Q^4In_OV}iAG}ZX!gQKCYr8rl^Zb8CHLo5jv6vtL^ z{m4mlPjH9m&biw1#n6+d#zksRhg_gtsfx+-(@*6`EcgdS;b7ZHSXNrb5W|#+&U^?Z zjIu10T-?qFz~@J)QO6saw^D(V%_wZzua}Xu$aVAswG#&a;>Pnf#Um~7Ex_t>^XJL6 zg}{$leb*g@W~BP#0W7ICBxE@v6{yk+8DiF7n)k~ektI%MEKx1z0>wN7&BLlt#(sAC ziS*}<QsKX26!EkVnJ-KoFm+Xvs@gGyc)Y1#~cj9jSFK>IO#o>4S43_%>>9s zh*zI_ztFwg7n7mAwMi5b&lMcWNlFN>v>AL+ZBS8=!*nTte zV?Mbm#m*Eu=^rEEdasYN?T#}Qc|L~`G3tDkLnbuuHQ|~@HbwT7&D%HhkzBShp?^E- z4I8@Sej7=!bsm#%sEaXO6teM_rQ8cyKylrPkJsx9whJbB7a=zR1w);0S*`o&VX5p~ zN8Pu;Wq2@ud7Gc-F(2kv=FU?s9eV(cgh<|q?Pr!EMLYrEP6WC0? z|DB$x55G_p_bvYY>R$af^N`XVAGoN;b+dGhCMxD!0qbBW5x*HztNw;~dQjueo5CwJ z8{#)(t}}igQi8KB^#gfb`}T}%I!sIGJ+a(eZQ+|quFCOt^AnUKNpnDT-RA~&;=9ju zVn{1@>B+N8Y8_7rSZ03VVO9w;hXspcN^Y)*(&fAa>?`U)fqb%@F`3&4UM15Z&P>Iai7k$KNVI4u zO8#BtD*(kGAK&B51Y$vaPb6+hyEf5O_vni?eHqOo{pN$W(Z*@>%h6Cd1wgxR{3M>_QnZ5b)H@gXBzA>-UY%T zYYX77OOV}_yk4O>VSryV-$su@PzE$u%5W`t@(rBt%ck2%u!vb&QK+;GFpznPiqLeQ z`qN~P-qg#?=UlOgl^!=(zYGvr{LS8cb3!ER_rbV+j^mVx{O3f z-e*SMpTAwy*!YZ*hx-6@-%wmvVBT_G$k#`$X>o6U`&knm&12KKJFz=)k2J>TB$y>-+IjZaqq>*eKg0Nen`E=g(B6LY;};tDqaweRI0CrIS?#DZcTI zi=8H;EbFiu^V|%>)Ox7gt+pI?M zLd!(PxdVJC6tsQg*B~qPR+6v2;-XS{@SPNUTdI_pa? z?8{E=cg}O`JH}*L5Xz4>@?O2ZSRGNw-dZ7}9}$-|SeG#>B2d<$=N#^4s6Q-w8;-Lb6!TzvC(u z8gB=4r=W&ruObK?nArs#bUcaZE{iE|Qd<7fb0Z)3d|kNu5xTWk%GU1kI<_Ph9k^!~v6Jvk7%M#thciRz6;+yx|r8 z(@WdQrO`j;^#Zt5#oi75Ttl018rtmlk#sEbv#~rWY~2+OgW6UDpc3|&Q0K7H?rP6E zi-V&cBvFHK-rB2)^B=WOTF=BS1#g#zp9VwWb{m6yQBGyP^5QEW*c-eOmL{~EF1iKK zO+IJ5sS$)sq zEM!~i&9*%3e8TUjge2r&7kny&i!4b2xqF`V)6OiMJ3)s96?4M+TyTBibu{_gG)hTW z%^JhciF$Id4m>YaImrG6LqLqtPYh8FcvwcB-v~-Gc`mfLKtQ|!e-noC9lIr>)b3)^ zF3bBeQ+we@4JWJz=!GYIdFHEFPv)+z0%Q98=F}O=FBl;2O9nPIDa?KK=tOf$Q_`n~(${`P~3G=UsQnslf&S!CL%Uwo~2xbRrW8P#m!IQ9#AU4?v5 z=-^CmXt}TXD*!Gnj`#vW-h`;MIlL2}mb=K&PCnjgWQ!4XnLiR`$7c$at-9D0FS73? z=JFndIhV@0!kUtke5Zt43p@8A_O0nB7q z`QS6X)hTZG7rlG+H1sD%ttbmb(?qN3c>G`5t!am4On>BH2!=SLEg!{*m~lB_Y-Ewn zZHs}+Uf_lQA}Wh8#1wmE40~HOn6+>anX<}PlfxUK!shxBjrAv;D-lEUN4l#a(at=P zxNT)D^N%L|(OUAK3b~2&g7e`hz0Xev(LN`baBn?jmad|O^ow~uuKBaFcd)p{-0^+LC zwObv->+vIsNmRyZwMPBNYBdATh)NwlC%lCx7Cz<|Zo>MJl24|W$6}8*lQ;wnMNxE^ z+bnnEDX?EW9r;QKD19LSS4e7U`Q^8Q{SxIeTa~1XOpZK(1pAl$uby4QLUXi+L&2BB zHRQn4!T49?hjSaETnzLVb2!b8sd@U`f*cqJM(j8~rKtqCG&1ka6GJ|%CL$F}PMzmo zMvZah<@L!Pxu7160@^ptFqN---0(6ab z{O*>?l2_C|A|YA+QQiR9B|xLT_imKL!Vn6HRvK{{pFsw-T68xrM^&l=OoC@nik6(- zeIRW@-Vb*st?zN1FYpMe2oP!xFvUT~2{rtruhJ!*Y#8o9%)%eSO>*kd<5}KvBQMZ> zUzg0N{>XO{#hHl*PHV`}=7VGA!4n<%?z#Meh;PZrS08DiUV+r&|m-#Dq^iGWUBi_r_S$#AynB_In0V8u+4^pWOTj6K`Q7wY{Z3 zz^PRc%X}30WYwYmy*airicR|9UD((Y0c{cdfCVTmMBfa1{+Ib#_`UMIE8dTAcYOvr ze!y5f^34b3?`x0NqAEF%rQ*{}$? zA;z8hxzf~;DYwinMz9>e0pD8`UVUmy_ZZM{yO4!ftu~pnFh0c;klRNpS3!Duxsrg5 zDz%{X*A5Eil)k{(_vMj&B#Hb5p$irDdp9YUy0J|K=!T)VsXn%`bz9}sWQgNERBiNQ&(qau$WB@v9{tGpO7GB%xQIE$yB{(c+<~VaMy>TX4sHs3r$>W>rH3r-eZNz zsRBMG<4nMx2NG$zoR^#AJ~wNvZE44xzbSS1eEFJ%Ue;S@4st|}WDj(Zc~70u zhO2WdZ)lo-7f^P5{)la1fBz+~z+JKP>HE1*d`!=0xE~?XRWEdF4m$%(DT@ODf!EH@ z={NIznMIZ>sRSa(hIjlt-{BQ(U8bK6$~r~Q2%`hwu)MxW_E7Oaj)k-gO_KSbS-_6?Q7y#HZoh#2-{Kwm?=_Gl9N*l z?k(kXl>Y+rRiIGt=^K( z7cWMrDT3m%^;3R+ppeS#Y*e564O~xkg27K<(HE&Z5b9|3^t#IbdZ(zBM(`+X*+D$6 z%=E0Iny^7}MZrw_$0tJh4-pXFPi8LP;LJQ4`gl1lw@;SUl!MDM;APFzU`LgZxYUKJ zRahV)EZT~C$IOzVJfr|I5`rrE53gt#n=d6gJ66B^-I zaZ@DA;PO1M)ZMtX_Hp*u-C;5;>@8k?aS=QjDbL%PJ^lxKUK$W@=cjXEw9kBq9*H{Pgf~gbTpo_80v2^m<`)=lvVq;9+}{)UQVUw*#Y? z_u8*Msx(5TenyhW2l5*u)?rCBH9@wk$}WzCw$QD*+|t(&`dL+X-F=UcIrpte;4&iE!71#y{nnGA*=b>h+yu^q*f)W}j1;noBL;fU z+^7soD?j+W!GWQ#8Cz9Ze0re~Zd0@zmi=vHZAp8=Yc#q(6pu8T`*oyG@YyH6NF_ZG zcXiEo*R0Y@KSfHJnCsrwL-;Eysv0U?DAwzwUf?C0ilLv$=O4=m(4=T@4Dmm zBhE}>=mn;_+(66I7~ivOCxa2TpZPNj9f~8e(T$q81Ef-Y*Y^7BDKkeuU9PVdlqS5+ zOJAea#gANE}SsQUR9MGdm;JU2PO|ss}j2-ca`#Z*e`UAAgPB zX7(NnC4KkW?@O3RWI0?hh*1kD?*{73Uq0xFVq||A&7fUlT`R^A5H#wtc0Snpimt|_ z_WMP^o5<_=qFT;E{K*}HQ`}rd^3-r=)m@lxgFY1R12S>jCUEbPN0AKmncHar$LSOt z-E#E^dd}mYf56;v@!jniCtbp3-3)r-%CQr1Sq&~!TQG7eIGoMiJ!i>$C77<~L-jHd z)G_Vp=y`$MJ$2LHxhk%`+TZhHXUBo@tsW1&p}F~yQtc>Gir9^$#LdF^;8130kW}N- z@iobd+9W*#Ap$PA=#$63UN&mE9UXS~n;3b;d)#0uO2##3HYaS6N!0+v*`t)b;x?%iho^j>Q7)S;JB;&=`V@2fqd9?g!8u`CI9o zkp7u5YI1>DL-nU=dUTU=VhlZvz03<|fznExn+D6Ui6=W8qNO8-3DJa%Q3KPZPk{A<|M~2=GepZ>Pg7vyIisX+)-vmsvJW$wvxBA ztyWR_m7)9UPnlrubI%xDHJty-ny&`>zeVbCnhR%GNrs%{4YqF65t z4We3?qXOfFyIoY zgR_mriY3Sn)|1Ib47}R8aGr~tr-C#aOacnCNfC+)$iFO#7ro@>Jdp>Mww`X47O9?I z`&|Vi@}&2@o%^ixH}j*6Za|_*0R;0!-V09LU8k}d$|$-fWb(`3g|=b)pHtiC2>6WH z#s^q@N3G|-0mYjx@)huOxA3cyUYw~8!<&h|dVkY^Rh9OtXOt(JlcO+go;w_0su4L8wjpa#K94CNk7Lj=oiCF4B<16kvlB}@hWot8eppoP zvnmqIH%pbmL|>F4D9K4}O5>yjxYjN7W{g8AzT_dxidIcF_jRX^Ck$~>Z;)>*aN&r- zhIJK;GE4@0x1_JNqG{6G`q(43x#)!$G3u5_YD;{Y=t>wb@gY*Ed8=wyz^N;m#dsxV_})y=0WJ=C#bSKH@~;?Xy1J)CgFn)jKVF0nCBQQG#l9?s zE3gqCco zQ@>W7VSr~kK@iiiU}37|mVoT(wZz>CCYfhYj{i#a&W<)SYV?m_X*=;M*OX(Skl;{R z6-vuNF4Q+TZ6o|Dmz-+wBTCcgU%}!tS|8_Xu6hmQe-59V-Da6W=u&WWUHJkL>nWvo z2AWlsLBO_bgRMr5`eRI1>`!^@A%a6XM2INvRauRDe388MNV{Fk*BUNKKn(68S}s$C z&SouQGG8l4Qcrwp4Q@G3 zb;=#_w_{(}kj_%*xx(3phHXCzZ9Ro=%sx~Y)tQX|w9)We<|9;@1`)MWf?s@V-tQ2k zK`xk9>Y@Q(F<*xioB7@|rgHgm$9Iy-Y>990uNHPM)$&(=wg9(C>wb9NSG*)Al>3yX z;B8MOiDrR!cMeJ%y!3?K_EG!N_%gIqnr2;-oPd*d;v1G23A(J;e7{gf=aPucmaSeW zsxO(`0rY;P_5_C)%ZiyQ49U4cZ6re<xcpl7K}stRqmMP$*-7QeSfSBmBezK^CS1#6^VWwQ$o!k3FYqTxuUE!sSXPM-!; z;$h66px1ci1H<0;MJsW{<>+#33#X}-=pknsfcG3_LhsDi*TPm45vp$Uq6D7D*p3Ua z-5d55KbB6+}L8|i}Yd^4N4@KYRl@-@hAC08j@dV5j z4^?iBv#F;9gUuN)E=M<19&U%9&fFsfERS=jzce&ZIjAp-b91w zLo+mrpl!%3jZmmY|7c@)Snm3kR0|upp}&2Ru=Hgx*0*VDqS;v51?@yj?}X$4A6Kv1 zDQu<^SB?lb_5n?lnnS0YyI+MvhR@78@q3$fk@idqcs6+fSUzw$%ly}Rz?pYOTLg#|#NuUw^U zvq)!eWmD)?H`K9YdML1Dj8?PMKDN8HYUyM}A)<)WpVC-1*}$>dUlrJdJuDip7H4;b zyH>1Rot@Vh1RNS&M8B}vZy!7|%RK^ls~>W}-9CqpDZSD?C;;aATo%t{_)?moCGDi?fXr0}Nqo;eY~#AyyFFh;l0e6o|mTn^lpPKxAYn z;)~UD6exd{K@G=HA0)uQaW1TgOgJNA zvXQ(>GxWFnUn4=7oBwvFdI*bIg%=fyh73b6=+iuaU_@y2k)uFC55o~cf$;tQs>(t@ zkWrxE2jou>z7-U|n+8!#Rq#*v4=Mj5=zq{c<6NL95XiqfBSWf2lK>BS|6&+1VDWF* zI0%XK$5phS>>gtLCFB3Z;E!`*L)_Oqu3E{rL&JjoR{cR*gs2JG146pLxJWIwLqmY< z`Trt-ewegMv%(e)ap25fbzc*KhA8yle+WSOd)x?)rrWBmwukQKa9CAzXE+){G*G3= zs_(&q5&BnvD*9o6G{ivUbHwtP6be5K!9Gs&8Uz76VE%nD*f8My)!>6bK@aNu%?5h7 z$@IX%A2!JE8RG9YAebM7NF3*f1NjC13=9?k{TAl$4j_Tw*V2mc8W%nyJ()Yjkffq)P`5F&MgUlb$&{L=v>0Qjxk-y9ym z{C=nU?=~<{0E8f$WZ?qBepl$<{scq$!T+EX2<3+&j3-&)50L-p4+8N+{=pQCAM{Wo ze~ZfpfI$CbnGY!N50-%dzJK_FfiU1-nBf1TJ@`TUKSu_7pz%-JLqPsN2l*g9_)jT8 zAlN@-13{sH{~g>ze!zolkiQxK&jy418So*=?`iD!@t=YP1EG9>G6UuV3;cuC{~t48 z0r>yX@IL{8Fc9d^(LIa={ExzcfcgJS{NT&?zoYw&6byv${{!>`>i-)Y{J$dsfq=k2 zQ9lIyhcgJk|4$nT`g>CSef)dFdz^J`VSTW z0+4?s20nQInHU5G{#i$$hcg}i4}?H4_#e&?F!&#mKp}j8f(F50zgIASXMtaU|IdD4 z00{gqnc)AS3k>9g{FxXG2L1!}Lvj5>Ch)^#_-A4;6!!Z<_BSwKn7|)r&IA7sGvoiK z`uRYA7ShAH{desiLO);u{dtz~@qzzQgnSUl?*-hy!8kb>m|K}RJgnug8F*FAJxmxL Xt_V!?Y +2.976 E F0 .475(command-line option can o)2.976 F -.15(ve)-.15 G .475 +(rride the con\214guration \214le.).15 F .475(The a)5.475 F -.25(va)-.2 +G .475(ilable v).25 F(al-)-.25 E(ues for the con\214guration \214le or \ +command-line are describef in this section.)108 295.2 Q F1(Tk.Blink)87 +312 Q(enlights)-.1 E F0 1.708(This is an interf)108 324 R 1.709 +(ace designed to be sleek, fun to w)-.1 F 1.709(atch, and informati)-.1 +F 2.009 -.15(ve o)-.25 H 4.209(ft).15 G 1.709(he o)-4.209 F -.15(ve)-.15 +G 1.709(rall picture of what).15 F F1(Of\215ineIMAP)108 336 Q F0 .18 +(is doing.)2.68 F 2.68(Ic)5.18 G .18 +(onsider it to be the best general-purpose interf)-2.68 F .18(ace in)-.1 +F F1(Of\215ineIMAP)2.68 E(.)-1.1 E F0(Tk.Blink)5.18 E(en-)-.1 E .499 +(lights contains, by def)108 348 R .499(ault, a small windo)-.1 F 2.999 +(ww)-.25 G .499(ith a ro)-2.999 F 2.999(wo)-.25 G 2.999(fL)-2.999 G .499 +(EDs and a ro)-2.999 F 2.999(wo)-.25 G 2.999(fc)-2.999 G .499(ommand b) +-2.999 F 2.999(uttons. The)-.2 F(total)2.999 E .553(size of the windo) +108 360 R 3.053(wi)-.25 G 3.053(sv)-3.053 G .552(ery small, so it uses \ +little desktop space, yet it is quite functional.)-3.203 F .552 +(There is also an)5.552 F 1.339(optional, togg)108 372 R 1.339 +(able, log that sho)-.05 F 1.339 +(ws more detail about what is happening and is color)-.25 F 1.34 +(-coded to match the)-.2 F(color of the lights.)108 384 Q(Tk.Blink)108 +400.8 Q 5.224(enlights is the only user interf)-.1 F 5.224 +(ace that has con\214gurable parameters; see the e)-.1 F(xample)-.15 E +F2(of)108 412.8 Q(\215ineimap.conf)-.18 E F0(for more details.)2.5 E +.429(Each light in the Tk.Blink)108 429.6 R .429(enlights interf)-.1 F +.429(ace represents a thread of e)-.1 F -.15(xe)-.15 G .43 +(cution -- that is, a particular task that).15 F F1(Of\215ineIMAP)108 +441.6 Q F0 .867(is performing right no)3.367 F 4.667 -.65(w. T)-.25 H +.866(he color indicates what task the particular thread is performing,) +.65 F(and are as follo)108 453.6 Q(ws:)-.25 E F1(Black)108 475.2 Q F0 +.569(indicates that this light')11.55 F 3.069(st)-.55 G .569 +(hread has terminated; it will light up ag)-3.069 F .57 +(ain later when ne)-.05 F 3.07(wt)-.25 G .57(hreads start)-3.07 F 2.5 +(up. So,)144 487.2 R(black indicates no acti)2.5 E(vity)-.25 E(.)-.65 E +F1(Red \(Meaning 1\))108 504 Q F0 .442 +(is the color of the main program')144 516 R 2.942(st)-.55 G .442 +(hread, which basically does nothing b)-2.942 F .442 +(ut monitor the others.)-.2 F(It)5.441 E +(might remind you of HAL 9000 in)144 528 Q F2(2001.)2.5 E F1(Pur)108 +544.8 Q(ple)-.1 E F0 .656(is the color of an account synchronization th\ +read that is monitoring the progress of the folders in)7.21 F +(that account \(not generating an)144 556.8 Q 2.5(yI)-.15 G(/O\).)-2.5 E +F1(Cyan)108 573.6 Q F0(indicates that the thread is syncing a folder) +13.22 E(.)-.55 E F1(Gr)108 590.4 Q(een)-.18 E F0(means that a folder') +9.52 E 2.5(sm)-.55 G(essage list is being loaded.)-2.5 E F1(Blue)108 +607.2 Q F0(is the color of a message synchronization controller thread.) +16.55 E F1(Orange)108 624 Q F0 +(indicates that an actual message is being copied.)144 636 Q F1 +(Red \(Meaning 2\))108 652.8 Q F0 +(indicates that a message is being deleted.)144 664.8 Q F1 -1.11(Ye)108 +681.6 S(llo)1.11 E(w)-.1 E F0 +(\(bright orange\) indicates that message \215ags are being added.)7.77 +E F1(Pink)108 698.4 Q F0 +(\(bright red\) indicates that message \215ags are being remo)15.99 E +-.15(ve)-.15 G(d.).15 E(John Goerzen)72 768 Q(July 12, 2002)151.655 E(3) 201.915 E EP %%Page: 4 4 %%BeginPageSetup @@ -499,299 +514,417 @@ BP %%EndPageSetup /F0 10/Times-Roman@0 SF 111.22(OFFLINEIMAP\(1\) Of)72 48 R (\215ineIMAP manual)-.25 E(OFFLINEIMAP\(1\))113.72 E/F1 10/Times-Bold@0 -SF 2.5(#w)108 84 S(ould seem intuiti)-2.6 E .2 -.1(ve t)-.1 H(hat r).1 E -(efer)-.18 E(ence w)-.18 E(ould trim it.)-.1 E -.25(fo)108 96 S -(lder\214lter = lambda f).25 E(older)-.25 E(name: f)-.15 E(older)-.25 E -(name in [)-.15 E('Mail/INBO)125.5 108 Q(X',)-.4 E -('Mail/list/zaurus-general',)125.5 120 Q('Mail/list/zaurus-de)125.5 132 -Q(v',)-.15 E(])125.5 144 Q(maxconnections = 1)108 156 Q -(holdconnectionopen = no)108 168 Q/F2 10.95/Times-Bold@0 SF(ERR)72 184.8 -Q(ORS)-.329 E F0(If you get one of some frequently-encountered or confu\ -sing errors, please check this section.)108 196.8 Q F1(UID v)87 213.6 Q -(alidity pr)-.1 E(oblem f)-.18 E(or f)-.25 E(older)-.25 E F0 1.637 -(IMAP serv)108 225.6 R 1.637 -(ers use a unique ID \(UID\) to refer to a speci\214c message.)-.15 F -1.638(This number is guaranteed to be)6.637 F 1.11 -(unique to a particular message FOREVER.)108 237.6 R 1.109 -(No other message in the same folder will e)6.11 F -.15(ve)-.25 G 3.609 -(rg).15 G 1.109(et the same)-3.609 F 2.873(UID. UIDs)108 249.6 R .373 -(are an inte)2.873 F .373(gral part of Of)-.15 F(\215ineIMAP')-.25 E -2.873(ss)-.55 G .373(ynchronization scheme; the)-2.873 F 2.873(ya)-.15 G -.373(re used to match up mes-)-2.873 F -(sages on your computer to messages on the serv)108 261.6 Q(er)-.15 E(.) --.55 E .108(Sometimes, the UIDs on the serv)108 278.4 R .108 -(er might get reset.)-.15 F .108 -(Usually this will happen if you delete and then recreate)5.108 F 3.742 -(af)108 290.4 S(older)-3.742 E 6.242(.W)-.55 G 1.242 -(hen you create a folder)-6.242 F 3.742(,t)-.4 G 1.242(he serv)-3.742 F -1.242(er will often start the UID back from 1.)-.15 F(But)6.243 E F1 -(Of\215ineIMAP)3.743 E F0 .303(might still ha)108 302.4 R .603 -.15 -(ve t)-.2 H .303(he UIDs from the pre).15 F .302 -(vious folder by the same name stored.)-.25 F F1(Of\215ineIMAP)5.302 E -F0 .302(will detect this)2.802 F(condition and skip the folder)108 314.4 -Q 5(.T)-.55 G(his is GOOD, because it pre)-5 E -.15(ve)-.25 G -(nts data loss.).15 E -1.1(Yo)108 331.2 S 2.826(uc)1.1 G .326 -(an \214x it by remo)-2.826 F .327 -(ving your local folder and cache data.)-.15 F -.15(Fo)5.327 G 2.827(ri) -.15 G .327(nstance, if your folders are under)-2.827 F/F3 10 -/Times-Italic@0 SF(~/F)2.827 E(old-)-1.05 E(er)108 343.2 Q(s)-.1 E F0 -(and the folder with the problem is INBO)2.5 E(X, you')-.4 E 2.5(dt)-.5 -G(ype this:)-2.5 E F1(rm -r ~/F)108 360 Q(olders/INBO)-.25 E(X)-.4 E -(rm ~/.of\215ineimap/AccountName/INBO)108 372 Q(X)-.4 E F0 -(\(replacing AccountName with the account name as speci\214ed in)108 -388.8 Q F3(~/.of)2.5 E(\215ineimapr)-.18 E(c\))-.37 E F0(Ne)108 405.6 Q -.802(xt time you run)-.15 F F1(Of\215ineIMAP)3.302 E(,)-.92 E F0 .802 -(it will re-do)3.302 F .802(wnload the folder with the ne)-.25 F 3.302 -(wU)-.25 G 3.301(IDs. Note)-3.302 F .801(that the proce-)3.301 F -(dure speci\214ed abo)108 417.6 Q .3 -.15(ve w)-.15 H(ill lose an).15 E -2.5(yl)-.15 G(ocal changes made to the folder)-2.5 E(.)-.55 E .522 -(Some IMAP serv)108 434.4 R .522(ers are brok)-.15 F .522 -(en and do not support UIDs properly)-.1 F 5.522(.I)-.65 G 3.022(fy) --5.522 G .522(ou continue to get this error for all)-3.022 F .067 -(your folders e)108 446.4 R -.15(ve)-.25 G 2.566(na).15 G .066 -(fter performing the abo)-2.566 F .366 -.15(ve p)-.15 H .066 -(rocedure, it is lik).15 F .066(ely that your IMAP serv)-.1 F .066(er f) --.15 F .066(alls into this cat-)-.1 F -.15(eg)108 458.4 S(ory).15 E(.) --.65 E F1(Of\215ineIMAP)5.983 E F0 .984(is incompatible with such serv) -3.483 F 3.484(ers. Using)-.15 F F1(Of\215ineIMAP)3.484 E F0 .984 -(with them will not destro)3.484 F(y)-.1 E(an)108 470.4 Q 2.77(ym)-.15 G -.27(ail, b)-2.77 F .27 -(ut at the same time, it will not actually synchronize it either)-.2 F -5.269(.\()-.55 G(Of)-5.269 E .269(\215ineIMAP will detect this con-)-.25 -F(dition and abort prior to synchronization\))108 482.4 Q F2 -.438(OT)72 -511.2 S(HER FREQ).438 E(UENTL)-.11 E 2.738(YA)-1.007 G(SKED Q)-2.738 E -(UESTIONS)-.11 E F0 .683(There are some other F)108 523.2 R -.55(AQ)-.74 -G 3.184(st).55 G .684 -(hat might not \214t into another section of this document, and the) --3.184 F 3.184(ya)-.15 G .684(re enumer)-3.184 F(-)-.2 E(ated here.)108 -535.2 Q F1(What platf)108 552 Q(orms does Of\215ineIMAP run on?)-.25 E -F0(It should run on most platforms supported by Python, which are quite\ - a fe)144 564 Q -.65(w.)-.25 G F1 .689 -(I'm using Mutt. Other IMAP sync pr)108 580.8 R .689(ograms r)-.18 F -(equir)-.18 E 3.189(em)-.18 G 3.189(et)-3.189 G 3.189(ou)-3.189 G .689 -(se set maildir_trash=y)-3.189 F .688(es . Do I need to)-.1 F -(do that with Of\215ineIMAP?)108 592.8 Q F0(No.)144 604.8 Q F1 -(Of\215ineIMAP)7.27 E F0 2.27 -(is smart enough to \214gure out message deletion without this e)4.77 F -2.27(xtra crutch.)-.15 F -1.1(Yo)144 616.8 S(u')1.1 E -(ll get the best results if you don')-.1 E 2.5(tu)-.18 G -(se this setting, in f)-2.5 E(act.)-.1 E F1(Ho)108 633.6 Q 2.5(wd)-.1 G -2.5(oIs)-2.5 G(pecify the names of my f)-2.5 E(olders?)-.25 E F0 -1.1 -(Yo)144 645.6 S 3.55(ud)1.1 G 3.55(on)-3.55 G 1.05(ot need to.)-3.55 F -F1(Of\215ineIMAP)6.05 E F0 1.05 -(is smart enough to automatically \214gure out what folders are)3.55 F -.679(present on the IMAP serv)144 657.6 R .679(er and synchronize them.) --.15 F -1.1(Yo)5.679 G 3.178(uc)1.1 G .678(an use the)-3.178 F F1 -.25 -(fo)3.178 G(lder\214lter).25 E F0(and)3.178 E F1 -.25(fo)3.178 G -(ldertrans).25 E F0(con\214guration \214le options to request certain f\ -olders and rename them as the)144 669.6 Q 2.5(yc)-.15 G -(ome in if you lik)-2.5 E(e.)-.1 E F1(Ho)108 686.4 Q 2.5(wc)-.1 G -(an I pr)-2.5 E -2.3 -.15(ev e)-.18 H(nt certain f).15 E(olders fr)-.25 -E(om being synced?)-.18 E F0(Use the)144 698.4 Q F1 -.25(fo)2.5 G -(lder\214lter).25 E F0(option in the con\214guration \214le.)2.5 E -(John Goerzen)72 768 Q(July 12, 2002)151.655 E(4)201.915 E EP +SF(Red / Black Flashing)108 84 Q F0(corresponds to the countdo)144 96 Q +(wn timer that runs between synchronizations.)-.25 E 1.317 +(The name of this interf)108 112.8 R 1.316(ace deri)-.1 F -.15(ve)-.25 G +3.816(sf).15 G 1.316(rom a bit of computer science history)-3.816 F +6.316(.E)-.65 G 1.316(ric Raymond')-6.316 F(s)-.55 E/F2 10 +/Times-Italic@0 SF -.35(Ja)3.816 G -.37(rg).35 G 1.316(on F).37 F(ile) +-.45 E F0(de\214nes blink)108 124.8 Q(enlights, in part, as:)-.1 E .132 +(Front-panel diagnostic lights on a computer)144 141.6 R 2.632(,e)-.4 G +.132(sp. a dinosaur)-2.632 F 2.632(.N)-.55 G .632 -.25(ow t)-2.632 H +.132(hat dinosaurs are rare, this term).25 F +(usually refers to status lights on a modem, netw)144 153.6 Q +(ork hub, or the lik)-.1 E(e.)-.1 E 1.244(This term deri)144 170.4 R +-.15(ve)-.25 G 3.744(sf).15 G 1.244(rom the last w)-3.744 F 1.244 +(ord of the f)-.1 F 1.243(amous blackletter)-.1 F 1.243 +(-Gothic sign in mangled pseudo-)-.2 F .566(German that once graced abo\ +ut half the computer rooms in the English-speaking w)144 182.4 R .566 +(orld. One v)-.1 F(er)-.15 E(-)-.2 E(sion ran in its entirety as follo) +144 194.4 Q(ws:)-.25 E F1 -.55(AC)144 211.2 S +(HTUNG! ALLES LOOKENSPEEPERS!).55 E F0 1.648 +(Das computermachine ist nicht fuer ge\214ngerpok)144 228 R 1.647 +(en und mittengrabben.)-.1 F 1.647(Ist easy schnappen der)6.647 F .12 +(springenwerk, blo)144 240 R .121(wenfusen und poppencork)-.25 F .121 +(en mit spitzenspark)-.1 F 2.621(en. Ist)-.1 F .121(nicht fuer ge)2.621 +F(werk)-.25 E .121(en bei das)-.1 F(dumpk)144 252 Q 2.519(opfen. Das)-.1 +F(rubberneck)2.519 E .018(en sichtseeren k)-.1 F .018 +(eepen das cotten-pick)-.1 F .018(enen hans in das pock)-.1 F .018 +(ets muss;)-.1 F(relax)144 264 Q(en und w)-.15 E(atchen das blink)-.1 E +(enlichten.)-.1 E F1(Tk.V)87 280.8 Q(erboseUI)-1 E F0 .503(This interf) +108 292.8 R .503(ace \(formerly kno)-.1 F .503 +(wn as Tk.TkUI\) is a graphical interf)-.25 F .504 +(ace that presents a v)-.1 F .504(ariable-sized windo)-.25 F -.65(w.) +-.25 G 1.37(In the windo)108 304.8 R 2.67 -.65(w, e)-.25 H 1.37 +(ach currently-e).65 F -.15(xe)-.15 G 1.37 +(cuting thread has a section where its name and current status are dis-) +.15 F 2.768(played. This)108 316.8 R(interf)2.768 E .268 +(ace is best suited to people running on slo)-.1 F .269 +(wer connections, as you get a lot of detail, b)-.25 F(ut)-.2 E .357 +(for f)108 328.8 R .356 +(ast connections, the detail may go by too quickly to be useful.)-.1 F +.356(People with f)5.356 F .356(ast connections may wish)-.1 F +(to use Tk.Blink)108 340.8 Q(enlights instead.)-.1 E F1(TTY)87 357.6 Q +(.TTYUI)-.92 E F0 1.341(This interf)108 369.6 R 1.341(ace is the def)-.1 +F 1.342(ault for people running in terminals.)-.1 F 1.342 +(It prints out basic status messages, has an)6.342 F +(interruptible timer lik)108 381.6 Q 2.5(et)-.1 G(he graphical interf) +-2.5 E(aces do, and is generally friendly to use on a console or xterm.) +-.1 E F1(Noninteracti)87 398.4 Q -.1(ve)-.1 G(.Basic).1 E F0 .552 +(This interf)108 410.4 R .552(ace is designed for situations where)-.1 F +F1(Of\215ineIMAP)3.051 E F0 .551 +(will be run non-attended and the status of its)3.051 F -.15(exe)108 +422.4 S .697(cution will be logged.).15 F -1.1(Yo)5.697 G 3.197(um)1.1 G +.697(ight use it, for instance, to ha)-3.197 F .997 -.15(ve t)-.2 H .697 +(he system run automatically and e-mail).15 F .903 +(you the results of the synchronization.)108 434.4 R .902 +(This user interf)5.903 F .902(ace is not capable of reading a passw)-.1 +F .902(ord from the)-.1 F -.1(ke)108 446.4 S(yboard; account passw)-.05 +E(ords must be speci\214ed using one of the con\214guration \214le opti\ +ons.)-.1 E F1(Noninteracti)87 463.2 Q -.1(ve)-.1 G(.Quiet).1 E F0 1.622 +(This interf)108 475.2 R 1.623(ace is designed for non-attended running\ + in situations where normal status messages are not)-.1 F 3.934 +(desired. It)108 487.2 R 1.434(will output nothing e)3.934 F 1.434 +(xcept errors and serious w)-.15 F 3.934(arnings. Lik)-.1 F 3.934(eN)-.1 +G(oninteracti)-3.934 E -.15(ve)-.25 G 1.433(.Basic, this user).15 F +(interf)108 499.2 Q 1.38(ace is not capable of reading a passw)-.1 F +1.38(ord from the k)-.1 F -.15(ey)-.1 G 1.38(board; account passw).15 F +1.38(ords must be speci\214ed)-.1 F +(using one of the con\214guration \214le options.)108 511.2 Q/F3 10.95 +/Times-Bold@0 SF(EXAMPLES)72 528 Q F0(Here is an e)108 540 Q +(xample con\214guration for a particularly comple)-.15 E 2.5(xs)-.15 G +(ituation; more e)-2.5 E(xamples will be added later)-.15 E(.)-.55 E F1 +(MUL)87 556.8 Q(TIPLE A)-.92 E(CCOUNTS WITH MUTT)-.55 E F0 .514(This e) +108 568.8 R .514(xample sho)-.15 F .514(ws you ho)-.25 F 3.014(wt)-.25 G +3.014(os)-3.014 G .514(et up)-3.014 F F1(Of\215ineIMAP)3.014 E F0 .513 +(to synchronize multiple accounts with the mutt mail)3.014 F(reader)108 +580.8 Q(.)-.55 E(Start by creating a directory to hold your folders:)108 +597.6 Q F1(mkdir ~/Mail)108 609.6 Q F0(In your)108 626.4 Q F2(~/.of)2.5 +E(\215ineimapr)-.18 E(c,)-.37 E F0(specify this:)2.5 E F1(accounts = P) +108 638.4 Q(ersonal, W)-.2 E(ork)-.75 E F0(Mak)108 655.2 Q 2.82(es)-.1 G +.32(ure that you ha)-2.82 F .62 -.15(ve b)-.2 H .32(oth a).15 F F1([P) +2.821 E(ersonal])-.2 E F0 .321(and a)2.821 F F1([W)2.821 E(ork])-.75 E +F0 .321(section, with dif)2.821 F .321(ferent localfolder pathnames and) +-.25 F(enable)108 667.2 Q F1([mbnames].)2.5 E F0 +(In each account section, do something lik)108 684 Q 2.5(et)-.1 G(his:) +-2.5 E F1(localf)108 696 Q(olders = ~/Mail/P)-.25 E(ersonal)-.2 E F0 +(Add these lines to your)108 712.8 Q F2(~/.muttr)2.5 E(c:)-.37 E F1 +(sour)108 724.8 Q(ce ~/path-to-mbnames-muttr)-.18 E(c-mailboxes)-.18 E +F0(John Goerzen)72 768 Q(July 12, 2002)151.655 E(4)201.915 E EP %%Page: 5 5 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 111.22(OFFLINEIMAP\(1\) Of)72 48 R (\215ineIMAP manual)-.25 E(OFFLINEIMAP\(1\))113.72 E/F1 10/Times-Bold@0 -SF(Ho)108 84 Q 2.5(wc)-.1 G(an I add or delete a f)-2.5 E(older?)-.25 E -(Of\215ineIMAP)144 96 Q F0 .503(does not currently pro)3.003 F .504 -(vide this feature, b)-.15 F .504(ut if you create a ne)-.2 F 3.004(wf) --.25 G .504(older on the IMAP)-3.004 F(serv)144 108 Q(er)-.15 E 2.5(,i) --.4 G 2.5(tw)-2.5 G(ill be created locally automatically)-2.5 E(.)-.65 E -F1(Ar)108 124.8 Q 2.5(et)-.18 G(her)-2.5 E 2.5(ea)-.18 G(ny other war) --2.5 E(nings that I should be awar)-.15 E 2.5(eo)-.18 G(f?)-2.5 E F0 -1 -(Ye)144 136.8 S(s; see the NO)1 E(TES section belo)-.4 E -.65(w.)-.25 G -F1(What is the mailbox name r)108 153.6 Q(ecorder \(mbnames\) f)-.18 E -(or?)-.25 E F0 1.019(The Mutt mail reader is not capable of automatical\ -ly determining the names of your mailbox)144 165.6 R(es.)-.15 E(Of)144 -177.6 Q .265(\215ineIMAP can help it \(or man)-.25 F 2.765(yo)-.15 G -.265(ther\) programs out be writing these names out in a format you) --2.765 F(specify)144 189.6 Q 5(.S)-.65 G(ee the e)-5 E(xample of)-.15 E -(\215ineimap.conf \214le for details.)-.25 E F1(Can I synchr)108 206.4 Q -(onize multiple accounts with Of\215ineIMAP?)-.18 E F0 3.345(Sure. Just) -144 218.4 R .845(name them all in the accounts line in the general sect\ -ion of the con\214g \214le, and add a)3.345 F(per)144 230.4 Q -(-account section for each one.)-.2 E F1 -(Does Of\215ineIMAP support POP?)108 247.2 Q F0 4.076(No. POP)144 259.2 -R 1.576(is not rob)4.076 F 1.576(ust enough to do a completely reliable\ - multi-machine synchronization lik)-.2 F(e)-.1 E(Of)144 271.2 Q -(\215ineIMAP can do.)-.25 E(Of)5 E(\215ineIMAP will not support it.)-.25 -E F1(Do y)108 288 Q(ou support mailbox f)-.25 E -(ormats other than Maildir?)-.25 E F0 .41(Not at present.)144 300 R .41 -(There is no technical reason not to; just no demand yet.)5.41 F .409 -(Maildir is a superior for)5.409 F(-)-.2 E(mat an)144 312 Q(yw)-.15 E -(ay)-.1 E(.)-.65 E F1([technical] Wh)108 328.8 Q 2.5(ya)-.15 G .36 -.18 -(re y)-2.5 H(our Maildir message \214lenames so huge?)-.07 E -(Of\215ineIMAP)144 340.8 Q F0 .958(has tw)3.458 F 3.458(or)-.1 G(ele) --3.458 E -.25(va)-.25 G .958(nt principles: 1\) ne).25 F -.15(ve)-.25 G -3.459(rm).15 G .959(odifying your messages in an)-3.459 F 3.459(yw)-.15 -G .959(ay and 2\))-3.559 F .493 -(ensuring 100% reliable synchronizations.)144 352.8 R .493 -(In order to do a reliable sync,)5.493 F F1(Of\215ineIMAP)2.993 E F0 -.493(must ha)2.993 F -.15(ve)-.2 G 3.094(aw)144 364.8 S .594 -(ay to uniquely identify each e-mail.)-3.194 F .595 -(Three pieces of information are required to do this: your)5.594 F .538 -(account name, the folder name, and the message UID.)144 376.8 R .537 -(The account name can be calculated from)5.537 F 1.081 -(the path in which your messages are.)144 388.8 R 1.082 -(The folder name can usually be as well, B)6.082 F 1.082(UT some mail) --.1 F(clients mo)144 400.8 Q .3 -.15(ve m)-.15 H -(essages between folders by simply mo).15 E(ving the \214le, lea)-.15 E -(ving the name intact.)-.2 E(So,)144 417.6 Q F1(Of\215ineIMAP)3.2 E F0 -.7(must store both a UID folder ID.)3.2 F .7 -(The folder ID is necessary so)5.7 F F1(Of\215ineIMAP)3.2 E F0 .455 -(can detect a message mo)144 429.6 R -.15(ve)-.15 G 2.955(dt).15 G 2.955 -(oad)-2.955 G(if)-2.955 E .455(ferent folder)-.25 F(.)-.55 E F1 -(Of\215ineIMAP)5.455 E F0 .456(stores the UID \(U= number\) and)2.955 F -(an md5sum of the foldername \(FMD5= number\) to f)144 441.6 Q -(acilitate this.)-.1 E F1(What is the speed of Of\215ineIMAP')108 458.4 -Q 2.5(ss)-.37 G(ync?)-2.5 E(Of\215ineIMAP)144 470.4 Q F0 -.15(ve)2.891 G -.391(rsions 2.0 and abo).15 F .691 -.15(ve c)-.15 H .391 -(ontain a multithreaded system.).15 F 2.891(Ag)5.391 G .39(ood w)-2.891 -F .39(ay to e)-.1 F(xperiment)-.15 E(is by setting maxsyncaccounts to 3\ - and maxconnections to 3 in each account clause.)144 482.4 Q .381 -(This lets Of)144 499.2 R .381 -(\215ineIMAP open up multiple connections simultaneously)-.25 F 5.382 -(.T)-.65 G .382(hat will let it process mul-)-5.382 F -(tiple folders and messages at once.)144 511.2 Q -(In most cases, this will increase performance of the sync.)5 E(Don')144 -528 Q 3.104(ts)-.18 G .604(et the number too high.)-3.104 F .603 -(If you do that, things might actually slo)5.604 F 3.103(wd)-.25 G -.25 -(ow)-3.103 G 3.103(na).25 G 3.103(sy)-3.103 G .603(our link gets)-3.103 -F 2.632(saturated. Also,)144 540 R .132(too man)2.632 F 2.632(yc)-.15 G -.132(onnections can cause mail serv)-2.632 F .132(ers to ha)-.15 F .433 --.15(ve ex)-.2 H(cessi).15 E .433 -.15(ve l)-.25 H 2.633 -(oad. Administra-).15 F .507(tors might tak)144 552 R 3.007(eu)-.1 G -.507(nkindly to this, and the serv)-3.007 F .506(er might bog do)-.15 F -3.006(wn. There)-.25 F .506(are man)3.006 F 3.006(yv)-.15 G .506 -(ariables in the)-3.256 F(optimal setting; e)144 564 Q -(xperimentation may help.)-.15 E -(An informal benchmark yields these results for my setup:)144 580.8 Q -(10 minutes with MacOS X Mail.app "manual cache")144 597.6 Q 2.5(5m)144 -609.6 S(inutes with GNUS agent sync)-2.5 E(20 seconds with Of)144 621.6 -Q(\215ineIMAP 1.x)-.25 E 2.5(9s)144 633.6 S(econds with Of)-2.5 E -(\215ineIMAP 2.x)-.25 E 2.5(3s)144 645.6 S(econds with Of)-2.5 E -(\215ineIMAP 3.x "cold start")-.25 E 2.5(2s)144 657.6 S(econds with Of) --2.5 E(\215ineIMAP 3.x "held connection")-.25 E/F2 10.95/Times-Bold@0 SF -(CONFORMING T)72 674.4 Q(O)-.197 E F0 32.5<8349>108 686.4 S -(nternet Message Access Protocol v)-32.5 E(ersion 4re)-.15 E -(v1 \(IMAP 4re)-.25 E(v1\) as speci\214ed in RFC2060)-.25 E 32.5<834d> -108 703.2 S 8.92(aildir as speci\214ed in http://www)-32.5 F(.qmail.or) --.65 E(g/qmail-manual-html/man5/maildir)-.18 E 8.92(.html and)-.55 F -(http://cr)144 715.2 Q(.yp.to/proto/maildir)-.55 E(.html.)-.55 E -(John Goerzen)72 768 Q(July 12, 2002)151.655 E(5)201.915 E EP +SF -.25(fo)108 84 S(lder).25 E(-hook P)-.37 E(ersonal set fr)-.2 E +(om="y)-.18 E(our)-.25 E(email@personal.com")-.18 E -.25(fo)108 96 S +(lder).25 E(-hook W)-.37 E(ork set fr)-.75 E(om="y)-.18 E(our)-.25 E +(email@w)-.18 E(ork.com")-.1 E(set mbox_type=Maildir)108 108 Q(set f)108 +120 Q(older=$HOME/Mail)-.25 E(set spool\214le=+P)108 132 Q(ersonal/INBO) +-.2 E(X)-.4 E F0(That')108 148.8 Q 2.5(si)-.55 G(t!)-2.5 E F1(UW)87 +165.6 Q(-IMAPD AND REFERENCES)-.37 E F0 .494(Some users with a UW)108 +177.6 R .493(-IMAPD serv)-.65 F .493(er need to use)-.15 F F1 +(Of\215ineIMAP')2.993 E(s)-.37 E F0 .493 +("reference" feature to get at their mail-)2.993 F(box)108 189.6 Q .46(\ +es, specifying a reference of "~/Mail" or "#mh/" depending on the con\ +\214guration.)-.15 F .46(The belo)5.46 F 2.96(wc)-.25 G(on\214gura-) +-2.96 E .465(tion from docwhat@gerf.or)108 201.6 R 2.965(gs)-.18 G(ho) +-2.965 E .465(ws using a reference of Mail, a nametrans that strips the\ + leading Mail/ of)-.25 F(f)-.25 E(incoming folder names, and a folder\ +\214lter that limits the folders synced to just three.)108 213.6 Q F1 +([Gerf])108 230.4 Q(localf)108 242.4 Q(olders = ~/Mail)-.25 E -.18(re) +108 254.4 S(motehost = gerf).18 E(.or)-.15 E(g)-.1 E(ssl = y)108 266.4 Q +(es)-.1 E -.18(re)108 278.4 S(moteuser = docwhat).18 E -.18(re)108 290.4 +S(fer).18 E(ence = Mail)-.18 E 2.5(#T)108 302.4 S(rims off the pr)-3.24 +E(eceeding Mail on all the f)-.18 E(older names.)-.25 E +(nametrans = lambda f)108 314.4 Q(older)-.25 E(name: \\)-.15 E -.18(re) +138 326.4 S(.sub\('^Mail/', ').18 E(', f)-.63 E(older)-.25 E(name\))-.15 +E 2.5(#Y)108 338.4 S(eah, y)-3.61 E(ou ha)-.25 E .2 -.1(ve t)-.25 H 2.5 +(om).1 G(ention the Mail dir)-2.5 E 2.5(,e)-.92 G -.1(ve)-2.65 G 2.5(nt) +.1 G(hough it)-2.5 E 2.5(#w)108 350.4 S(ould seem intuiti)-2.6 E .2 -.1 +(ve t)-.1 H(hat r).1 E(efer)-.18 E(ence w)-.18 E(ould trim it.)-.1 E +-.25(fo)108 362.4 S(lder\214lter = lambda f).25 E(older)-.25 E(name: f) +-.15 E(older)-.25 E(name in [)-.15 E('Mail/INBO)125.5 374.4 Q(X',)-.4 E +('Mail/list/zaurus-general',)125.5 386.4 Q('Mail/list/zaurus-de)125.5 +398.4 Q(v',)-.15 E(])125.5 410.4 Q(maxconnections = 1)108 422.4 Q +(holdconnectionopen = no)108 434.4 Q/F2 10.95/Times-Bold@0 SF(ERR)72 +451.2 Q(ORS)-.329 E F0(If you get one of some frequently-encountered or\ + confusing errors, please check this section.)108 463.2 Q F1(UID v)87 +480 Q(alidity pr)-.1 E(oblem f)-.18 E(or f)-.25 E(older)-.25 E F0 1.637 +(IMAP serv)108 492 R 1.637 +(ers use a unique ID \(UID\) to refer to a speci\214c message.)-.15 F +1.638(This number is guaranteed to be)6.637 F 1.11 +(unique to a particular message FOREVER.)108 504 R 1.109 +(No other message in the same folder will e)6.11 F -.15(ve)-.25 G 3.609 +(rg).15 G 1.109(et the same)-3.609 F 2.873(UID. UIDs)108 516 R .373 +(are an inte)2.873 F .373(gral part of Of)-.15 F(\215ineIMAP')-.25 E +2.873(ss)-.55 G .373(ynchronization scheme; the)-2.873 F 2.873(ya)-.15 G +.373(re used to match up mes-)-2.873 F +(sages on your computer to messages on the serv)108 528 Q(er)-.15 E(.) +-.55 E .108(Sometimes, the UIDs on the serv)108 544.8 R .108 +(er might get reset.)-.15 F .108 +(Usually this will happen if you delete and then recreate)5.108 F 3.742 +(af)108 556.8 S(older)-3.742 E 6.242(.W)-.55 G 1.242 +(hen you create a folder)-6.242 F 3.742(,t)-.4 G 1.242(he serv)-3.742 F +1.242(er will often start the UID back from 1.)-.15 F(But)6.243 E F1 +(Of\215ineIMAP)3.743 E F0 .303(might still ha)108 568.8 R .603 -.15 +(ve t)-.2 H .303(he UIDs from the pre).15 F .302 +(vious folder by the same name stored.)-.25 F F1(Of\215ineIMAP)5.302 E +F0 .302(will detect this)2.802 F(condition and skip the folder)108 580.8 +Q 5(.T)-.55 G(his is GOOD, because it pre)-5 E -.15(ve)-.25 G +(nts data loss.).15 E -1.1(Yo)108 597.6 S 2.826(uc)1.1 G .326 +(an \214x it by remo)-2.826 F .327 +(ving your local folder and cache data.)-.15 F -.15(Fo)5.327 G 2.827(ri) +.15 G .327(nstance, if your folders are under)-2.827 F/F3 10 +/Times-Italic@0 SF(~/F)2.827 E(old-)-1.05 E(er)108 609.6 Q(s)-.1 E F0 +(and the folder with the problem is INBO)2.5 E(X, you')-.4 E 2.5(dt)-.5 +G(ype this:)-2.5 E F1(rm -r ~/F)108 626.4 Q(olders/INBO)-.25 E(X)-.4 E +(rm ~/.of\215ineimap/AccountName/INBO)108 638.4 Q(X)-.4 E F0 +(\(replacing AccountName with the account name as speci\214ed in)108 +655.2 Q F3(~/.of)2.5 E(\215ineimapr)-.18 E(c\))-.37 E F0(Ne)108 672 Q +.802(xt time you run)-.15 F F1(Of\215ineIMAP)3.302 E(,)-.92 E F0 .802 +(it will re-do)3.302 F .802(wnload the folder with the ne)-.25 F 3.302 +(wU)-.25 G 3.301(IDs. Note)-3.302 F .801(that the proce-)3.301 F +(dure speci\214ed abo)108 684 Q .3 -.15(ve w)-.15 H(ill lose an).15 E +2.5(yl)-.15 G(ocal changes made to the folder)-2.5 E(.)-.55 E .522 +(Some IMAP serv)108 700.8 R .522(ers are brok)-.15 F .522 +(en and do not support UIDs properly)-.1 F 5.522(.I)-.65 G 3.022(fy) +-5.522 G .522(ou continue to get this error for all)-3.022 F .067 +(your folders e)108 712.8 R -.15(ve)-.25 G 2.566(na).15 G .066 +(fter performing the abo)-2.566 F .366 -.15(ve p)-.15 H .066 +(rocedure, it is lik).15 F .066(ely that your IMAP serv)-.1 F .066(er f) +-.15 F .066(alls into this cat-)-.1 F -.15(eg)108 724.8 S(ory).15 E(.) +-.65 E F1(Of\215ineIMAP)5.983 E F0 .984(is incompatible with such serv) +3.483 F 3.484(ers. Using)-.15 F F1(Of\215ineIMAP)3.484 E F0 .984 +(with them will not destro)3.484 F(y)-.1 E(John Goerzen)72 768 Q +(July 12, 2002)151.655 E(5)201.915 E EP %%Page: 6 6 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 111.22(OFFLINEIMAP\(1\) Of)72 48 R -(\215ineIMAP manual)-.25 E(OFFLINEIMAP\(1\))113.72 E 32.5<8353>108 84 S -(tandard Python 2.2.1 as implemented on POSIX-compliant systems.)-32.5 E -/F1 10.95/Times-Bold@0 SF(NO)72 100.8 Q(TES)-.438 E/F2 10/Times-Bold@0 -SF(DELETING LOCAL FOLDERS)87 112.8 Q(Of\215ineIMAP)108 124.8 Q F0 .533 -(does a tw)3.033 F(o-w)-.1 E .533(ay synchronization.)-.1 F .532 -(That is, if you mak)5.532 F 3.032(eac)-.1 G .532 -(hange to the mail on the serv)-3.032 F(er)-.15 E 3.032(,i)-.4 G(t) --3.032 E .896(will be propog)108 136.8 R .896(ated to your local cop) --.05 F 2.197 -.65(y, a)-.1 H .897(nd vise-v).65 F 3.397(ersa. Some)-.15 -F .897(people might think that it w)3.397 F .897(ould be wise to)-.1 F -1.59(just delete all their local mail folders periodically)108 148.8 R -6.59(.I)-.65 G 4.09(fy)-6.59 G 1.59(ou do this with Of)-4.09 F -(\215ineIMAP)-.25 E 4.09(,r)-1.11 G 1.59(emember to also)-4.09 F(remo) -108 160.8 Q 1.67 -.15(ve y)-.15 H 1.37(our local status cache \(~/.of) -.15 F 1.37(\215ineimap by def)-.25 F 3.87(ault\). Otherwise,)-.1 F(Of) -3.87 E 1.37(\215ineIMAP will tak)-.25 F 3.87(et)-.1 G 1.37(his as an) --3.87 F .416(intentional deletion of man)108 172.8 R 2.916(ym)-.15 G -.416(essages and will interpret your action as requesting them to be de\ -leted from)-2.916 F(the serv)108 184.8 Q(er as well.)-.15 E -(\(If you don')5 E 2.5(tu)-.18 G(nderstand this, don')-2.5 E 2.5(tw)-.18 -G(orry; you probably w)-2.6 E(on')-.1 E 2.5(te)-.18 G -(ncounter this situation\))-2.5 E F2(COPYING MESSA)87 201.6 Q -(GES BETWEEN FOLDERS)-.55 E F0(Normally)108 213.6 Q 5.858(,w)-.65 G -3.358(hen you cop)-5.858 F -8.357 5.858(ya m)-.1 H 3.359 -(essage between folders or add a ne)-5.858 F 5.859(wm)-.25 G 3.359 -(essage to a folder locally)-5.859 F(,)-.65 E F2(Of\215ineIMAP)108 225.6 -Q F0 .853(will just do the right thing.)3.353 F(Ho)5.853 E(we)-.25 E --.15(ve)-.25 G 1.653 -.4(r, s).15 H .853(ometimes this can be trick).4 F -3.353(y-)-.15 G 3.353(-i)-3.353 G 3.353(fy)-3.353 G .853(our IMAP serv) --3.353 F(er)-.15 E .29(does not pro)108 237.6 R .29 -(vide the SEARCH command, or does not return something useful,)-.15 F F2 -(Of\215ineIMAP)2.79 E F0 .29(cannot deter)2.79 F(-)-.2 E .174 -(mine the ne)108 249.6 R 2.674(wU)-.25 G .174(ID of the message.)-2.674 -F .173(So, in these rare instances, Of)5.173 F .173 -(\215ineIMAP will upload the message to the)-.25 F .64(IMAP serv)108 -261.6 R .64(er and delete it from your local folder)-.15 F 5.64(.T)-.55 -G .64(hen, on your ne)-5.64 F .64(xt sync, the message will be re-do) --.15 F(wn-)-.25 E 1.473(loaded with the proper UID.)108 273.6 R F2 -(Of\215ineIMAP)6.473 E F0(mak)3.973 E 1.473(es sure that the message w) --.1 F 1.472(as properly uploaded before)-.1 F -(deleting it, so there should be no risk of data loss.)108 285.6 Q F2 -(MAILING LIST)87 302.4 Q F0(There is an Of)108 314.4 Q -(\215ineIMAP mailing list a)-.25 E -.25(va)-.2 G(ilable.).25 E 2.447 -.8 -(To s)108 331.2 T .847(ubscribe, send the te).8 F .847 -(xt "Subscribe" in the subject of a mail to of)-.15 F -(\215ineimap-request@complete.or)-.25 E 3.348(g. T)-.18 F(o)-.8 E -(post, send the message to of)108 343.2 Q(\215ineimap@complete.or)-.25 E -(g.)-.18 E F1 -.11(BU)72 360 S(GS).11 E F0 4.42(Reports of b)108 372 R -4.419(ugs should be sent via e-mail to the)-.2 F F2(Of\215ineIMAP)6.919 -E F0 -.2(bu)6.919 G 4.419(g-tracking system \(BTS\) at).2 F(of)108 384 Q -(\215ineimap@b)-.25 E(ugs.complete.or)-.2 E 3.396(go)-.18 G 3.396(rs) --3.396 G .897(ubmitted on-line using the W)-3.396 F .897(eb interf)-.8 F -.897(ace at http://b)-.1 F(ugs.complete.or)-.2 E(g/.)-.18 E(The W)108 -396 Q(eb site also lists all current b)-.8 E -(ugs, where you can check their status or contrib)-.2 E -(ute to \214xing them.)-.2 E F1(COPYRIGHT)72 412.8 Q F0(Of)108 424.8 Q -(\215ineIMAP is Cop)-.25 E(yright \(C\) 2002 John Goerzen.)-.1 E .287 -(This program is free softw)108 441.6 R .287(are; you can redistrib)-.1 -F .286(ute it and/or modify it under the terms of the GNU General)-.2 F -.766(Public License as published by the Free Softw)108 453.6 R .766 -(are F)-.1 F .766(oundation; either v)-.15 F .766 -(ersion 2 of the License, or \(at your)-.15 F(option\) an)108 465.6 Q -2.5(yl)-.15 G(ater v)-2.5 E(ersion.)-.15 E .58(This program is distrib) -108 482.4 R .579(uted in the hope that it will be useful, b)-.2 F .579 -(ut WITHOUT ANY W)-.2 F(ARRANTY)-1.2 E 3.079(;w)-.92 G(ithout)-3.079 E --2.15 -.25(ev e)108 494.4 T 2.729(nt).25 G .229(he implied w)-2.729 F -.229(arranty of MERCHANT)-.1 F .229(ABILITY or FITNESS FOR A P)-.93 F -(AR)-.92 E .23(TICULAR PURPOSE.)-.6 F(See)5.23 E -(the GNU General Public License for more details.)108 506.4 Q -1.1(Yo) -108 523.2 S 2.77(us)1.1 G .27(hould ha)-2.77 F .57 -.15(ve r)-.2 H(ecei) -.15 E -.15(ve)-.25 G 2.77(dac).15 G(op)-2.77 E 2.77(yo)-.1 G 2.77(ft) --2.77 G .27 -(he GNU General Public License along with this program; if not, write) --2.77 F(to:)108 535.2 Q(Free Softw)108 552 Q(are F)-.1 E -(oundation, Inc.)-.15 E(59 T)108 564 Q(emple Place)-.7 E(Suite 330)108 -576 Q(Boston, MA)108 588 Q(02111-1307)5 E(USA)108 600 Q F1 -.548(AU)72 -616.8 S(THOR).548 E F2(Of\215ineIMAP)108 628.8 Q(,)-.92 E F0 .488 -(its libraries, documentation, and all included \214les, e)2.987 F .488 -(xcept where noted, w)-.15 F .488(as written by John)-.1 F -(Goerzen and cop)-.18 E -(yright is held as stated in the COPYRIGHT section.)-.1 E(Of)108 657.6 Q -(\215ineIMAP may be do)-.25 E(wnloaded, and information found, from its\ - homepage via either Gopher or HTTP:)-.25 E(gopher://quux.or)108 674.4 Q -(g/1/de)-.18 E -.15(ve)-.25 G(l/of).15 E(\215ineimap)-.25 E -(http://quux.or)108 686.4 Q(g/de)-.18 E -.15(ve)-.25 G(l/of).15 E -(\215ineimap)-.25 E(Of)108 703.2 Q 2.529(\215ineIMAP may also be do)-.25 -F 2.528(wnloaded using Sub)-.25 F -.15(ve)-.15 G 5.028 -(rsion. Additionally).15 F 5.028(,t)-.65 G 2.528(he distrib)-5.028 F -2.528(uted tar)-.2 F 2.528(.gz may be)-.55 F .717 -(updated with a simple "svn update" command; it is ready to go.)108 -715.2 R -.15(Fo)5.718 G 3.218(ri).15 G .718(nformation on getting Of) --3.218 F(\215ineIMAP)-.25 E(with Sub)108 727.2 Q -.15(ve)-.15 G -(rsion, please visit:).15 E(John Goerzen)72 768 Q(July 12, 2002)151.655 -E(6)201.915 E EP +(\215ineIMAP manual)-.25 E(OFFLINEIMAP\(1\))113.72 E(an)108 84 Q 2.77 +(ym)-.15 G .27(ail, b)-2.77 F .27 +(ut at the same time, it will not actually synchronize it either)-.2 F +5.269(.\()-.55 G(Of)-5.269 E .269(\215ineIMAP will detect this con-)-.25 +F(dition and abort prior to synchronization\))108 96 Q/F1 10.95 +/Times-Bold@0 SF -.438(OT)72 124.8 S(HER FREQ).438 E(UENTL)-.11 E 2.738 +(YA)-1.007 G(SKED Q)-2.738 E(UESTIONS)-.11 E F0 .683 +(There are some other F)108 136.8 R -.55(AQ)-.74 G 3.184(st).55 G .684 +(hat might not \214t into another section of this document, and the) +-3.184 F 3.184(ya)-.15 G .684(re enumer)-3.184 F(-)-.2 E(ated here.)108 +148.8 Q/F2 10/Times-Bold@0 SF(What platf)108 165.6 Q +(orms does Of\215ineIMAP run on?)-.25 E F0(It should run on most platfo\ +rms supported by Python, which are quite a fe)144 177.6 Q -.65(w.)-.25 G +F2 .689(I'm using Mutt. Other IMAP sync pr)108 194.4 R .689(ograms r) +-.18 F(equir)-.18 E 3.189(em)-.18 G 3.189(et)-3.189 G 3.189(ou)-3.189 G +.689(se set maildir_trash=y)-3.189 F .688(es . Do I need to)-.1 F +(do that with Of\215ineIMAP?)108 206.4 Q F0(No.)144 218.4 Q F2 +(Of\215ineIMAP)7.27 E F0 2.27 +(is smart enough to \214gure out message deletion without this e)4.77 F +2.27(xtra crutch.)-.15 F -1.1(Yo)144 230.4 S(u')1.1 E +(ll get the best results if you don')-.1 E 2.5(tu)-.18 G +(se this setting, in f)-2.5 E(act.)-.1 E F2(Ho)108 247.2 Q 2.5(wd)-.1 G +2.5(oIs)-2.5 G(pecify the names of my f)-2.5 E(olders?)-.25 E F0 -1.1 +(Yo)144 259.2 S 3.55(ud)1.1 G 3.55(on)-3.55 G 1.05(ot need to.)-3.55 F +F2(Of\215ineIMAP)6.05 E F0 1.05 +(is smart enough to automatically \214gure out what folders are)3.55 F +.679(present on the IMAP serv)144 271.2 R .679(er and synchronize them.) +-.15 F -1.1(Yo)5.679 G 3.178(uc)1.1 G .678(an use the)-3.178 F F2 -.25 +(fo)3.178 G(lder\214lter).25 E F0(and)3.178 E F2 -.25(fo)3.178 G +(ldertrans).25 E F0(con\214guration \214le options to request certain f\ +olders and rename them as the)144 283.2 Q 2.5(yc)-.15 G +(ome in if you lik)-2.5 E(e.)-.1 E F2(Ho)108 300 Q 2.5(wc)-.1 G(an I pr) +-2.5 E -2.3 -.15(ev e)-.18 H(nt certain f).15 E(olders fr)-.25 E +(om being synced?)-.18 E F0(Use the)144 312 Q F2 -.25(fo)2.5 G +(lder\214lter).25 E F0(option in the con\214guration \214le.)2.5 E F2 +(Ho)108 328.8 Q 2.5(wc)-.1 G(an I add or delete a f)-2.5 E(older?)-.25 E +(Of\215ineIMAP)144 340.8 Q F0 .503(does not currently pro)3.003 F .504 +(vide this feature, b)-.15 F .504(ut if you create a ne)-.2 F 3.004(wf) +-.25 G .504(older on the IMAP)-3.004 F(serv)144 352.8 Q(er)-.15 E 2.5 +(,i)-.4 G 2.5(tw)-2.5 G(ill be created locally automatically)-2.5 E(.) +-.65 E F2(Ar)108 369.6 Q 2.5(et)-.18 G(her)-2.5 E 2.5(ea)-.18 G +(ny other war)-2.5 E(nings that I should be awar)-.15 E 2.5(eo)-.18 G +(f?)-2.5 E F0 -1(Ye)144 381.6 S(s; see the NO)1 E(TES section belo)-.4 E +-.65(w.)-.25 G F2(What is the mailbox name r)108 398.4 Q +(ecorder \(mbnames\) f)-.18 E(or?)-.25 E F0 1.019(The Mutt mail reader \ +is not capable of automatically determining the names of your mailbox) +144 410.4 R(es.)-.15 E(Of)144 422.4 Q .265 +(\215ineIMAP can help it \(or man)-.25 F 2.765(yo)-.15 G .265 +(ther\) programs out be writing these names out in a format you)-2.765 F +(specify)144 434.4 Q 5(.S)-.65 G(ee the e)-5 E(xample of)-.15 E +(\215ineimap.conf \214le for details.)-.25 E F2(Can I synchr)108 451.2 Q +(onize multiple accounts with Of\215ineIMAP?)-.18 E F0 3.345(Sure. Just) +144 463.2 R .845(name them all in the accounts line in the general sect\ +ion of the con\214g \214le, and add a)3.345 F(per)144 475.2 Q +(-account section for each one.)-.2 E F2 +(Does Of\215ineIMAP support POP?)108 492 Q F0 4.076(No. POP)144 504 R +1.576(is not rob)4.076 F 1.576(ust enough to do a completely reliable m\ +ulti-machine synchronization lik)-.2 F(e)-.1 E(Of)144 516 Q +(\215ineIMAP can do.)-.25 E(Of)5 E(\215ineIMAP will not support it.)-.25 +E F2(Do y)108 532.8 Q(ou support mailbox f)-.25 E +(ormats other than Maildir?)-.25 E F0 .41(Not at present.)144 544.8 R +.41(There is no technical reason not to; just no demand yet.)5.41 F .409 +(Maildir is a superior for)5.409 F(-)-.2 E(mat an)144 556.8 Q(yw)-.15 E +(ay)-.1 E(.)-.65 E F2([technical] Wh)108 573.6 Q 2.5(ya)-.15 G .36 -.18 +(re y)-2.5 H(our Maildir message \214lenames so huge?)-.07 E +(Of\215ineIMAP)144 585.6 Q F0 .958(has tw)3.458 F 3.458(or)-.1 G(ele) +-3.458 E -.25(va)-.25 G .958(nt principles: 1\) ne).25 F -.15(ve)-.25 G +3.459(rm).15 G .959(odifying your messages in an)-3.459 F 3.459(yw)-.15 +G .959(ay and 2\))-3.559 F .493 +(ensuring 100% reliable synchronizations.)144 597.6 R .493 +(In order to do a reliable sync,)5.493 F F2(Of\215ineIMAP)2.993 E F0 +.493(must ha)2.993 F -.15(ve)-.2 G 3.094(aw)144 609.6 S .594 +(ay to uniquely identify each e-mail.)-3.194 F .595 +(Three pieces of information are required to do this: your)5.594 F .538 +(account name, the folder name, and the message UID.)144 621.6 R .537 +(The account name can be calculated from)5.537 F 1.081 +(the path in which your messages are.)144 633.6 R 1.082 +(The folder name can usually be as well, B)6.082 F 1.082(UT some mail) +-.1 F(clients mo)144 645.6 Q .3 -.15(ve m)-.15 H +(essages between folders by simply mo).15 E(ving the \214le, lea)-.15 E +(ving the name intact.)-.2 E(So,)144 662.4 Q F2(Of\215ineIMAP)3.2 E F0 +.7(must store both a UID folder ID.)3.2 F .7 +(The folder ID is necessary so)5.7 F F2(Of\215ineIMAP)3.2 E F0 .455 +(can detect a message mo)144 674.4 R -.15(ve)-.15 G 2.955(dt).15 G 2.955 +(oad)-2.955 G(if)-2.955 E .455(ferent folder)-.25 F(.)-.55 E F2 +(Of\215ineIMAP)5.455 E F0 .456(stores the UID \(U= number\) and)2.955 F +(an md5sum of the foldername \(FMD5= number\) to f)144 686.4 Q +(acilitate this.)-.1 E F2(What is the speed of Of\215ineIMAP')108 703.2 +Q 2.5(ss)-.37 G(ync?)-2.5 E(Of\215ineIMAP)144 715.2 Q F0 -.15(ve)2.891 G +.391(rsions 2.0 and abo).15 F .691 -.15(ve c)-.15 H .391 +(ontain a multithreaded system.).15 F 2.891(Ag)5.391 G .39(ood w)-2.891 +F .39(ay to e)-.1 F(xperiment)-.15 E(is by setting maxsyncaccounts to 3\ + and maxconnections to 3 in each account clause.)144 727.2 Q +(John Goerzen)72 768 Q(July 12, 2002)151.655 E(6)201.915 E EP %%Page: 7 7 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF 111.22(OFFLINEIMAP\(1\) Of)72 48 R +(\215ineIMAP manual)-.25 E(OFFLINEIMAP\(1\))113.72 E .381(This lets Of) +144 84 R .381(\215ineIMAP open up multiple connections simultaneously) +-.25 F 5.382(.T)-.65 G .382(hat will let it process mul-)-5.382 F +(tiple folders and messages at once.)144 96 Q +(In most cases, this will increase performance of the sync.)5 E(Don')144 +112.8 Q 3.104(ts)-.18 G .604(et the number too high.)-3.104 F .603 +(If you do that, things might actually slo)5.604 F 3.103(wd)-.25 G -.25 +(ow)-3.103 G 3.103(na).25 G 3.103(sy)-3.103 G .603(our link gets)-3.103 +F 2.632(saturated. Also,)144 124.8 R .132(too man)2.632 F 2.632(yc)-.15 +G .132(onnections can cause mail serv)-2.632 F .132(ers to ha)-.15 F +.433 -.15(ve ex)-.2 H(cessi).15 E .433 -.15(ve l)-.25 H 2.633 +(oad. Administra-).15 F .507(tors might tak)144 136.8 R 3.007(eu)-.1 G +.507(nkindly to this, and the serv)-3.007 F .506(er might bog do)-.15 F +3.006(wn. There)-.25 F .506(are man)3.006 F 3.006(yv)-.15 G .506 +(ariables in the)-3.256 F(optimal setting; e)144 148.8 Q +(xperimentation may help.)-.15 E +(An informal benchmark yields these results for my setup:)144 165.6 Q +(10 minutes with MacOS X Mail.app "manual cache")144 182.4 Q 2.5(5m)144 +194.4 S(inutes with GNUS agent sync)-2.5 E(20 seconds with Of)144 206.4 +Q(\215ineIMAP 1.x)-.25 E 2.5(9s)144 218.4 S(econds with Of)-2.5 E +(\215ineIMAP 2.x)-.25 E 2.5(3s)144 230.4 S(econds with Of)-2.5 E +(\215ineIMAP 3.x "cold start")-.25 E 2.5(2s)144 242.4 S(econds with Of) +-2.5 E(\215ineIMAP 3.x "held connection")-.25 E/F1 10.95/Times-Bold@0 SF +(CONFORMING T)72 259.2 Q(O)-.197 E F0 32.5<8349>108 271.2 S +(nternet Message Access Protocol v)-32.5 E(ersion 4re)-.15 E +(v1 \(IMAP 4re)-.25 E(v1\) as speci\214ed in RFC2060)-.25 E 32.5<834d> +108 288 S 8.92(aildir as speci\214ed in http://www)-32.5 F(.qmail.or) +-.65 E(g/qmail-manual-html/man5/maildir)-.18 E 8.92(.html and)-.55 F +(http://cr)144 300 Q(.yp.to/proto/maildir)-.55 E(.html.)-.55 E 32.5 +<8353>108 316.8 S +(tandard Python 2.2.1 as implemented on POSIX-compliant systems.)-32.5 E +F1(NO)72 333.6 Q(TES)-.438 E/F2 10/Times-Bold@0 SF +(DELETING LOCAL FOLDERS)87 345.6 Q(Of\215ineIMAP)108 357.6 Q F0 .533 +(does a tw)3.033 F(o-w)-.1 E .533(ay synchronization.)-.1 F .532 +(That is, if you mak)5.532 F 3.032(eac)-.1 G .532 +(hange to the mail on the serv)-3.032 F(er)-.15 E 3.032(,i)-.4 G(t) +-3.032 E .896(will be propog)108 369.6 R .896(ated to your local cop) +-.05 F 2.197 -.65(y, a)-.1 H .897(nd vise-v).65 F 3.397(ersa. Some)-.15 +F .897(people might think that it w)3.397 F .897(ould be wise to)-.1 F +1.59(just delete all their local mail folders periodically)108 381.6 R +6.59(.I)-.65 G 4.09(fy)-6.59 G 1.59(ou do this with Of)-4.09 F +(\215ineIMAP)-.25 E 4.09(,r)-1.11 G 1.59(emember to also)-4.09 F(remo) +108 393.6 Q 1.67 -.15(ve y)-.15 H 1.37(our local status cache \(~/.of) +.15 F 1.37(\215ineimap by def)-.25 F 3.87(ault\). Otherwise,)-.1 F(Of) +3.87 E 1.37(\215ineIMAP will tak)-.25 F 3.87(et)-.1 G 1.37(his as an) +-3.87 F .416(intentional deletion of man)108 405.6 R 2.916(ym)-.15 G +.416(essages and will interpret your action as requesting them to be de\ +leted from)-2.916 F(the serv)108 417.6 Q(er as well.)-.15 E +(\(If you don')5 E 2.5(tu)-.18 G(nderstand this, don')-2.5 E 2.5(tw)-.18 +G(orry; you probably w)-2.6 E(on')-.1 E 2.5(te)-.18 G +(ncounter this situation\))-2.5 E F2(COPYING MESSA)87 434.4 Q +(GES BETWEEN FOLDERS)-.55 E F0(Normally)108 446.4 Q 5.858(,w)-.65 G +3.358(hen you cop)-5.858 F -8.357 5.858(ya m)-.1 H 3.359 +(essage between folders or add a ne)-5.858 F 5.859(wm)-.25 G 3.359 +(essage to a folder locally)-5.859 F(,)-.65 E F2(Of\215ineIMAP)108 458.4 +Q F0 .853(will just do the right thing.)3.353 F(Ho)5.853 E(we)-.25 E +-.15(ve)-.25 G 1.653 -.4(r, s).15 H .853(ometimes this can be trick).4 F +3.353(y-)-.15 G 3.353(-i)-3.353 G 3.353(fy)-3.353 G .853(our IMAP serv) +-3.353 F(er)-.15 E .29(does not pro)108 470.4 R .29 +(vide the SEARCH command, or does not return something useful,)-.15 F F2 +(Of\215ineIMAP)2.79 E F0 .29(cannot deter)2.79 F(-)-.2 E .174 +(mine the ne)108 482.4 R 2.674(wU)-.25 G .174(ID of the message.)-2.674 +F .173(So, in these rare instances, Of)5.173 F .173 +(\215ineIMAP will upload the message to the)-.25 F .64(IMAP serv)108 +494.4 R .64(er and delete it from your local folder)-.15 F 5.64(.T)-.55 +G .64(hen, on your ne)-5.64 F .64(xt sync, the message will be re-do) +-.15 F(wn-)-.25 E 1.473(loaded with the proper UID.)108 506.4 R F2 +(Of\215ineIMAP)6.473 E F0(mak)3.973 E 1.473(es sure that the message w) +-.1 F 1.472(as properly uploaded before)-.1 F +(deleting it, so there should be no risk of data loss.)108 518.4 Q F2 +(MAILING LIST)87 535.2 Q F0(There is an Of)108 547.2 Q +(\215ineIMAP mailing list a)-.25 E -.25(va)-.2 G(ilable.).25 E 2.447 -.8 +(To s)108 564 T .847(ubscribe, send the te).8 F .847 +(xt "Subscribe" in the subject of a mail to of)-.15 F +(\215ineimap-request@complete.or)-.25 E 3.348(g. T)-.18 F(o)-.8 E +(post, send the message to of)108 576 Q(\215ineimap@complete.or)-.25 E +(g.)-.18 E F1 -.11(BU)72 592.8 S(GS).11 E F0 4.42(Reports of b)108 604.8 +R 4.419(ugs should be sent via e-mail to the)-.2 F F2(Of\215ineIMAP) +6.919 E F0 -.2(bu)6.919 G 4.419(g-tracking system \(BTS\) at).2 F(of)108 +616.8 Q(\215ineimap@b)-.25 E(ugs.complete.or)-.2 E 3.396(go)-.18 G 3.396 +(rs)-3.396 G .897(ubmitted on-line using the W)-3.396 F .897(eb interf) +-.8 F .897(ace at http://b)-.1 F(ugs.complete.or)-.2 E(g/.)-.18 E(The W) +108 628.8 Q(eb site also lists all current b)-.8 E +(ugs, where you can check their status or contrib)-.2 E +(ute to \214xing them.)-.2 E F1(COPYRIGHT)72 645.6 Q F0(Of)108 657.6 Q +(\215ineIMAP is Cop)-.25 E(yright \(C\) 2002 John Goerzen.)-.1 E .287 +(This program is free softw)108 674.4 R .287(are; you can redistrib)-.1 +F .286(ute it and/or modify it under the terms of the GNU General)-.2 F +.766(Public License as published by the Free Softw)108 686.4 R .766 +(are F)-.1 F .766(oundation; either v)-.15 F .766 +(ersion 2 of the License, or \(at your)-.15 F(option\) an)108 698.4 Q +2.5(yl)-.15 G(ater v)-2.5 E(ersion.)-.15 E .58(This program is distrib) +108 715.2 R .579(uted in the hope that it will be useful, b)-.2 F .579 +(ut WITHOUT ANY W)-.2 F(ARRANTY)-1.2 E 3.079(;w)-.92 G(ithout)-3.079 E +-2.15 -.25(ev e)108 727.2 T 2.729(nt).25 G .229(he implied w)-2.729 F +.229(arranty of MERCHANT)-.1 F .229(ABILITY or FITNESS FOR A P)-.93 F +(AR)-.92 E .23(TICULAR PURPOSE.)-.6 F(See)5.23 E(John Goerzen)72 768 Q +(July 12, 2002)151.655 E(7)201.915 E EP +%%Page: 8 8 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF 111.22(OFFLINEIMAP\(1\) Of)72 48 R (\215ineIMAP manual)-.25 E(OFFLINEIMAP\(1\))113.72 E -(http://svn.complete.or)108 84 Q(g/)-.18 E/F1 10.95/Times-Bold@0 SF -(SEE ALSO)72 100.8 Q/F2 10/Times-Bold@0 SF(mutt)108 112.8 Q F0(\(1\),)A -F2(python)2.5 E F0(\(1\).)A(John Goerzen)72 768 Q(July 12, 2002)151.655 -E(7)201.915 E EP +(the GNU General Public License for more details.)108 84 Q -1.1(Yo)108 +100.8 S 2.77(us)1.1 G .27(hould ha)-2.77 F .57 -.15(ve r)-.2 H(ecei).15 +E -.15(ve)-.25 G 2.77(dac).15 G(op)-2.77 E 2.77(yo)-.1 G 2.77(ft)-2.77 G +.27 +(he GNU General Public License along with this program; if not, write) +-2.77 F(to:)108 112.8 Q(Free Softw)108 129.6 Q(are F)-.1 E +(oundation, Inc.)-.15 E(59 T)108 141.6 Q(emple Place)-.7 E(Suite 330)108 +153.6 Q(Boston, MA)108 165.6 Q(02111-1307)5 E(USA)108 177.6 Q/F1 10.95 +/Times-Bold@0 SF -.548(AU)72 194.4 S(THOR).548 E/F2 10/Times-Bold@0 SF +(Of\215ineIMAP)108 206.4 Q(,)-.92 E F0 .488 +(its libraries, documentation, and all included \214les, e)2.987 F .488 +(xcept where noted, w)-.15 F .488(as written by John)-.1 F +(Goerzen and cop)-.18 E +(yright is held as stated in the COPYRIGHT section.)-.1 E(Of)108 235.2 Q +(\215ineIMAP may be do)-.25 E(wnloaded, and information found, from its\ + homepage via either Gopher or HTTP:)-.25 E(gopher://quux.or)108 252 Q +(g/1/de)-.18 E -.15(ve)-.25 G(l/of).15 E(\215ineimap)-.25 E +(http://quux.or)108 264 Q(g/de)-.18 E -.15(ve)-.25 G(l/of).15 E +(\215ineimap)-.25 E(Of)108 280.8 Q 2.529(\215ineIMAP may also be do)-.25 +F 2.528(wnloaded using Sub)-.25 F -.15(ve)-.15 G 5.028 +(rsion. Additionally).15 F 5.028(,t)-.65 G 2.528(he distrib)-5.028 F +2.528(uted tar)-.2 F 2.528(.gz may be)-.55 F .717 +(updated with a simple "svn update" command; it is ready to go.)108 +292.8 R -.15(Fo)5.718 G 3.218(ri).15 G .718(nformation on getting Of) +-3.218 F(\215ineIMAP)-.25 E(with Sub)108 304.8 Q -.15(ve)-.15 G +(rsion, please visit:).15 E(http://svn.complete.or)108 321.6 Q(g/)-.18 E +F1(SEE ALSO)72 338.4 Q F2(mutt)108 350.4 Q F0(\(1\),)A F2(python)2.5 E +F0(\(1\).)A(John Goerzen)72 768 Q(July 12, 2002)151.655 E(8)201.915 E EP %%Trailer end %%EOF diff --git a/offlineimap/head/manual.txt b/offlineimap/head/manual.txt index 9d52fe6..e2cf7e0 100644 --- a/offlineimap/head/manual.txt +++ b/offlineimap/head/manual.txt @@ -200,13 +200,138 @@ OPTIONS configuration file. The UI specified with -u will be forced to be used, even if its isuable() method states that it cannot be. Use this option with - care. + care. The pre-defined options are listed in the + USER INTERFACES section. - The pre-defined options are Tk.TkUI (a graphical - interface), TTY.TTYUI (a text-mode interface), Non- - interactive.Basic (a non-interactive mode suitable - for cronning), and Noninteractive.Quiet (a mode - that generates no output except for errors). +USER INTERFACES + OfflineIMAP has a pluggable user interface system that + lets you choose how the program communicates information + to you. There are two graphical interfaces, one terminal + interface, and two noninteractive interfaces suitable for + scripting or logging purposes. The ui option in the con- + figuration file specifies the user interface preferences. + The -u command-line option can override the configuration + file. The available values for the configuration file or + command-line are describef in this section. + + Tk.Blinkenlights + This is an interface designed to be sleek, fun to watch, + and informative of the overall picture of what OfflineIMAP + is doing. I consider it to be the best general-purpose + interface in OfflineIMAP. Tk.Blinkenlights contains, by + default, a small window with a row of LEDs and a row of + command buttons. The total size of the window is very + small, so it uses little desktop space, yet it is quite + functional. There is also an optional, toggable, log that + shows more detail about what is happening and is color- + coded to match the color of the lights. + + Tk.Blinkenlights is the only user interface that has con- + figurable parameters; see the example offlineimap.conf for + more details. + + Each light in the Tk.Blinkenlights interface represents a + thread of execution -- that is, a particular task that + OfflineIMAP is performing right now. The color indicates + what task the particular thread is performing, and are as + follows: + + + Black indicates that this light's thread has terminated; + it will light up again later when new threads start + up. So, black indicates no activity. + + Red (Meaning 1) + is the color of the main program's thread, which + basically does nothing but monitor the others. It + might remind you of HAL 9000 in 2001. + + Purple is the color of an account synchronization thread + that is monitoring the progress of the folders in + that account (not generating any I/O). + + Cyan indicates that the thread is syncing a folder. + + Green means that a folder's message list is being loaded. + + Blue is the color of a message synchronization con- + troller thread. + + Orange indicates that an actual message is being copied. + + Red (Meaning 2) + indicates that a message is being deleted. + + Yellow (bright orange) indicates that message flags are + being added. + + Pink (bright red) indicates that message flags are being + removed. + + Red / Black Flashing + corresponds to the countdown timer that runs + between synchronizations. + + The name of this interface derives from a bit of computer + science history. Eric Raymond's Jargon File defines + blinkenlights, in part, as: + + Front-panel diagnostic lights on a computer, esp. a + dinosaur. Now that dinosaurs are rare, this term + usually refers to status lights on a modem, network + hub, or the like. + + This term derives from the last word of the famous + blackletter-Gothic sign in mangled pseudo-German + that once graced about half the computer rooms in + the English-speaking world. One version ran in its + entirety as follows: + + ACHTUNG! ALLES LOOKENSPEEPERS! + + Das computermachine ist nicht fuer gefingerpoken + und mittengrabben. Ist easy schnappen der sprin- + genwerk, blowenfusen und poppencorken mit + spitzensparken. Ist nicht fuer gewerken bei das + dumpkopfen. Das rubbernecken sichtseeren keepen + das cotten-pickenen hans in das pockets muss; + relaxen und watchen das blinkenlichten. + + Tk.VerboseUI + This interface (formerly known as Tk.TkUI) is a graphical + interface that presents a variable-sized window. In the + window, each currently-executing thread has a section + where its name and current status are displayed. This + interface is best suited to people running on slower con- + nections, as you get a lot of detail, but for fast connec- + tions, the detail may go by too quickly to be useful. + People with fast connections may wish to use Tk.Blinken- + lights instead. + + TTY.TTYUI + This interface is the default for people running in termi- + nals. It prints out basic status messages, has an inter- + ruptible timer like the graphical interfaces do, and is + generally friendly to use on a console or xterm. + + Noninteractive.Basic + This interface is designed for situations where + OfflineIMAP will be run non-attended and the status of its + execution will be logged. You might use it, for instance, + to have the system run automatically and e-mail you the + results of the synchronization. This user interface is + not capable of reading a password from the keyboard; + account passwords must be specified using one of the con- + figuration file options. + + Noninteractive.Quiet + This interface is designed for non-attended running in + situations where normal status messages are not desired. + It will output nothing except errors and serious warnings. + Like Noninteractive.Basic, this user interface is not + capable of reading a password from the keyboard; account + passwords must be specified using one of the configuration + file options. EXAMPLES Here is an example configuration for a particularly com- @@ -393,8 +518,8 @@ OTHER FREQUENTLY ASKED QUESTIONS The folder ID is necessary so OfflineIMAP can detect a message moved to a different folder. OfflineIMAP stores the UID (U= number) and an - md5sum of the foldername (FMD5= number) to - facilitate this. + md5sum of the foldername (FMD5= number) to facili- + tate this. What is the speed of OfflineIMAP's sync? OfflineIMAP versions 2.0 and above contain a multi- @@ -529,3 +654,4 @@ SEE ALSO +John Goerzen July 12, 2002 OFFLINEIMAP(1) diff --git a/offlineimap/head/offlineimap.1 b/offlineimap/head/offlineimap.1 index 094a369..cbefd80 100644 --- a/offlineimap/head/offlineimap.1 +++ b/offlineimap/head/offlineimap.1 @@ -273,16 +273,134 @@ with will be forced to be used, even if its .B isuable() method states that it cannot be. Use this option with care. -.IP -The pre-defined options are -.B Tk.TkUI -(a graphical interface), -.B TTY.TTYUI -(a text-mode interface), -.B Noninteractive.Basic -(a non-interactive mode suitable for cronning), and -.B Noninteractive.Quiet -(a mode that generates no output except for errors). +The pre-defined options are listed in the USER INTERFACES section. +.SH USER INTERFACES +.B OfflineIMAP +has a pluggable user interface system that lets you choose how the +program communicates information to you. There are two graphical +interfaces, one terminal interface, and two noninteractive interfaces +suitable for scripting or logging purposes. The +.I ui +option in the configuration file specifies the user interface +preferences. The +.I \-u +command-line option can override the configuration file. The +available values for the configuration file or command-line are +describef in this section. +.SS Tk.Blinkenlights +This is an interface designed to be sleek, fun to watch, and +informative of the overall picture of what +.B OfflineIMAP +is doing. I consider it to be the best general-purpose interface in +.B OfflineIMAP. +Tk.Blinkenlights contains, by default, a small window with a row of +LEDs and a row of command buttons. The total size of the window is +very small, so it uses little desktop space, yet it is quite +functional. There is also an optional, toggable, log that shows more +detail about what is happening and is color-coded to match the color +of the lights. +.PP +Tk.Blinkenlights is the only user interface that has configurable +parameters; see the example +.I offlineimap.conf +for more details. +.PP +Each light in the Tk.Blinkenlights interface represents a thread of +execution -- that is, a particular task that +.B OfflineIMAP +is performing right now. The color indicates what task the particular +thread is performing, and are as follows: +.TP +.B Black +indicates that this light's thread has terminated; it will light up +again later when new threads start up. So, black indicates no +activity. +.TP +.B Red (Meaning 1) +is the color of the main program's thread, which basically does +nothing but monitor the others. It might remind you of HAL 9000 in +.I 2001. +.TP +.B Purple +is the color of an account synchronization thread that is monitoring +the progress of the folders in that account (not generating any I/O). +.TP +.B Cyan +indicates that the thread is syncing a folder. +.TP +.B Green +means that a folder's message list is being loaded. +.TP +.B Blue +is the color of a message synchronization controller thread. +.TP +.B Orange +indicates that an actual message is being copied. +.TP +.B Red (Meaning 2) +indicates that a message is being deleted. +.TP +.B Yellow +(bright orange) indicates that message flags are being added. +.TP +.B Pink +(bright red) indicates that message flags are being removed. +.TP +.B Red / Black Flashing +corresponds to the countdown timer that runs between synchronizations. +.PP +The name of this interface derives from a bit of computer science +history. Eric Raymond's +.I Jargon File +defines blinkenlights, in part, as: +.PP +.RS +Front-panel diagnostic +lights on a computer, esp. a dinosaur. Now that dinosaurs are rare, +this term usually refers to status lights on a modem, network hub, or +the like. +.P +This term derives from the last word of the famous blackletter-Gothic +sign in mangled pseudo-German that once graced about half the computer +rooms in the English-speaking world. One version ran in its entirety as +follows: +.P +.B ACHTUNG! ALLES LOOKENSPEEPERS! +.P +Das computermachine ist nicht fuer gefingerpoken und mittengrabben. +Ist easy schnappen der springenwerk, blowenfusen und poppencorken +mit spitzensparken. Ist nicht fuer gewerken bei das dumpkopfen. +Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das +pockets muss; relaxen und watchen das blinkenlichten. +.SS Tk.VerboseUI +This interface (formerly known as Tk.TkUI) is a graphical interface +that presents a variable-sized window. In the window, each +currently-executing thread has a section where its name and current +status are displayed. This interface is best suited to people running +on slower connections, as you get a lot of detail, but for fast +connections, the detail may go by too quickly to be useful. People +with fast connections may wish to use Tk.Blinkenlights instead. +.SS TTY.TTYUI +This interface is the default for people running in terminals. It +prints out basic status messages, has an interruptible timer like the +graphical interfaces do, and is generally friendly to use on a console +or xterm. +.SS Noninteractive.Basic +This interface is designed for situations where +.B OfflineIMAP +will be run non-attended and the status of its execution will be +logged. You might use it, for instance, to have the system run +automatically and +e-mail you the results of the synchronization. This user interface +is not capable of reading a password from the keyboard; account +passwords must be specified using one of the configuration file options. +.SS Noninteractive.Quiet +This interface is designed for non-attended running in situations +where normal status messages are not desired. It will output nothing +except errors and serious warnings. Like Noninteractive.Basic, +this user interface +is not capable of reading a password from the keyboard; account +passwords must be specified using one of the configuration file options. .\".TP .\".B \-v, \-\-version .\"Show version of program. diff --git a/offlineimap/head/offlineimap.conf b/offlineimap/head/offlineimap.conf index d26cd12..656dca9 100644 --- a/offlineimap/head/offlineimap.conf +++ b/offlineimap/head/offlineimap.conf @@ -63,7 +63,8 @@ maxsyncaccounts = 1 # # You can override this with a command-line option -u. -ui = Tk.Blinkenlights, Tk.VerboseUI, TTY.TTYUI, Noninteractive.Basic +ui = Tk.Blinkenlights, Tk.VerboseUI, TTY.TTYUI, Noninteractive.Basic, + Noninteractive.Quiet ################################################## diff --git a/offlineimap/head/offlineimap/ui/TTY.py b/offlineimap/head/offlineimap/ui/TTY.py index a07961c..5d2a149 100644 --- a/offlineimap/head/offlineimap/ui/TTY.py +++ b/offlineimap/head/offlineimap/ui/TTY.py @@ -25,6 +25,9 @@ class TTYUI(UIBase): def __init__(s, verbose = 0): s.verbose = verbose s.iswaiting = 0 + + def isusable(s): + return sys.stdout.isatty() and sys.stdin.isatty() def _msg(s, msg): if (currentThread().getName() == 'MainThread'): diff --git a/offlineimap/head/offlineimap/ui/Tk.py b/offlineimap/head/offlineimap/ui/Tk.py index b1b24d2..6b30dfc 100644 --- a/offlineimap/head/offlineimap/ui/Tk.py +++ b/offlineimap/head/offlineimap/ui/Tk.py @@ -359,8 +359,9 @@ class Blinkenlights(VerboseUI): c.pack(side = BOTTOM, expand = 1) widthmetric = tkFont.Font(family = 'Helvetica', size = 8).measure("0") self.loglines = 5 - if s.config.has_option("ui.Tk.Blinkenlights", "loglines"): - self.loglines = s.config.getint("ui.Tk.Blinkenlights", "loglines") + if self.config.has_option("ui.Tk.Blinkenlights", "loglines"): + self.loglines = self.config.getint("ui.Tk.Blinkenlights", + "loglines") self.text = Text(self.top, bg = 'black', font = ("Helvetica", 8), bd = 0, highlightthickness = 0, setgrid = 0, state = DISABLED, height = self.loglines, wrap = NONE, diff --git a/offlineimap/head/offlineimap/ui/detector.py b/offlineimap/head/offlineimap/ui/detector.py index e75783f..1523fb9 100644 --- a/offlineimap/head/offlineimap/ui/detector.py +++ b/offlineimap/head/offlineimap/ui/detector.py @@ -20,8 +20,8 @@ from offlineimap.ui import * import sys def findUI(config): - uistrlist = ['Tk.TkUI', 'TTY.TTYUI', 'Noninteractive.Basic', - 'Noninteractive.Quiet'] + uistrlist = ['Tk.Blinkenlights', 'Tk.VerboseUI', 'TTY.TTYUI', + 'Noninteractive.Basic', 'Noninteractive.Quiet'] if config.has_option("general", "ui"): uistrlist = config.get("general", "ui").replace(" ", "").split(",") for uistr in uistrlist: