Kent Crispin <kent@songbird.com>:
[...] the intermediate protocol is music. [...] another example of the absurdity of the export ban.
For encoding numerical data as music, I usually use the following scheme: The digits 0 ... 9 are mapped to the C major scale: 0 becomes B, 1 becomes c, 2 becomes d, 3 becomes e, ..., 8 becomes c', 9 becomes d'. (Of course, this can be transposed to any other key.) The next step is to find appropriate rhythms, harmonies etc. that make at least some sense, musically, in order to construct a melody out of that sequence of notes. As an example, I scribbled down the first digits of pi = 3.141592653589793238462643383279502884197169... The score can be found in the uuencoded GIF below (and soon also at <URL:http://agn-www.informatik.uni-hamburg.de/people/3moeller/pi.gif>). That version (in D major) is for harpsichord or piano. I did not mark which notes I think should be played legato, legatissimo or portato; that is left as an exercise. It would be quite cumbersome, of course, to use this method for exporting software. However, it is very convenient for memorizing numbers: Melodies are much easier to remember than boring numbers (unless you happen to be a computer in which case you'd prefer the raw numbers because they contain less data, technically). This works good for decimal numbers (no large jumps, no difficult harmonies: B d f g b d' can all be used as G 7 notes if all else fails). Hex numbers are not that easy to handle. In addition to 0 ... 9 == B c ... c' d', then there are A ... F == e' ... c'' (i.e., the digits/notes are spread over slightly more than two octaves). Because of that, my PGP fingerprint is somewhat avant-gardistic: C7AC7EAD 566A65 ECF 61666 83 7E 8668 28 (See what I mean? :-) In addition to memorizing one's PGP fingerprint, there are other possible cryptographic applications: Under certain circumstances, one might need to implement crypto-software from scratch without having access to any written documents and without having access to computer networks. For such situations, it would be good to have some kind of "memorizable encryption standard". Writing RSA routines is easy (at least if you are lucky enough to have some bignum library or if the programming language supports bignums), but often you will need more: E.g., a key generator for RSA that will find your 1024 bits RSA key (which is really 2048 bits long if you count both N and D) given a 128 bits secret as seed. It might make sense to use some cryptographic hash function as the core of the "memorizable encryption standard": The hash function can be used by the key generator (similar to the DSA "kosherizer"), and it can be used to build a symmetric cipher (Luby-Rackoff style). Musically, the "memorizable encryption standard" could be a suite consisting of a Prelude that somehow defines the hash function and of some other movements that give test data for the hash function, for the derived encryption function, for the RSA (or DH/DSA) key generator etc. Bodo Moeller <Bodo_Moeller@public.uni-hamburg.de> The first four bars of pi: begin 644 pi.gif M1TE&.#=A(`-8`H```````/___RP`````LP((`@`"7XR/J<OM#Z.<M-J+L]Z\ M^P^&XDB6YHFFZLJV[@O'\DS7]HWG^L[W_@\,"H?$HO&(3"J7S*;S"8U*I]2J M]8K-:K?<KO<+#HO'Y++YC$ZKU^RV^PV/R^?TNOV.S^OW_+[?VTP0'U.7VQ]& M.6FU%V>]>?<?#,61+,T33=65;5T+>.69KNT;AX$X[_T?&-KM@D7C$9E,#7E* MYQ.J8A*C5>L5>VENJ%GO%WP8&KIA\QF=*V/6:?=;W1S#Z74[A[BMM.]]OXAJ M[F^04(F/(E!OXK"PL8,)!Y)M2G&RTC'B$O-N*B-/\X%R<]2SLX$1A!*5011/ M<FGUR)24,T9P[Q5WEI87@N<P5P%TT398Y[%8ZM8W5KFUU\F8]7?X=)=8K!H: M>CF;L9E9&QN/3)Q+>AI=#"6Q>]NE^MJ:VCQ!WA<!W/Z'(#ZF+K<_C')2"*Z[ M@.'*N[=H80.2T5AIZZ:LIV3"KCS;-VZD#YOI]:='$DXZNQPRJ5PRFS\>,-4* M3D5`5/4ZK#:YL6P-H[V-9Z],.<'R.I/I-;9X#$E5Q#8^K]\CYVIV@!'@3YD? M%AR.H=L@&D4:S..68N#9X1V?#:/.P6-DY4DD%>8H::DIIU:4V)OF))2KQ^?2 MJN8?+&6;;`[B'^X7:FW<7FAG\:U%\*GR,O-H*N#E!UKR\+$9KR4RGBY9-*6U M[],U."1Q<G$X9/,Z>_LVM[@5/*%H^QIU+/9O8Q[Y5^L\;>6^]:-F#5TH=PH7 M,E2B#]BT,8K\\>@3<.!%:933"N+[]RHA`I!6"+X+!LZ8R%T/&[)LZ40BP%H2 MQV6T1RN?S)1V'![LB"I3S40Y39)$IA/4/8HNES)-!$78HJ1-O_D+>C2;Q9Y; MNEW-]W&BMU-)QTXM:[84.I5C-_A4%K;$E1Y*Y;3]*(=.78U=5AD-.S?KVL!G M!Q-NUI6JX,.DZ@Z2FHOGR;:*?[Y\ZR*0N\":C^1=_D8@/J8NMS^,<M)J*P#W MY.[S`FXC64Z>F5I?(P8NIJFO/+<VSGP[W\-A+B@<$HM&U2_B0^EJQR<TFN-= MDB6K-*M8<GLK+3@L'HN[V*V3K%X?6=6TZ<R>FNOP[SROW\_M]]8?G^`@D=P; MX8.?HA='((4C8J3D)*#9!N3C8@<$B*:G&Z44)J?,IMXGJBEIBF&HZRN;W]5, M:JTM(^SDSMJMYDBKTFCN,/&0G8UP<.]R:K$D4QES'6NR0[4S(31VW'30=:6T M-,T2S<OV.4XXL,%ZXC<0>NYN?(SE%NU[2'X5/P;]_R5%WO8A(%@0H*M.ZQ1B M.W8#B4$.4=Y]BXC0&9=[(DHDS/N%Y"*E&@LUM./3S1V^CU`HQ@#ITAHH?1S! M42%AT5S^+@+Q,76Y_1T`1T(S0[6;]R;!,/0TCRG-!$M-E%LWEYWIVKYQ2S[A MZ!*!P%IO1LP=D4E<R7C*!)7(H,CYV+&NK>04E&I^OE'QF%S.JL(_[CJM&S[9 M\2E\4H>6\3946RW,>^.L(,Y(^-RDUKP*_Q@;'1=UB.0"#17L)C$S-3$?.R-@ MOA(](T4/?7((7[9*QRI'7V%O#"LV:VVIL%QC=U<IP+IH>7TG7[C04,/V;I>9 M_2[!A$V?Z)JKK:^QLQ7U1G6C$7TC+Q;L,J"9/K/5US7):7#[-+H0,.;IV?'S M1[R_WZ\I=/$[QLV3P'YZ5H":%DR?G'BU?@SB,TN:/T;\`AJ;E'60(Z!;'T@@ MW%BP8R-YML(!5-FF7@=6Y$*-&(0LE<2+VU2]Z2BS$\\_FV*$)*BS9\E<]N`` M=,A#C:5'/E,.O.='$$*H./-@%/INY]6?7LD$4CES:Y$EW8QZ)#;'QTE>,9E2 MN_-)%KRTX[2X'*+1#-B^?L6XXMOJ+,F[=/V5(\4F+]<J,(E9&3S7[,W&02T> MI&K2;M9B%3V/+%K^@T!\3%UN`^CD@2!86?7F$T7/P9:1XKIO`D,&9=LW;LJ0 M5NUWE7<2OS1>\`,4\GR]HJ*2O#";3B-46M,]8TO1Z10]YF8/[0:6Z7I<Q?+T M)TLGVEDUBZB<Q[-U.TG>?N.CS+>\P#RC*JL<K)82$(M!I(<@GS`Q.#(TRB1' M0+:K3$U`/S!#0K=04LB:5+-$H4^]4Q%8-5:*'5-%2)K1+[!(D\DEOK3=/6); M6>3>5M=E4]ID4>B46."U1IV1",Q6)^9N:<]1S>T;Y5]@]'2K=#QAE<TI[^1! M8S/I,R4Z]OV.R2=^@`&U+=(GT.!!A`GW@6OV"%$].J+"K))X!(/"6T/4WC4+ M^,.@%'8>KZ%2M4P61G/?^!TB%*C/*H@E&4*1=^_9FH?&U&F$B.X*"FPB,:*L M):FBME<IAN([A%3H4JA0*PJ*.5-FAJN*:M:R2K,K&V+##O+B^1)G(8?Y-F(E M>^]KG)I5:=[LEC'66WKV*'Y[FZDOE5V)M.CC]L\IHL))U;)E_)>D8[^7H-$% M17EMU[R7D6W%"YF,17(SY$8L93DM)\6+[S9VS!ER7-=]0U/IO$?OY$NCX7J^ M(QHLLT43::--?4SSW]C(/?%V-7LXYLRL3P*W>TK^'H'XF+J,\*"])B>]!VJ- M<^S,IX@+*74FJ*XCZ[YPDKI6;)\P%]=W/^.77P\C).J&.:22<AP52SS;9Q)% M+1U,*_&J?'(A7)G/&PZ20^=*F::JEM;!;&1#KV_@AC0>!0[1W%)S>GEE162' M>TF)>4U?8XLK@U^2+W:6EYB9FIN<G(QT`7.AG7=LD(&`C)%]781_.T!O6[.G M()0YC8XWJ;4.I+_`@L&=,L*`O*,UHK!:+*!(P\B]:+R#N;O)IHJR?K19TRTB MR\N3?>)US(%[*<1@4QFA3'85XZJWE;;YO=)0K.#9_]KX<R)PX`Y+D:3$VO8M MC*9DT2(B-$8*(J9XMN[.H;%XB9O`+AJOG!D)CM*U:2$AG725T2`NA'Q$2;PC M$]C"3S.?.4,%$V=*CIF`Y@R&I8VV1P&+>FMXBE_29D_-5/OH\N4HH='B>'CH MSF=$C`%_QK3F%-XNL4NU)H2&UH>^M(G:AHUJ!%F:*66Q_BIT\^A&NF(6Y86X M\VQ!AG#5(J6+"*I*P-@@4WMB<"@H=H(^LO2K%)>\P8\E;QV<TNE*Q8F9&@;< M6/1FUT9A^[)+#"#;JV]!F_6(>+;NN+)+Q598MVIJWH[5L3;RMJGLPC'^",3' MU&6#!\W)\ZJE&6'MXNR63PP9+H&@<F71]EW3,9S?TTSAFMJSWO[!A$,2D18T M)F-*)DHE05XN,F-4@;DIK;R>+-O4@9/4Y?"[(;>V%=9:<Q:/:7'1DWZ_XL=V MDV_FA:,;"12*"OSRT@M3;.-C!('*6>QP8]M[E-NJ+)3$%/14<RR*G$K$?"*< MK$-"[`1]>WU+_>02+:G<#,AMF(W%T50TY2T"+(Z0M!!N\SU*M1I$=0V69@I* MN_JQ9<[;'O9]UIX3O]7:I>16,59?9V]W=]?-,=U-3GQ?[ZY]YO*PH]93I^57 M-`XGBL7K]<A</CR:%EHZ1V[2/8KM7$ADJ(S#8:&-O,)!K`/"7T(@%4TFZU=1 M%\)T)]]QO-B/I4N:-6VZG("+TDU[QG)^;$ARY<9K'549+>6#%!IH#U,>[/+! M:4@G_T`"/%:/IT:D06%MI>(38Y6I)4D:*MNLJYFU3&']JCJE&:"A8\%$M>JA M[=N]KX2RC3BN2BRN4"+]%=@W\-J\&SQB:SJP**=0>?&"4VPXLZRRB(]J%DPD M;:/&W%9YWLQH=)S2D$R[E3GSV)V_!\6@SK>:V>1&IT(K3>R)+EF@J7</_R$0 M'U.7P8&A-VFU-&:]W4X7\D0I',T3-<J4;;/*5=?8F]_3=G.:PWB8%Q0.:T3C MI-?H/`+(YL[80%VBLNH5FXT`8YVM]FN"IL97;M<)5J\_;#)3LX.3EF6M74&M M>MU]_^BLI8SO!Q!G".\HC<;GS_'HL68N+(]0!L+2+Y%N43'R,S)0,&ZS2*2T M22@3K)%Q$E02!$3%#';K=4'NM?5OE;33TU8RUU?X@W?T!K$VJ#C+F1@*^/`6 M2?;Z.I43VX+,N!):&QQ.]+LZ',W\?`97_0`YF;+94$P5U7'ZTHJ;/]O]28\\ M<_DD*)'USQ2K>\=F(>+5S@TF0.@F]N/&@=F/A8P5^[6Y9)$@PCL7_X6DM0Y> M'Y`KR[U@21(@23LO:=:LJ<,FGYP[4T[A>3%$"9HBB9Y":!)=MV<6W['X":.G MO:<2647YZ5$@(WHNIV((1]$AQ*)CFY84:X5C08`%;71\1)6LH*AQ@V7MLM4H M,7%)CIJD^U<84FE=E0[T.X[L7,#VXA#9A&JCWKY@%QN+;/Z`0'Q,708'=MZD MJ$:<]>:<PB[X0K+<'C-55]9P,K"5M(F,VU?6FWSW?^#J%F358+WCD+CT7#HC M9E`9I4JGEM_5Y?3HN%5P6#S6CGG(AJUL)D*?7W9<#D8KUJ7IIT[#P>=_P$`L MP04CC#N+/4(9MR;#1<C()Y@HO1?$P1#+1\E.3Q_,.,Y"'CO%3[71I%/4UD!6 MD2P)RQE-QTT45]W=+D_5A*LZ6-X(/YIAXN3*M=#;1I'FV$)<*&3E:\AHLMS# MLT1M96X\;'(Q6/##Y\PF:&IU]/+X,/BJW]GI'G'Y?7[>\RQ[TE:Y"]C/8+9/ M!;54L';0X4-SS$`U-$50#T2,OB<2ZK-33%U&D"&9_`.ER2(MD2D)T:.B,!U' ME3%EIB"YX]1)E#-USF'+22`^INZ"`SLPAD<OSGKS[C\8BB-9;E.$FJKTN.]K MRC-=VS<NY:1[L3LP*!P2BT&'CP9;,HW.)S3*DU)ZU1\UJ]URN<CJBBGNDLOF MVY=L39W;[C=<DV9@3V)8/*_?&^9>"QB?X""AD%_8W6'A(J-17=8:7>,D9:7/ M8Q]'(J9EIZ<(9U1DPV>I*9\B`N=FZ*GKJT+KTVA"*NPM+I%M9NQF[B^PJAEM M;;#QL<UNA6HBLO.MK",@VW.UM=UE\_7V9W31-#6WN+CRW?AYI?>H`D%\3%T$ M!];BI-5>G/7FW7\P%#V'>IXQ55>V=5^8@V*YK&8ZUW>^]V-;)/@C%HU'I`:7 M-*`L2V94.J4:AU5L5KM53IU/;E@\)@>@971:#8R>,N=U7#X'P>EW?-Z<=+_M M>L#`M3_!0D,J0IZ^BZM#QT=$2,G)HD2?+Q-+RDW.%<U.T%!&1$R&1E'4U"Y5 MUE93K%*%4U=:U\]:W,?;R]FFW5Q@Q]]@XKOAW@2"^)BZ"L[FP4FKO3CKS;O_ M8"AZP&B>:*JN;.L&Y=LYTE++>*[O?'_&OJ!PV*,!B:$C$F&$*)?0J'0Z?%*O MV*C1FIUPD4W&MTLNF\OCLWJ=#+-M6'?C3:_;<>F[_K[-FV]2<@E^>X6&AS"( MBG9;AH!:-$Z+DSN/E""$EX&978)\G)618IJD*IZE&Y:H5*=LK72J8*)PJ[4? MC;:IH+DZN+QDL42ON[^K?<48P<@\QYA]S]#1TM/-#\15<;-SRR,ETC#>,=<L MS9/4Y^'3$=PBZ1'H\-_>/DWQ]O?4B4RO%/X$\3%U%1Q8@)%6>W'6[<GWP>\( MR=(\T505I6V,(#%>S\3Q0".V;GPF?3_:D%A$!3M&F5#'<CVA4>DTJJ)>;1W& M!-N=RI#"HY=,#C6/RE6K]6N6,SWXG%['Y.QY_7[+=SD;_!;4",$$#^,`$1>A MY!@?(;,<(ZLHZ;@L$11',"^-V+0R12LF84I'1T]1-T)7MSI=+V!CGV8M-]^^ M/FEY65M[@3F#$U6'C0>/66-Q==``/VV%J:*3R\ZJ>8NK\;"[7[Q)EW\UDX8T M9K7OJ,%UF=DCTXVOW[?I^UR9X\FY3>5N]$FML_>'WT!X`H<5-`@,8;>&B-PU MK$'!R41?"[',PTOX".%#2`JS&?1X#"#$<<UXI.C7P^*Y"24W2CH94Y`VD*EF MTD0U4@\7CR7$J;(Y[F88C;5>\N0XR1TQ@$IURHIV=%7.90L[%M)J[@S^5`+Q M,745'!ADYLGV8JW!39\ZSOK(TIRT$3N]M1S96)[I&D;26M_Y_DR!F^!0-`06 MA9*0"F(,^J"?4!2Z64PO*UB20M$@G6$G6)RCXKX'UVXM/;_AOV8Y_:;?\?DR M>1^O\G-N_`9Q"'6L&J2PLD1`Q#A>])*T).?:4`([IA#]!%N8B)Z0`$,OT2HU MK5!7A0Q=:3Q?[61I:V,X"UM(VLR*&ME$X5)9CY1(*X_W3%^1J1:]EFVE#6.G M>:JM>["MZQR!>[/`9\2SKW"=9;;+UQ/#G]GAM>-]U.=_[-7.O6"[,8-MZD5Y MIVC@GUOX$.9BE+`=0Q0.QT&TD;!?/DD6=W%]H1=06[1R'+M(G`>2HL@()E'& M*?AQ&<D+;GR%E,=,W[J5)U/:S(ES)Z2>#W_"1%C3I;<,2XH*I5:39;J@TY*. M#!IUZ%-=%%M>\Y3&XSBJ+"K"NWG%JBU!7VNAA5H6!%NR6`=2;;GFV5A,Z>PZ MRJN0D$NU;DV<S?D7,+?"?&G^$(B/J:O@P"";R<U'C\V\ZR=Y`2AJY=F@H\JV M".G&:RK796CG'J[W)_\R0$#$(G%D3"J-*\L2Z&/!:*W-PDIQ0GW%'U:TE6&& MSV<T>CSOKNHJ&5F.RYGDS?RNO<.7IAC>WH86Z(=Q%<;Q)?4VV*7X]VA6,7,S M!BE4B`8I!R<T&9*(-#@3B2BJ=FBZMV<&A9HJ^.H%&JI8H^5"HKDY56KJ:E/W M%JQ;QC44ZK3*6DF<9AL+'>TG+?I+S?MBW:"MW!P7X5R=RMU'#88-#3IKGD'. M3O6>XQZ_1F\X.]]-?'F9CXC>QA^*>0)?`8REKF`Z>RH4,NST4%[$;/C8X,$U M;%V"MH&8P.`:UW#B/8>$#(F\<+(#288K([8T5G'2/WE\>LD*607DP)057N;< MQA->4*%#;1:]D?*@1J#`Z.SPV>ZC+YQ!H?XDRM/JU*/UN'H\J=1:1T)VR$E8 M*O$J(Z^46$;PJE4<VZAS528=^T$E6DIEV\I,JO-'U;A4)7$E'`AQW8D'/?X0 MB(^IJ^#`'$-RVALJQ'1O#H:B\8UF=J+I.E;LVT3P+);TC>/0X\D=#PP*A\2B M\8@\YFC`A6MBT^VB%\ESJ</Z3%1MZNH%@4EA;+=\&UN3;&&F_4#+#TWH?,5S MGN7K<:2N@C+55#=$][*7DVAW%^+AU]BQ%8FG2#<(!6<42-GI^?7)`2C92709 MI^GVM-.P:9IWZ=02)YAJ>\OVAKN[F:"V&"HKBUJD*_H(/!F\S(R1_`GK^YS6 M1F)%&BT,2G'*F_>*;%H#N4P.PQKNK3ZX[L;9K`TO/V]>3BNMI?2VSS4]'5/I MSK]#3`8Z,^CEUSQG"VLT?,@,H<![I!`5R\1O7'PCB>_0&.3X`V0K>7Y$1C() M,:7*?"JSQ7(DKA]%,2C%L*AIDTO!>K-(=L')9Z70H<%XAG)I#4[&<TMI;D3T M5.<YI$SAE21*!JO6K6&,0IMIC6M3CS>!5CDA,L@2LV65K60K-NY0KYZHTO5Y M$JI`M%/!SH#[Y:=6P'(+/[R[_H!`?$Q=!@?EV*35WB3QYMU`+PPTL1P?T%Q2 MM?U8!';G2:9O/-=W?K-[T2/R`Q:-(>(,13J^A+ID\\",25U1JW6YY7:]7^Z1 M!1&B3MO7AZ)99I%4JEONQ@:[R-83VHQG;/TY"\"KP,HFR1#!&L[;`PK/& MR;`JRPNR,\E'2`Z]DTX^E;JU'+#0O1+*5=96UR^G5];-R\4*4M1<W5U/-MX> MW(8&6>)BXV/D4S2Q8+S>,K7!WVGJ:NO"3*GD[>--1\ZK9<F.Y@RC<CKT.?7K M=O=W(';OX@C/V\5'Z:E1G,\I?T$FY/EP-Q#>080)%0H\1(D6P$`#)1:I1%#5 M.8,4.C,NY-C1X[LV(3^.X"=PQRE[%RFVTS?2Y4N8,1%.-#EJEC:,US;*Y-G3 MYT\:-*%P:[FB9KR=0)4N9;JZ@4!\3%UN?QCEG(`N>S'@W7\P#+4D(P/SE#BU M=5\XEF>ZMF\\UW<^3LE?1#0D%H.J8X7'ZC6=3VA4.J56K=.DDF'D=IFWK'!Y M)9?-9W1:O8Z&(5[XAZW5N>=W?%Z_Y_<;=H0X0<"V%D*70S_%1<9&QT>ZC4$C MOB^-1,A,S4W.3L^#H$DB1\L+S$_45-555B>3R=52BM/66MM;W-Q`KUR1%5K= M8.%AXKVB8EX%V6+F9N=GLQ%G6!1@Z&ML=UR"^)BZW/XPRCF!I3CK3:W_8/AQ M9&F>:*JN;.N^<"S/=&W?&'#H8G_AP*!P2"P:C\BD<LGTZ9C0J'1*K5JOV&PI MI.UZO^"P>$RF/LOHM'K-;KO?\+A\3J_;[_B\?L_O^_^`@8*#A(6&AXB)BHN, MC8Z/D)&2DY1P8`3Q,76Y_6&4DU9[<=:;=__!4!S)TCS15%W9UGWA6)[IVK[Q M7-_YWO^!0>&06#0>D4GEDMET/J%1Z91:M5ZQ6>V6V_5^P6'QF%PVG]%I]9K= M=K_A<?F<7K??\7G]GM_WFV`)XF/J<OO#*">M]N*L-^_^@Z$XDJ5YHJFZLJW[ MPK$\T[5]X[F^\[W_`X/"(;%H/"*3RB6SZ7Q"H](IM6J]8K/:+;?K_8+#XC&Y M;#ZCT^HUN^U^P^/R.;UNO^/S^CV_[S>6$\3'U.7VAU%.6NW%66_>_0=#<21+ M\T13=65;]X5C>:8SX,9K?>=[_P<&A4/B"'<L)I5+9M/YA$9#MP-5>L5FM5MN MU]N@(C6`;]E\1J?5WJ/5EKN0UW-ZW7[')]J=O1OBSPL4'"0LY!'C(]N3"),S M?(2,E)R<0.1H!'Q8I.3L]/RDV[RT9(0#/45-Y7(L)-UP_5.4RU0]_B"(CZG+ M[0^CG+3:B[/>O/NO`2(@C>#IF=](6BR+QO),U_:-Y_K.HV+W>BV$%%7O>(!A M@BVD\PF-2E/-J?6Z46:9U23)".%B:=H+>(Q.J]?4'_NM_KFWWJXW<':(X1SB MTLX7*#@X-3=A2)BX`DC'$'2(N,68=^1GQJB8J;DI><GYZ7D2B2"'.31ZF5<& M10D)^@H;>_J')ZMG6K**@QJ">U?$"]F*YRLX;(N<S';LV!+LQ%QA*3U]$^U2 M3(S=]X7Y#!R5K3Q.#EU]JXVFFU'*_IMSO1WQG1#?X,9+GVM?WN^O_,B5/FH# M%9RCM4Z8CH2]7(%KA(K?K3W_*EH$V$Y8&,%<Q,3-`A$PU8Z00+(59"C0F\<P M7)A<Y/Y$(#ZF+K<_C'+2:B$`)MOL^=6`H1>*I1F,Z?6MZ:NXT\=N]8+:A]O[ M\RXH'!*+QB,R&$LZ>AV@4-=:PC0V*3-'[6!PDFW%FQ#OK*H?VI==L]ON-YQ! MCI^Q7S/1_ASJI_0_(`_>&-255AIB8>`B8Z/CE2)=W\,D2^5=U&67YF/GD5I9 M1.+HH*?I*2J<&5BJ8!*K:"E))`6M9%IKKHH)*:+N+W`P#6PK,:]L[-RQ<7`O MVJZP&W*MH#-G-';V(K,VY#(W1G>3=:^<>(OA(>DY>_O;M7NM\G`\$_E]R70] M@O[7)NZ^@`*K#"PSKV"J?/A^\`L7K9\1@`@G4JP&KB*_BR6Z&`*"2&DAR'+; M#&K<@/$D0E`H48K\X]%AQI`R?;%Y.4XBI95M_@C$Q]3E]H=13@BLI5E?K/T' MPXDC2U-$@52M3/>%8[E$$3:<2>:N>_\'!H5#8H<X<AV5RES3N-RE(BI>HQEP M9K&]JB?+272A8W+9?$8'M6GD%6;[TK#5)QLWQ[P_];;S)\Y@B>L`M#,\1,1+ M7)P:M!N$C*,HA*+LFP&Q'(%+XI)2D&04':T$(STUN/DJBFP-S7RL6?/R=*#R MT:RXE"/+1?WE4@4F%<L9<D5^V?J+7;G:JWWPG?K<O2CC&];&M=EFG#ZX%M(2 M[X9=`*=F2X]*M64/C[;E%H''*R^U]]X/4]7G9[;AWSL=M-0`&5A/UB9H*]0M M5,C/%$"*D\*TJ\C$1TM"C!$1?LSHCN$&69@XTMM7,.1*=!=!48')4MZDDZ!F MWO28$9P]CGYP!@)X0J;,.L5@XAO:4."QGN-`AMRI%(<QE.=2WJM)_HI`?$Q= M;G>00%33SI?UYMT'ZL,^+201\UQ2]6!;[R5EAGYL[M)W6.KQ7K!BN`B-1V2R MDAJY=$IH=#@#YC#-C<5%C'1WQ:NMVADWOF=TN)B3;G^0[K%L;BM#ZWI>#\6" M)-J^/4&1K#1#,"VNPS.0149'R$C)Q9,7KTG,D<2EH*JQ/D:5N$S24E/(QKG! MU4(?%$#5EM-96AXN%+=0.*'8$CD*IKK>M]3,XEI2OZMC9$,Z0:;AE4M)/]9K M5S?.IN9':Z+CXNRHX<!.Z7'L#>V)?PKWV=)'Y^9@_=?US<ROZ0S/<GNPS M4N[>%()ZV"5T9P=:07OO%/XY*(IAO2\QE>Y4NZC/H$->'6M83.BIWXU.60JF MA%%1Y2N7,T120481STQL'Y/$Q(FKDBPYZS:18;ENI<2?\EB<G-B3DT9-MFID M+.FTU4ZK6)-N#1EP*!NDS[(2?4AO%4]R)NQAH>&%(5JN9-!6A(MD(<FC4[^^ M;`EO+%F%2_?5M1NL)3<(C4H2QD<%9%'(0>,VSKMD;UF4?P'G88P7_@F!^)BZ M`:".21C-DZ[.S?NY7B@BX*B-6XDFZOIE[M2&LW?&)`:[M=GUMAL/QR+ZC$A( M<KG8D8"_"O0A9!ZMV!1TJ,M$O."PV,D`8[>8&/I*J=J0Z'69S*-SLTV\4:[7 MUOA-;F]]*2ACAV$-B(N*+XN/7HJ0&EMQDW:$A7=+/8*9DF(-1768)J4LEZFJ M,&8@@(":GZ1E1*<<GIE?EVQV5']*OA]*?J-PI*O(R<J0.+`BOLM.T8]IJ*#+ MM+G3VV8YLBNGSD^PT$/<4M\4X.*Q>W"19VKB?X=9TWC.RM>A[NFXWV/2/1/$ MS@*F<ZN>"911QQZG=_\6LB.',%$[-3_6I,&39XN&P()]0(;T%+$+(ADB:RVL M9@C?PSTEP<G;M+(ES%O'8,:\F*NF3X@HS]G<R21EDGDNC_[TV%`F)Z*FC/$, MDK(CFYY+\V3M,I7?":N!+/@T*M5F/*5;]4`U>'3CV7YI&1;U9Z_@6ED=[:[5 M1?;J3Z0.T<;-M@XCQ+L9R[(<S!AGK1)@Y39VJW66J8!TTP)^"[>QM\(TC_4= MUMFSVLP<'95>_D(@/J8>-"QZ<#)'E\OZ\AX] ?R)2@=&(JVP;I.:JPN[D7 MW>;*?OM_[[>J:2RWH%!GG"`Y2]%#ED0UIPF;SFK2<I-5YA<2QCVY8YRSJ_9( MUX8SIMAFP=V1>7SVPG=&]>F?3Q&;V)W<(6*BXJ+<7N,+&*,D(J31Y.4A9!^? M5>"5IYT=:,GHFP0G:>@,:H72V:,J3ZQAV0YFZ9X0W&1G'*6I9NK*+?'L%IIQ M+P_NYNJM8^9QLA,K,%WU)U:R!?%@MV(E4Q=S\#2*4I;Y]SI[N_L[?+SVIUB4 M#+@Y15GA]9]?C+QR;@8=&9=/';J#"F/T6:B%'"$O$!UF^[)OF;QU>4"FS5ME MD*(J3]A`.O/2D.3&61!'ID%I:N2IC.`R<.1(4]!'ESH%"MMY,R6RG4+O`)J( M\J<^(C7RL2S:="A4E4M](BW8,JK0IV1T487I"FL>L/S$DNVI1R=!H$G+'BW* M%>U%6?VJ0M7*]BY>4$9UT4T8%.^0D&Z![`W^0"`^IAHTK'HP2>1:<'/S[A?V MB2-I526:JBO+GN7;RHPV9S%HZ^JU0P\N%9(%?;`:IVBB7)I*H_`)=?5F&B<V MJ]UFIM[<-PP:6C]2L17I51-M9S23/#GCD-5.$X798@]R.$]>$I^6QY_)GM\- M(6.C(YL9H"1%B]0CX61$%HW0#V3F#RC>9X3AV`G;I6J>Q.J5HFB<:ZP;:90K M;BZK+F]OG\NBK_`P<;$@`^W<G><AK.:EJ5@,<>!L&=6;:'82G&TR]S?@,M1X M9LAO.&*S']]B,&/Z&I`QF1.Y]^CZ-WYDO+_%OS#E?`Q,IR]608"J:*`Z&/"A MK&TC[.E)F.P8#XAQ_B1JG,BQXD=Q$"TB6\*.605^'1]BK$5R0TN#+Z.MO%B3 M8+>5(:7Q>]+LCL.;+*?$%%$TW%$2.X5>8^JTYM(O24LJ8V;R*=8=4P>I!+6U M7U:185=$'5MJ)#Z?0:H$->M665NX&F?2--/U+=5!>#GM)3O^A4!\3$5H6`:/ M6S18F?7F!G<P%$>RK!PT55>V==FK,1,93&<\+Q\-U7-?*_8BUGY'I">9]&5X MDB:C9ES^HE5LJ#@L=F6?[,[[(#N?&U78,V9[(V8PG-*FGR^Q.XT*K??][@DU MG*L*M+0A/,$1%\6>.42>OSVEQDHF+LE,3$!+J4RBM\Z..-'233O3DTF:T1>K M3PQ8MS\%U-1;7+Y6PES<PUZF52!@-&)5V]#=FU-8H&5CZ&AI*67D:<7G:Q/> M&>YHZU[O-5GPVVQM]'1+X5IV]:SS=RU2$?%O;?N\N:>M]'AY@`&'":Q$CZ". M?QP23BOGRR`E$@^-23Q8T2*KB_!!*&9<]`L"C(`-S4D4^;$D1Y0IH9U4J1!D MRVUU*KIS2).E'I@Y=4[<&=%5SVZ@,M[LE(_H.*!)E0JBN;3=1J=1"V&Z(1`? M4Q$:ED%YVK079[UY]Q\,Q9&4JA)-0>=1W1>.9:6=5\>J\^2T_1\8%`XS/>*Q MJ$,NF<V%TLG`3:!/7C6:U6ZY(F,7B06/R1ZQD[7+]:9E]QN^_,;I=7OPW$Q3 M+ZS]'3!04&-NT/`0T6KL#R(OP*\P47)RT9'R$I/+,JRML8\Q,U3T*'+4]!2/ M#)0&M=65J?15=G:E,M9@DU9WES"7]W?75VB5%=CX&.,6>=E5&*_3DUF:V7G: M.K$ZL(,@/J8>-&QZ<-)J+\YZ\^X_&(KCU9`GFJHKV[JM]'I.+-LWGNL[']4] M,"@<$CNFHH*&7#*;SB<#*IU2JY!C4UFR<KO>Y^\K'I-16*8C$RZSVV[.^BV? ML\_(M)JNW\_C_#_@DMV$7XI67F"B(E3AHN,CR^""I-FA1B-DIJ;A9J>G"*6/ M#`UFTN<I*DAI*FNGW9%$:*2L::OM;2VNKF<-:8"O#M[6+G'J:C'R&Y8)++`! MNBU!?$P]Z%WPY*357ISUYMU_,!2M:#1/-%57MEV=`(;C1J[=NG1WOO=_8/"B M$Q:-1V32I,LQB;0GZZ:D5JU7[#"[Y7:]&^=S1OM-)]%O6KWVHMEO>+SE5,S& MO!S%+>?W_:*]/\%!PC"[&S.\1`C"1L?'A$#(2<HKHL6IQ1B5)KW*3U`UR5#2 MTCDP,TU`5811TU?8E]A9VB6.Q+N1O+/:7E_=WV!A"=>C7>+A9.5E9N9<2U:& MYFGJ:FO(9_P3@OB8BM"P#,I)J[TXZ\V[_V`H6L]HGFBJKFR[-F[HE!`<WWBN M[WQ,]\"@<$@TV8HUQ^2';#J?T"$S2JU:CU8)-CI;9K_@L%@Q'9O/HYD:O85V MM>BX?'XKT^]X@_JQ-MN=;S5Y@X2%<(:(?H$,;5F-@$J')(N)2'M\`6LPEYR< MF9&51J&C5:!)?UR.E`>=K:ZOL)<OL;2UM9^>G9D)93\V?+9[I*P9C\/',L:, MJ$_,1:O+2LZO'\&PN-#8K=J1F,ADUEW..X_CVM_HR>:X8>M`?8(:LBW2V>WN MQ^'Z^]>\\.D`Y>%3!D@507>N`G(PI1"/+UL-(R;9P)`*O@W^!.)CZD'W,J@< MK4_BK#?O'E:?.)*E>:()H%F!];:I/-.UW5U??L\K+X<DOHP#1,'L?DI4;.E\ M0DM#8=`#NV*S6IC+<(R"P^)G<DS\@EC3!5I5[)KCWJJ\;D^MV6_YM(S;`@8* M#A)NN1AVY=W1^"W.[9$T(D!.ODDZWM!A;G*R;5!VAHH2_0T>'EW6I=IIJIPI M3L#NK<".GC39YK+JXO'ZUH04<@E?V;:6UC)(#CTD_R*O/DOW3%=;C](2%V*# MZC@K?[Y<GZI%CY_C(*'#K8NVM9O''6=^%UN_ZWVW]V*KH^OO&S.O7"B`?/`9 MB5?)&:I_"$W,TF9J43='R0P:"\A'"1>'@:IR/8SP2**R8//Z2$RI,M`I+5Z` MK7P$,>0N(>LP:G0BS@K-C\8JBO3F<J6/HCA_<)R0LR1)ID?!7+QY+ZDJJD@\ M^E3^0B`^IAXT+(-2NHG<LWKSKG`VA1Y9FJ<%JBNK!@W:C5]<V\E\ZU2+[3&+ M!/H17\6B[XC++5;*"U,W?#(JU"MG*NL%45%#AIN$A6!8RMGF;";3;.W6ZA;. M3VVJ.;56RI%]--!=71H<DI$8HMCA@UFBH^(@5J&(X-SD1F6DB*9'YL5-G@;9 M%Z@GIYWI*=&?)F/H"REIG>MC"VP3;-DHC==KG*P)ZX=O%K$J[S&E<81:;,4N MG^#R$[!H:G(I]N:VMM=P+;BBL-!X\'4W=;5JZG2Q<N-M=-_Y:LTE.GXZ=[X, M/CC8NU+T^.UHEXR=.DH!W10JQ\?>0((22\A**-$BPVJ5X2(NX?AC(\A$$W/% M`J6GY"J']CI!-$@.XS>8(U/0G%FSFTN6(4?=^]@%6\Y3[$P&\B.S'])>1WFH M?+?4)C((3[5-/1*4HLL\(J\ZO5A5DD.NPXI"_924*IR=/80V9;FO+`ZXS2K^ M<1%3K=U\8@<-A0(0$\2"&Z,"RN*ML-201ISJP@O)6MNSN.02IHRU*Y1Q4[_. MXCS^@4!\3#UH6&;<I-5>F%IX_'[+8RHO!$\T55=2FS)8>F.:BS>VK>LNZW=@ M4`CY#8U'Y)'BVA"3MF=T6)16F50$=H&2Y4ZEA]9J%"O*MW'6@5Q*SU.OA(=. MU^?V:A._G0G?]#V[O\"=/CZV01\=0JO$1,81/3+)IT>>-A<P+RU+2#)/.,JH M-2)#H$X-4-0MT"33S$G7C];14[8]T:FQ5472W4U,6C_A2U^WUZY57KDZTN!; M8C]C,^7E%YQE84?H:.TTY%I$8)(PZM2@[,EQ$V<]#.PP<,!N/HQP^N)<F=C1 M^%U(?:R4X*.5SIP@@E!FK0,A0EV*>@&A:&)8T2*P&TN<)*)+F,\'OWX.CP'D M.+`CR9,TSA@D^*9BJ(W2IC6J!"<9BXDF4Y8*&!/62)^VWBQ7+GQZ.EYB4M M=%3>PZ"Z7'EZF84IM9Y$C5*\ZD3HIV]7MVX]B+3KG9U13\U$"R,;6;=:*3X] MR79?(:,A\E`M"?8?T[&!-L(E1EBLSJ52A^8]JT9?4+6]%MTC)+>C-<$T!:]L MW+9SM$%OJ3)F_D0@/J8F-&QH<-)Z'(ZVXNX_Z'`;\I#,>9I0V+JO)*;4.JOU M@ML[/_8_,,B:Z(:_HE`A22*33D,G!YM2JU3-!=B*6#_<+OB:B>6>WY>MR51C MS6X+^RT7-N/MGIV>W^SGJ8Q27]0@SQ*=7Q9?(I2*6Y_2G"%#%:.?9!EBYITF M)XJBD<^1ILQA9Q#@I"F1:NE?H:,HZ\S85-JC;"ON*$G=9RSBI99N83#7L-SM MSFWR9F[:<2-O6)<Q*33-=0FL[ZMP9C%>]E\QLS@F\+/R=O=;^7ED:.#T//U# M_?R9^B22_=D2.*APW\RXTV7-F+E3!7FE:^C$W<)5">.]F^BI1+"(@4?N38/2 MCZ,7'1I5C21)"J!%;I8<NB+X*Z6ID@E1B9/9K*(VE33`P+1ILA],=NAF"67R MTF502-B2LJ"9S::=7G"<8;3""273K-X&$M7W!&)6GTHE:KT09>:ZH@$%*@/I MX:;'LN.PRG/*2NS8:`[=HEG[]>&NG7(]'GR:ENPPO'.I^?\A$!]3EPT>1CEI MM2_`MC?@OYG`0_.N*AM'+SPMM8,Y5J[IL,YU1MS]^;>XX7B@H>X85,Z22Z=/ M0OJY+AGJU835:E.J)A3<Q1J=WZ?YF69JU$IT[MT5DH/Q-M1^U^^]UI<<@Z5D MT(7GSRLO(7$E;(7*KXS/X6-1DC+"$BY3X2NN<FYSZ3.4M)2Q[/`4D>VLT2UE M"\W3C_#P;313Y`4W#8.D\'%TMLYTJO@8&8F7DT).%6&L-YFHB#9V-PKZ>IN; MJZ<CL%L<$]#&.]CW9GEZ9YW]_<Y7-.G6H99+NAT^AMU]OS\?)6BPTHV+4@63 M/!K^D/QS.$W>'G4&4T5ZV`HBPXMFIC0ZD^AF",4JQC:6W-21F361*-2@=.C2 M9$R+,V4T._&*&AZ1'F7VI'EF);E2,/<1]7FT9D!PXW`*,0JC(E*I4%L&?4JG M8<RK4[ER4OK+:M.47<F6U1CM*"^86\NV%27-JBZQBMA>_R00'U.7VQ]&"<%L M`&>M;?<_V+!0W,@,=*HT6=D7CN69#NL2']4==EN_%A0.B<4/D)+C&)D_Y1.Z M7(@.R)2UF=5N.]AK#N'UMF)6%!>=5G/'4>J:Z);/W;(Q')^WWSUOA?A!B@5( M4,_P$'&*D$XG\881,O))@L_1\K+1+@)0T:3'Q?-2='1K!9(4L4)5DG72!A76 M,K-L\\*II`PG=I=W)JH7^*2PJA6W,ACY\89,59CU]04W>9KZ3[<:6Z5XY#C; MF[(;?/O:(/QB^#L=%5V]G8'1/=YB]G/<,W207GZ?O[]WU8\_@=!\V0L3,)JY M@0L9-FRBSV$[B%\XH%B51(FOB!(;.79DHM#CKHD@1A*\Y4I3R`2*!.)CZG+[ MPR@GK?;BK#=WH(.A.)(1\(EG<+*M^\)N.=.U?>.YOO.]_P.##54H9CR^A,HE ML^E\0J/2Z10E06*S+2JWZ_V"P^(Q><A:?;1J=;GM?L/C\CEY;5?`Z/H]O^__ M`YK9'046&AXB)BI"K2TZ/D)&2DY25EI>8F9J;G)V>GZ"AHJ.DI::GJ)JGQ#$ MQ]3E]H=13EKMQ5EOWOT'0W$D2_-$4W5E6_>%8WFF:_O&<WWG>_\'!H5#8M%X M1":5RQ#`"6!&I5-JU7K%!I[;DS/[!8?%8[)O"]5VT12TM_R&Q^7S:[O-KCP3 M;H:;3P<,%!PDA#F;6$/4.^#S6O-++)2<I*RT7."2^--<-/B#>KR['"4M-14[ MY+0X2^UC/(6-E9T-<MQLN(5@S<2TF_,EB(^IR^T/HYRTVHNSWKS[#X;B.`%` M8)Y(JIB6FYXN,\\'2^;ZSO?^#PP*A\2BD513&6(KW-)&4]Z44I0*:L4>M]RN M]PL.B\?D'\MYGCJS#VW2EFRRU^6ZO6K/Z_?\/C<&53-EI88GUW*%`[<(P^3W M:*0%.4E9:7GY5"4X1T78(-FX]'3HR89Y.B*)NLK:ZCH$F(E&E^"6R&C(I/K* MVV;X$M4K/$P,&0BCYKM`=?P;5PQ=^UNQ.<@W/88=O<W=[2VV2Q%*FA<>9OZ= MOH.NWK[*#O%\TP??50^-S)H/>^_N;ZPM`B!:=>!<"UA,RCY4"X7T^P?^C4!\ M3%UN?P<`A-):FO5>\WBN`T--(AGS5-<D-<R113"9A.-ZHV4W]W]@4#@D4G"G MV^]R](V8G%WQ"8T6@[U)KUFU?K+3;D"+'(?-9W1:C0*+;I@R^4*,J^;=MO&^ M9F'%^9"D-!BAO0C`AJ66.B_#0!PN/LE)RAG$O[FE2#*O(<:6"L>^3[N7R\K& MLQ32*[$KQ0?6PS]+4DW9Q1U85-Y>5<1(33U1VL["/&&W8I[=6%Q37YU3T]-F M(&)/#]MIMIF77,M4*D6:Y^]H]/3NC+C5$F*_5M;DV9I50&P1]5`;>F?S=]9" M50.Q+8<+0=2<+'P$"Z&T&/GV332#J]V7+<;+E&Q2\`R@&X$1WE$$N4)B+3IP M"'HLV(:CM%HMSZT;B4DCL"@A2>Z4@O.@OP_A-KZ,:9"9SEPXN4D"VO/C,*2' ME)ZTR:PHM#H`$2XD&LX)-)YA\4Q=6O3(O6ON`KHL*W0<NZ=,M2UEV953U1+> MUFYKJU$OIDUCFFZ]"K-C7[&)Z\&U.XHJ%;"M[$7M,"SQ/;J4:<5U9N=Q(K8_ M*RN\>%@46I2FRZQ&K-CUHD"_(!UM?+!?;8BM?U'SW/7S[=Y/?>L6?-9X/[R` MV;`^_/KM!('XF+K<_@T`2*NE\B[)I_Y']DT>"'7BE2*<B9&K6\7RAKKT7#IY M;72VX`@8(D:$K)UOR6PZGX$>U"F=4I567)714L167<TM2^:%RXEM%-LTKL]% M$SRCWGC9Z+Q^'\'S57Y_0X*$)TIU-H%_BH5B<'>,,C2/:T]C@&F(C9N<G5.4 MGH:AHZ1,FJ5OH$F-;*<OKB&9EZBTM;9OM[FZNP^PI&Y]D8M0JD.SO,C)G[[* MS<Y9PL^RTM35UM?8V=K;R]S>W^#AXN/DY>;GZ.GJZ^SM[N_P\?+S]/7V]_CY M9M$Z=Y)S%IB96F6%D<!*B_A]_R`0'U.7VQ]&.6FU%V>]>???`@X1)!,S1-!I M!966@=U'9N>HOO6=[_T?&!0.,;+<!79LD``BY>+IB49WU!@QH+1BN5WO%QP6 M;VK,9E;5/!O4ZQ'TU&:?UTZT&47/J]/\K'[.;L0O<&_%S*$.T>WOR<G0A`\2 M\2^PLI#Q10[S9,SS$S14=/3&*.^.K?-0!>Z-=2[53C`UC=;V%@TV5[85U]55 MZ[>N$V+XY6WV-'?Y<I;Y&)CXEY2ZVOH:>^@H$O7YL4U9NG'3&S7<]KS<EY=S M^A491]A]TG@9')X[^G;571R/O%\V@0,)%C3HZQV[53F2O(,&+!,_9A+1'1-T MSD@<1Y'R<&VD%8[=Q(KS'#[<1>-@2I4K68:1R.VB*G^]U#VS27*?.'L63TYC MHO,GRDL[2U[YF+";R%WIQC%\17%+2ZE3J59=HG'0G7^1R-UKU_2KI4%^)"EB MY-5KI4>%)D[2-=0FH+);$^GYIQ4ON#UJ`98\A!9@5*N#"1<V?!CQ-<&)&3=V M_!ARY!]])5>V?!ES9LVD+@C$Q]3E]H=13EKMQ5EOWOT'0W$D2_-$4W5E6_>% 38WFF:_O&<WWG>_\'!H7#7@$`.]3E ` end