Jm'?RH←?+#'ä/ñn»³¸Pní?í?ï½Þõ+Ñ»§?¼¾b§»?â?v¢?½ û"?K?d?)ôîî&x!←Bõb»'è%åUi?Rý!← 3Ì'
B+ã?0?+ð*¾g÷ï;,¡,?/!B+²êSûoê*ø" ï:?L?‼? ?E?Â.xîn?¢?ó÷‼í∟¶!Ïö)? ]oÌJPå=▼ö↕Ö.ÍÍÿ?↔
_¾ÿ+QXA÷??6;Í?÷?îùê↓♫µ§ð¾êûmó¤¾?êüûîQ«ûÆzÉð9?(g?þÿ{?å↓Í ?♥?\?▬§♫☺ï«Û??Íî?7è& PR?
§??☻??Íåö§3↓"p ðáÝû?öÚ?|?/;►5¿3v'ó
s◄?→?♀?ïúm\þ»â1*9ï> ú?Ukó}®ÎØ?pì%_35☺#Ô%äǪ®¶H£½þëøçò¢$85↔ ÚôæX¾úñðø?äZ«Ó Px?ð?R
OÌ#Îæ?ª?ìÉ*QkÎ?C¦ì·4åëã?¬?ëÕ °?ï?þ?+æEûôpýþ?â3å@?éñ?âÎýù7â?#?↔µ?ü°þñöºªÖù*êí?×
K¶D«³§WàF϶PSìhÕh$éSbwJõÏí¿&?@`?a?ty)w'?~Xsyî?8?oÁ?ä?6Î#??Å?♠Éë♠ÔN4♠?I×àÓü?í:Å
ëKàqÝ?:??r?Ô6Å?ÇÈ;TÊE?ÌíD/@¤Kj?èÒè8ÈÈm?)D⌂D¼☺"Ñ?D?оL½!Â0Ï2Sî♠Ò▲$ÆÕ?·§.õ?r?À²ÏÒ
?Ð??Q?|[Í^3&;?"ÆÄRÄÂÕ?ÎSExJDP;n?£M ©¡Ð?^<VQ?▼W?_P OP♠ ←▼?☺7↔5▬x♥Ä?↨ºDvC>±þúü♫ì<C
♫Z^Q-B\¬Ôì|³gÏ®¶Ê[ÉS(\{MÎ‼ó5x7Ã;0aÇVÄoÅÒ?a‼? WEmVnCçUÌâbªÖ¶sýÕô±◄¥TëÒæÕÏÄб¹
«=úͨZ<J?▼¬ã:}ßgPQ®Ph▼|Ã[ZóGVÙQ®Àã?ÇÛÇÕ☼èPÌo?:§▲}'<> }b♠«0¤!???¶@§#°?å?Ç???]'?½5
?á?à?ÐFÓ)Ö4=/?`▲t?!Ë â?Ñm\`D$U?\?ÍÅÑÑm?d?Ç?¡&0râ7$↓?♫ÁÞçÖ↨ѳû<♣;W-IÞ??Pø◄ÐP?ihÆ$
ºëîî7jÿ]:×tÍî3¡µ?¤?ÐÀ? ?ö¶óª?ä°¢ÁÀ<ßרêA¨▬ýSzàFXF?ÆÛÍWÞò3$?¢)¢1##n§/?j`cïn?ÏÜ?~
éÑ¡↓Ñ¢®Õ[DF¾®÷uÌTJM×:
'Ý?? õ&Í:?ÜÈÓ?ó?µG¤-1∟'¼t!<0#4s1
?♣ <?m?t????◄wÌuÖ=õÀ1►'a♂³?×???Â?S♫/?ÌÌOïÑ Â♫ñ?4Ã<?-Ò>Fä)?▼x .♥i☻1←Ùó?»þ´:;<G<0♠
uþ/±?ð?y?v?åÍËÊRVÄ?Â?u«Aºåºãu%[Nʱ?á&¨↕ôíø↨ð?±Âö?¦u ñ®õ$°☻ø3°3åÅÄÐ??Ó6b'?Ö?\#0,"
?~p'ýtÃâùÑþÓñÑ1?¶ÇäÊhÕåªþ?\+→♣♫D↑?ÅüH§Êäb?Ö?ÞÆ??ª¤«ô§?·>`vs3ãÕ¨@ä?ÿÑ\? ?Eôò?ã?¶
07?:?/Nð[w^âb i9↕p38o∟0¶âY?▲Ì↑׳¡??Âd?ÍÀ♣Ã×÷@Â?/??ü·Êÿ©õ'÷?n5'÷?1¦0ì5♥t7?????,8"
ÔcX9L½J[[æótô=Ñ÷×.Û!?Ô?Àô˱Àn¿♠®↨íÆ¤?ñ»ú3ü"c2k♥Õ'Û7²♣|´²åÎôÛv?0?♥?w?y0↨Ó☼>¹??ÝÆÌ
?e?gýc&f?aò0ëcRmnÈa¬i¸q¾è,?¨l$Õ↔??▼?BPL7D,CwY°Ê·???→;_uá"x4x$áq«Û²ÂcÞØoÌ@?O¿Âú·
ú¦¨¶úàå%æ¯-8-ìa©?àßü|¥s?÷????!Ë▲?7?É?ÒÕ↓4=Ù63 Èô?,x?c?m³}*?ï10"1p⌂gx1*i cÇâ(go
?H??%Á-Ùx")ó2!1zdßã%ïÉì-á?í↨á4☻?>?¸?ì?®ê¡
»³áb¼h¸Âxß?b§j+♥%▼ßAÜñ+çdö=?,►2ÂxòÕýüýiéïE+↨æÐ61f-♥?♂+=2Éæ?Ã*!dÊ:ÔÇÄÒ??$?yÖh2*+ç
3EËhábÔ}?É5É/d?M?å?庱qç?öÖô+Þ,ýðQ?♣$ç̺Åe¢- Eoß Ëj?y=ÆØÝeÚ??þVzÍxÎo¿ÖÝÔ8??Ò?
È×?bC↨ ´TñEõãé?§?é?hÎ*Ë?Óø=ôsoË#W2?6;{1dó~2i}l?o?¸y´ u¨Ê??;<??Íù6à??´#?s7qÑ8Ë►?+
?(*.b/yz{´8¯-´Å?Õoá%☻3É1Á*?f??×Ì?Î:⌂?d????g?cÒEÓý#øÒy?cØfÂ?n×À?Õ⌂çf2P8L:
~/±ÉgÈ⌂ðpµÐý??Û6æNýÈ!Ìy5e?Í?Á7*üdMzLØ¦Ì "☺⌂Yw(¯gË#?¶on%?45+
f►¦↓?MÄ7Øs+▲¤(q9Ðå×?Ù?ÆöÌ?ÁÈÅ?PÜ↔Ì*~?♂▲♫æåÛ{*?IÇ?"87.&-?-?DÕ%?òdØ" ▼Ø>@?^èDòC{11
>{;B nyq?Ã?Lz(▼¤äå>í<3ö(ìg?\¤FðHÄÙ'È◄? 7?7?.♣▬¶åó$ùbj←a♦Í"ü÷þ▼53$Î?ÝxÕ9)ZÈ↕y4nï
k»./,,Ëîb: 7? ¶(â`8AëWª3äâÇ5ÙQ@@{(?F?/?U?Ä·?½!¶Ü[4G(b4y¶'ñ)(4¶Ð▬h,¸Zâ↓å"???¶?ÙÕg
_Ï{k>+a▼♣LDQËb?ØÁ?ö¶þòþ·?ÿ?ÙÔGú;∟$Ù?ÌÈÛ8Ê?Æ;È?Ù♠¿x???=ú9å~ºZG?0Ù;?Î?d?¿)·Ñ°?ø¦ÞL
?C3-)(mUiò▬ª+9▬|âzõÊã¤ø£{¹?Î?CÐÕ??ÙÕ8?)±?³,öa▲?ÃÙ}*ö>???l¨?¿Ùþ3ú4&×<©?³"©?há)?+)
i=ßÂÄ?TÔÌ¡Êɽ?|s?sí·x{?ÃÂä?/?1?Õ·bÚ?N-??ÛßégëåÍ!h||Ñøö¨íúÚãÀù%:$ha:.?f?.Â↔ÎØ/9d'
m‼?▬·‼?È?|ÛìÂï=Aø/·Þöüþ♠ß?Ä?;Úr?ÉJØ?9ÃvÂÛ??↑Öý"$,?¨r´{♣`((É}¢1Í>??%?w?o¹Â·:iZ)Ý<
?×{?{IðXÃO0}= ?vÄ☻ÈU&í?÷$G9☼kÚ???¥?èÈ?$Ï%?5♣Âÿz?57?hë7ù}8_8?>¦ï¹â³a,? ?iÊ◄ζëÛ
+?j\.9f)y♫ý ?ÛÝ`À♠☻ÏrÅçÂj*(♣ 8?É?)k;Ý~?►?)#83)}¼ì}îåòí}?/?.#÷?£Ìa?Û?LÈÛ?É?ÆíÞãÆ?
þ?ü{æ?jÛ/)>Ù|?⌂`dÚ~Ôy |Ò¹¶àÄÚ!?¡Ýß♠⌂?dä/ó▼~↔/?l?Þr{?sÞ0/*Å↓Â8☺#~g| Þ?Î?¹?¬?>ÁÁ??
?Õ:'?«÷.ý0øx?0?xj~`??¢Â¢j£ÐÏÞ?Ð?{qÑu?♣ÓÒ.?(,?y?û?µìöÎ⌂yt"~Ê?↓VMO♣ÿÜ?~⌂u2dÃyíd?0÷
~♂?l?►<*¹&a⌂~>nÿÀ*§⌂t:¿þ½?¶?óÑ?èõÜîTõ}k©*-&
Éqî?Õ?Ý?û??_?P]?2?91º,?>Ìy~~pçh´1ÏÛÙlMw?f←*ûí¿»?A?♫.r1!è+£èêõ6|**k"~"z?qÝí?+Ý2¹
8¸⌂ú3;÷Iå↕?W0~c?y¿Ñ☺T ~+íl:,5Bµ♀»♠@Â~Ù)Ö8º"Ét??§jéeû?É1Õû7♣⌂È"Úï⌂þ@KâYm]0▬Þ©yÝ
it}ÔïtL1{Ë→Ó?Ôê???U)cy@rebg D¶þ♀a⌂9,(÷¨¥⌂þ|úy⌂bgs)?ÁÀ?Æ Ãú9ò»©1U¶t←F
~?²Ý½(?õ?@µ ♣♀‼@$ý:{4u»ý♣õ³?¬}´|uÍd?t‼vÖ/ÐH'!õ4u3=x>1)?s$fdZ1úãN♥OÚZÁ×~Ð@♫ðA
|±|q¶Âv«?¡?♦þAx?þ!ÿyÞc#*ðz???nF:dÝ♣Äyýe2>f$⌂8Ô,Ì♣ï-Îy?0☼`ß⌂?s?Ö?Úmm{|w♂↕???ß↨?Þ`
Û?$?9{Õ|¼¯↓í♣Ü♣q¶üó☼7Aî☼? f♫⌂aÐ2
‼r☻i↕½§?♦ó"çpÖÎÒÐ&&)0"↑¤&Ý6þ(?a?é⌂¼cU?ÛÈ◄@¼?|yÞ)æM©å 3?Ü(n(T{JÃP?Woz!ùÎÀþÒ}qb
:Ñ!òeÕ×ßÔ↔*Ù©©£²?>®↑½àZî~p3? 2a?f?o nu6¾_ÓU@↑♥Ð\♦KÃ2cë▬úfüqsü{|?3g ÿ|¨1ö3↕g¼ü
r`3rq#v3g@½ÐþpòuÏt¤<|Ã?¨ÀÔ½?p?~êIìyð)¾!♦n◄ùíåjÿ<?4Æ☼=♣WÐuÎ~Pû∟?♀?qpÑ+Ü&ðiWÐg?m+v
¤4Ðéêô¥?çr?x?Ê¥èGígéc C{mpbjxoI,♥ê▬♠♫a}♦?C.ÇßÍghvm☺r` 3`{kè`8⌂$&è²g}âz3ñu4{ÿ(þ♂s
>↑]pÔs?ë0ïgèrÿ;êµp²Ä¨♂?Kì)¾ÐÿgAdò1å%`4ov&Æ'♀dÀ{2♠TÜ1Ù9Ò¿↓ñ♣Ñ?¾`¾×ê?
♂i►}►ql}Üße?®¹þ·DÔ♣p×r!QÇ*?ïÚ☻o|tÅ!ti¯nsl!?jw`}k5dµ&«g±ÝÕ¾1]84=c/↑òdôh♂o5n6»"ü
?{O!'`"hw)D¥NCBhpxBp!ÇdgÃ×ßoÏRÚ`ßqILIGXWC?Ë?1?9üÅÊ?SýFþ CþCa♂4ö#B4ë}ZÁ←cÖ1ÌD%?¯w
!m♂sCb♠▬♫À"×?í p
♂Cu♂?Do▬úcìÅ/xÀcÀ♦fÝÊ[hL!I|JØ5w0¶qÚtßÚ$k?Ú1z|⌂ñbúdþ×ô
5◄pT♀?♠?►¾ps{?`A`♠}½ö×ê×◄!"6{b↕rÖÚ?←a♂×UñÄ¿AjP∟?y?2?gÏIÁB³p©?♠¿Âú`?ìp£ïìaÑ{÷9)=?
?¾gj{
Üqq?x
▬§☺ÓDÃ|↨bÃdÔým
♫X¶‼Ö=Á♥.#jÄ"ÐÕÂÃÂ↨!☻¼jàÊ?ÖvÐbmÄb¶☺?◄ÙÖ?!♫4yÜzÑWmÛ"xÐ7ÇÅÛmÀ£xÄQÓM♦[Ø⌂Ò¬ÀlF%élT*O
▬↨SÚ1ÝÎ?a6È??ÅI‼.♠qY$ÍaVÌbÊ?®*Ewt'Ú2ôØ# âÙîÚÚuN'☻Ãm?¸? ?¶p? Ô<j=¯#jfu?Õ??▬É►
pÈkÝeÄ{?s{&◄Å♀;7?[;3▲f8bs§<Í~ÛOÕ¢?
;j c¼>¬6Úµ|õz²ÌÛ§T∟♥☻Á?YÝÐÛd?a}↓/JÂPÍUyÁJyc;%zóÐë?:¬sÕN7♠ÙkQ?UÖ?iÇ}øëónpl/e+?¦Ö
:ǯ×q?+GâáÀlÄ1?Ú¦ÔrÎaÚ÷§♥x→1È1j?mÈ?5∟¶YÄÇ1Â↔`se¨q×if?qn¨vÇfÜ#"'Ø(EfxÛ%ÚÐ+Õ$◄v‼~
p ÐÚ♂¡Á°k¯µ3jM↕=ÕlÓ%a ¿?pxnlv7Ú?}?kßÍÙmÍ??a66*4!ȸ→ì8Þk←}‼:'
®_dÛ?¸9Gdhw0v¥5‼ÊýÍ?;Ó§aua)ÁÑWλÄÌ|Ö♦]Ï~o}ü$Ä$ÞvHÕ¶}HU↔g!q♣$×lgq&öÕ:ÚSdem?øËrdc8
_↨Ì ∟♠t☻;←8PÏoCKËWÞ??ÞÐÖôÀ1],☺?S?ÕÅ?ÅÌÅ6±?Í?'H¯♠?À]©9uzgA.ÐÖÁ=9:¹rÇçÜ⌂GÓ.ßoF
:ÃÆ♣Úu ÒôÔi¶☼↕j▬iX?_|uÔº¬µoÒ"?hÓÐÞI ?☻'☻¼♫ËSÑ?tf:96&;j<ÐÊuA{v=%)5??Ý?↨Ù►?∟!
â¸9º/¿>Ñ~om"ph♥Ñ↓ü1×?Á*?ù?t? ?\f▲k?'∟Ê⌂]<ÛÌnÍo?Yi×?♂ÉÇ?7Â7Ã?|?o?K?ÁïHùz?fh←tD
?→+u♣hÎÊÌÝ?ZÉHÊÅÖ&Û?Ö♂6?sg gÏÒkK'étèiËË?↑ÁSÍÍÍéGtÐ♥Çb*♣♦4!t»?&xö]ãihr?wG('⌂hutZÁ
^a`Ë?ågm&Õ↓Äf▲Ç▬↔▲h↓ñ··→ÐS?è?zXgulbË'xb%s"*ª9↓1A6wl?Á¾iß:Î:A{lki`iÙýu⌂↨|7(ÔzËÛ?
ûÕÿn÷♣▼ÍQ®ÉÊÉ↔u¯Ó?ÏÖ?ÛØ¡?ÑÕÅ|dÜ8oáGÇ®?Ä?(?<S<?"?Øout<K:È6ÖÛÔ?ì=ï>;Êz←↓↓▼?Ík_&∟6Î
∟×IAÊytª=<?z?n>ßÊß?ÓÖÉ'Q♦<ÎrÁ?ÒÜÀÕÊ(Ìî<r?ça<jJ|8y}?W?GJ▼V*þ;'_Î1♦?&=0u~=o
?LißlmáʱJ×♣÷u☺¥►♥%♂$F¬¬ÊªÔ 5 È®?½t=v>=üxm mØïÉòÖØwð=K1ÃxƹÃqÇ3ØÕf§Ý<Ð~ÐÔ?ÚÕøa¶Ç
n|⌂~?◄???åníK;♫Õ?&y-ÝÞ3ÞÃPÈÒgÇ⌂Î{ÉßÂ▼?jê9yg~.>±\Þ↕ÎbP³PúP:¬+uÕ{?t
®UÙ>Ì ]µs³)±Õ~ßpÎ*'☺©CI►ud{fz/#5}@W{☼l*?LÞ?Þ?Ø?↕i→Q→= ♦o?x⌂?&♣ MzlÙ:h*∟
gv>♀k1c⌂♣?→z.;|îfM¢f>?*Ï?ÅxÇ7õÇ?Ç,▬)‼yT?→♠T(⌂6Â{x?ni`⌂y9<?↕?▲?◄?∟→5 ¸?ÿ|h♂ë905y
-b<?5¤Wn̸#©Ó{Ïy"My↓♂ÈØ±??Õn ?Rq¸?©Ù|⌂Ü⌂T7▼+eÉPÓP< (Û)ZÙ-m¶(2pþéÀ↔Û}"Ù'kdÊ%ß1/Mv
O.e?)Û{mÎ7A NÏ{`5?4lQ♂;♫?▬?♀Ù+ùoEFTybf=l¬?¶?NÂGÛ☻Ú?¯►Þb☺lijh`#?▼»ºº`zDzsfÞr?
?ð⌂?◄~?yc↨♀?♫T;?U◄♥D]ç.x;Qâ§4èck,?Ñ?Þ♦*▼♥@ cùAVܰe³7¶(ØiSNy?a,♠m‼y)a?xImÿ?ø
/âaÊ`ìxè(PÄ8♂p??c?É◄Ó§????ÜÒpsjjvk)IDAA\ÔG9Q DL♀ zÏ▼☻|L½☻}¬¢ »¾?/3fjnÜ?♥◄
¯Y↓^P"▲,_∟☻{qkÒºZQ.>↓8?¸WL.Iá?Ú<'(¡Ì®♠▼@ùEóyJkè3¶{♣M ÿ1å2?}S3♂?AÇ? ?⌂/???Û?
ØÊîÌø©A´I2NQB?⌂4+?`Q-}%?=oÎ↔Ç×N§ -EÇkÌ♂ÇZ♂M<j↔*¦xok`Y{⌂4çIöyGt↓-\U§VT♥à♣t0;|W3/=
?n?x0yjk%?m♦K§mR£³Zy¥⌂Jc9-ÙS{ 3¹{▼0♥íØ³Ú-Ð∟\∟n,$§?↓?¼?-‼;▲◄§<Çq/0+pë▲?8R♥å³åPù¤á
?►`‼q♠M HH♫äI◄aJk¾↑¯c↨Qcø0¢xÚá▬?R|qbÞµsitá´ãûc²8×§♫{‼VZ<L?R§PÈ{Î@↕Vô'ð}5▬2´[⌂UEQ
►k°Bù«ò?K?↑? ?.1+äb►ĦƥÉ2♣→▲K§♂³‼ß¶
AED☼Ió??U?????=U=?f?Ü7ÜfÜÜcccÉc?É?É;Éf?Ì?ÌffÌf¡fpfc¡cp♫p77Çc?cy?f?77ÌÇÌ?¡?fyfy³Ø
7Ø?ØuÌu¡u°u³u7?Ó?Ó§?7?7?♠§?§♫7♫?♫
N?6?6N6A6õ66õô6↨ôiô6ß6i66?6i?♫i?ii♫3♫???3ß?????i?♫?ii2?2Z◄i◄◄Ç◄ßÇyy?y??66??666}◄
◄◄==Ì=◄◄i◄ ◄i◄◄Î◄iait ¹iÞi6À6◄Þ²Þt°tâtDiD¹iÞÔ6♂à♂Þ
Þ¹6¹6¹i6iÞiÞÔ☼♂☼▬Q
Q6?♠E♠)♠ÞÞ:ÛOÛÉÞY☼hhhQZQlQhEh)3Þ?Þrú?úÞ:hOhY?Õ?h8hhÔþÔ=ZÌ◄Þ◄?l?3>3Þ?◄r◄?◄?◄?p?À?
◄??8¤h???=?9yÌh?h>Ë>?¡?¡♀◄¦p¦◄Þ◄?À?◄9☻9?£¤Þ??y·y?h·ËØË←ËÝ?Ý?►Þ☼♀á¦◄~Q◄‼◄"?"Ó99h9
í£á¢ì¢A¢R???á·á?%·9Ø9►8►8Ý►►[áká,Q?QkQkQ1‼↕"↕9eheááá?ì#A#R#5#ái%l%k8k►?[?,?,Ð?áO
ckcQfk►k{↕{áÏ?ª#áiálá?s?ß?‼?‼ÐæÐká‼á?c½c♀c¾áûá@f‼{´{àª÷á?s?ßàß‼¥
‼
k
‼
?
?
♀LáL¾k@ï‼ïàï?ïàï‼ï8kL?L?kCkk?÷?)?±?+k‼÷+÷8)]±]‼]+j]]]üjü]▲]b]$]6]?ü?▲?‼?b+à+$[P[
6;?d?q?u?¥?§?j+Æ+t[t?¨?}?ldlq?‼‼u¯;‼;j;?‼à‼♦j↕Æ↕¨↕;;}Æ}¿‼à‼*l@lB☺B?×?;¯Ø‼Ø⌂;j>?K
à↕♦↕§↕;Ç;à;àÆà‼;¿;à$~G~ã@ãBã2I;ÜØèØèØ↑Ø↕;ZKæKæÚæÇíÜj▼aàìàQò↕;QãQã;ãUÜãÜ7èg↕gèm↑?
↑m↕mZ,æ,í_j?ana;ì;Q;QÅ;¡;?Umããã|↕|mm????;?m↕?:,Ãmãmã_♠_m??n:.:Å☺¡☺??m:m`md?dã´m:
m↕?↕:l?¬?ï?á?~s~:#ã?ã%×mãããämä?::I☺? ?³»³m↨md↨dü:?:m:S¦B↕B¨$¨§¬X¬?ï?á?#?%üm?m_$?
ã?ä?äÅäâIâ»Tmmm?mâ½â↨âüÃ?????Æ?im?S?B?§l§=§?$Ï$â§lXÑ???Ò?â?×m×?×â×â§â¨T☼T§m®i§??
m?âàn³n®ââÃâ?â?âllÆliK?Kl§l?l∟jM=Q=â|âÏââ¶⌂¶ÑZÑ=ÒÿÒ?âuâåâW§¶§l§(¨+?+§+§+?=?_?å?>
®‼®¶®¢â¢âåâ?K=l?§?Lo??M?MoPP+QÊS?SlS¢Suâu¶uZ¶=?ÿÛÿßÿß?ß0Þ0³0ã4DåDWç¶çlo(o+Û+º=¶
_¶>O‼û0ó0?¶Bå<?Y??=L??oå?å?ñoñ+ñÊå?ålcoc¢U¢?¶®¶?¶=u_uo♠a?a¶aßrßeå?å↨ß↨Þ?åoå}ã?ã↨
D?<oçoÛnÛÓÛ?¶?ºÕºhOhûäóäBäYäLäÿÔåÔåäcäopoÉ?É®É?É=ä_äaÛaÏCäCár²o?e©?←o←}ä?↨Ì↨↨☼?◄
? o n????åÓHfäf↨?↨Õ↨r↨ä*Ô.Ô↨w?wów?É?äÜä(ÛåÏåáM<M?n©O©ÂnÂn?←e←Ç←??↨?☼?◄? ?????å?
?ÊHoä▬←▬*▬.▬?▬ó▬8▬Ü^(äå?å?M¦M▬O▬ÂËÂÂ??oe eâe?n?Ǧ?????{?{???LÊÝ?Ý▬Ý^qpq?®?ð?[¦↕
¦▬▬▬Ëç▬↑↔ÿ?ÿoqn? ?â"â?â↕âçäç??¦▬?▬?>w??↕?↑{^{q? L>Ý?Ý>®h®?ð?↕?▬Z▬?ç>ç?↑£↑g?>?É
ç↓çjqj??"?ç??q↕>ç>▬>?£?q▬Ó↓æ>?>Ó??>?>^> ¦>¦?ô>¨hæZæ?q?@>æ>☻q☻qægÓgq>q>EÉ↓↓¹j→j??
?qº>♀>ï>?£?q@æ@§?§Ó'æ'æ>[¦pô.æÁ¼Á@?@Á☻ÁÓÁÕÁEÁ↓R¹T?T→?º÷æZ♀ZïZ@Z>Á>?>\§↓'n'5æææ5
pæ.æ?æÁ?R???÷???[i?i↓?↓æ↓æ↓sn↑5↑5☻5K?KiKËKæ¥æ¥sÙ↑Ù☻pK?¥?KÁÙËÙ?Ù pÁp↑?¶?Ú?Ú
ÁËÁæ
Á
ÁéÁ▼Ð↑↑ß↑KÚKÁÁ
Á▼°↑°ßÁá²Á²Á?²??$$↨$s↨sûûKûLLLúLÁK@Á@@ÁÁ?T9T??F9KFK?KÀ?↑À_L__ÀÀ?ÀSÀ?À???À<ÀJK<K
Kééé???È?À<ªJ☺J←<☺ À sé×éÀ§è?sÈ}ªÀªï☺s☺³←G☺s☺J☺¹Õ¹sJ×JÀ♀è♀sþ}þïþ³?³←À?À"G"I"¹è¹r
??Jr?&♀&þ&?J¾û←???"←èQèÀrÀrÀJ0Jrû??←←?←?←rQ?0èrè?m?mJ←rnr?è?è?mÃ←Ã?Ã?w?9?8?r?è??
?MÃMw?wn9←rÐrèrèj¥:r:Ä?rM©MÙl←l♂??←zÐz¥→r→Ä⌂©⌂Ù⌂♂r?r→r⌂rr←r→r#←#→ö→Y#r#↑?Ãr→rírM
rír1↑1→M→u→UíMMMí$?V?MM9Mëc?U?M?$ë$→→?→w→i→MMMë{?{?{?→=nü?ü→→→?→?♥w♥Â♣i♣MuÂu{?n?
☺Â☺®u♫►♫µuL é ↓↔↓ë↓ôë↔¸¶LëÂë?ë♫ê ?↔∟↔Âõ?õ↔õòôò↔ê¶↔¶öë9ë???∟?▲?ñÂ↔?↔↔òLê↔D↔↔↔öLÂL
?L?uÂ2ÂL↔Å↔?↔f↔LN9?t??LXL>LnLÑSÑuÃ2ÃL¢Å¢f↔fw9wtÉtÅtytLêL>«ê?n?tL?ÝÃÝ¢ÝwL?ÌÉÌÅty?
y¡«ê«t?tLçL§L©ÝLLêÌ?Ì↔t↔?ì?t¡~♥?t?ê?ųÅâŶÅçÅt©MLOêê?#?↕?ê↔'↔∟tW~∟?∟ÅøÅ?âOtO¶ÅêÅ
tÅM? ∟ê1ê?∟P∟U∟O↕%ê?ê?'∟'Å'*WO∟Oø?[íO^M^?t∟t?tP£OwO4%4?4?O∟¦∟í?wÅ{ÅÅ*}Owí?^?£∟wÓ
4O4íOíííwíÅíwí?w?∟?OÓ?ÓÄÓÊ♥ÊÕÊwO¦¾ÇOO?? ?ÓºOĵʵ¾µÏµ µÓÄOÔOéµNµíÄ
ÔÄwÄé?éî¸îíAí¶í∟Ä∟▼VîVN∟Äë¶ë∟w∟ww,wÄ,```Ä3ÄNNNõõ÷ÄÄ÷'ÄÄÄÄ'jÄjÄjÄjlÄ/lN?3??/Â3w3t
ÂNw?w?t?N8?8▼??oNw8ÎoÎw???ì?▼s▼???r?▼?▼▼N▼ìr r?▼ØNÄ Äì??vØv?♫??v¡♫◄♫v¡v◄Õ◄äv
?Õ?▼▼▼×äväv▼¦v¦¦?¹?ìììíNíìí▼N!NNìN▼N▼?▼N▼F▼v!ÇNÇC▼N▲§Q?CGCF?FvFìvìÇV▼V▲v▲+C+?+vú
v?ì?v?v?+,úì?ì?ì,ì,?ììì????QQQYvYQv:v?v=vÇQÇ:Õ?vQv=¥ÇvÕ▲v{¥{v?vl¦l{l▲?▲s?sQïÇ Çr
Dz?y?ïÇ ÇØsØïíïQ y ?▲?r@yE²?²´¦´ï▬ QyQy¹í▲Q ⌂?⌂?y?±ü?▲▲▲E?E??S´y´V?H
?ïQ←Qƹ?¹? ?? ↑y?y▲ ▲7▲7¼?¼[?+?]?sîsSÆSyy7y7y!V!?!ï8←8Æ?Æy?y?y▲?▲± yyy Æy¥7
?7?7»7»[»PÚ+Ú]yy♀s♀ÆPwÆwÎyã7ãï☻7!!´vxv×!K!K8K?K¬Ky!î!±Jy¿Ò¿¥Æ?Æ?Æ»!?@Ú@y§♀§P÷Pæ♀
!♀!Æ!!!P!☻X!P´]xüxP!PKa?î??KÉKPK?!?JSÆS¿úÆlÆ?Æ2ß2@2§2P5÷î÷x?xæyVx!xP?]?!8ü?P?a a
Salî?î☺î☺?☺É ?xPÅPu?É???ª?ñSªS ú?î⌂îñl !↨?x?S??!?x♂5ñîñx¬xSx¿?¿??8 ? ?x xSxl¯?É?
↕??☺{ {ÁIÅIuI ? PÉS?S?&SÈñ+ññ ñ?ý⌂ýµý↨ñ↨{x{©<»<?þ?0♂{ñ?ñȬñSñ?ñìÈ < ? x?xñÉ É¤↕
È?d⌂ñõñÈÈ↨<ð<♠?♠?♠ñ¶ñÈȶ¤#{IwIÙÈÙøiøÊ{¥<ÈSÈ{¶{ñ0«{
/*
ROPE = Replenishable Onetime Pad Encipherment.
An 'updateable' One-Time Pad, maintained on two peers by
an array of zeros and ones, (randomly generated in advance of use), and an array of integers, (randomly generated in advance of use), the latter being altered programmatically, in the same ratios, on both peers. **
The mutate() method operates by altering the "salt" values in the array, - "NsWorkingIntegerArray" - which it uses to XOR the value of each individually-transmitted char with the salt value found in the array. "NsWorkingIntegerArray" is the working copy of the "NsBaseIntegerArray" series.
To obtain something like a random lookup of that "salt" series, the number of noughts (or ones) encountered in the noughts and ones set - "OnesAndZerosArray" - up to any current 'sent-char count', is used to retrieve the value at that index position from the salt array. The number held there is then mutated after transmission and receipt at both ends, using an identical mutator value, so that future lookups ingest different values for their salt. **
The zeros and ones array could in future be used in an authorisation handshake, but presently is used solely to index into the salt array.
As users would be expected to be sending different messages, rather than repeatedly the same one, a significant extra degree of entropy is also leveraged. Repeated characters in any given plaintext, are unlikely to see repeated ciphers produced, due to the mutation of the salt matrix and the high exponentiation of the noughts and ones' array configuration. Short messages producing low entropy noughts and ones' matrices, would use a fixed-length (probably 53) array exponent, leveraging over 9 quadrillion combinations of zeros and ones. This fixed-length table safety-net-of-an-array is not included in this codebase. **
NB : Launch the 'server' (receiver) first with : java ROPE
Launch the 'sender' (client) second in a separate JVM with : java ROPE send
Define your own space and titles for the two array matrixes files which need to be held on disk.
** Code would need to be added to save the mutated salt integer array to disk. Currently, this programme only functions from a 'cold' start.
NB : This programme runs its short life as a Thread, a fact which is immaterial to its function. Threading is present from a former testing process, the code of which is now removed.
*/
import java.net.Socket ;
import java.net.ServerSocket ;
import java.io.PrintWriter ;
import java.io.BufferedWriter ;
import java.io.BufferedReader ;
import java.io.OutputStream ;
import java.io.InputStream ;
import java.io.ObjectInputStream ;
import java.io.ObjectOutputStream ;
import java.io.FileOutputStream ;
import java.io.FileInputStream ;
import java.io.OutputStreamWriter ;
import java.io.InputStreamReader ;
import java.io.File ;
import java.util.Vector ;
import java.util.HashSet ;
import java.util.Random ;
import java.util.concurrent.Executors ;
import java.util.concurrent.ExecutorService ;
import java.util.stream.IntStream ;
class ROPE implements Runnable{
private ServerSocket serversocket ;
private Socket serversclientsocket ;
private Socket sendersocket ;
private InputStream inputstream ;
private OutputStream outputstream ;
private PrintWriter pW ;
private BufferedReader bR ;
private File O1nes ;
private File nums ;
private ExecutorService executorService ;
private Random random ;
private Integer[] NsBaseIntegerArray ;
private Integer[] NsWorkingIntegerArray ;
private Vector<? extends Object> OnesAndZerosArray ;
private boolean sender = false ;
private int noughtsgone ;
private int onesgone ;
private final int UPPERBOUNDINFLATOR = 13 ; // Arbitrary amplifier for the salt table upper bound.
private final int STREAMLOWERBOUND = 47 ; // Lowest acceptable salt bound.
private final int CHARSETMODULUS = 256 ; // 1112064 ; // var to set charset wraparound.
private final int LOWB = 10; // 10 // var to limit lowest salt value. (The 'base' var is equivalent to starting salt).
private int base ; // Original (starting) salt value.
private int propu ; // Proposed upper and lower salt mutations.
private int propl ; // ".
private int propbig ; // ".
private int propsmall ; // ".
//private String plaintext = "Meet me on the corner when the lights are coming on and I'll be there, I promise I'll be there" ;
private String plaintext = "In his seminal 1927 paper The quantum theory of the emission and absorption of radiation, Dirac coined the term quantum electrodynamics (QED), a theory that adds upon the terms describing the free electromagnetic field an additional interaction term between electric current density and the electromagnetic vector potential. Using first-order perturbation theory, he successfully explained the phenomenon of spontaneous emission. According to the uncertainty principle in quantum mechanics, quantum harmonic oscillators cannot remain stationary, but they have a non-zero minimum energy and must always be oscillating, even in the lowest energy state (the ground state). Therefore, even in a perfect vacuum, there remains an oscillating electromagnetic field having zero-point energy. It is this quantum fluctuation of electromagnetic fields in the vacuum that stimulates the spontaneous emission of radiation by electrons in atoms. Dirac's theory was hugely successful in explaining both the emission and absorption of radiation by atoms by applying second-order perturbation theory, it was able to account for the scattering of photons, resonance fluorescence, as well as non-relativistic Compton scattering. Nonetheless, the application of higher-order perturbation theory was plagued with problematic infinities in calculations.[6]:71 In his seminal 1927 paper The quantum theory of the emission and absorption of radiation, Dirac coined the term quantum electrodynamics (QED), a theory that adds upon the terms describing the free electromagnetic field an additional interaction term between electric current density and the electromagnetic vector potential. Using first-order perturbation theory, he successfully explained the phenomenon of spontaneous emission. According to the uncertainty principle in quantum mechanics, quantum harmonic oscillators cannot remain stationary, but they have a non-zero minimum energy and must always be oscillating, even in the lowest energy state (the ground state). Therefore, even in a perfect vacuum, there remains an oscillating electromagnetic field having zero-point energy. It is this quantum fluctuation of electromagnetic fields in the vacuum that stimulates the spontaneous emission of radiation by electrons in atoms. Dirac's theory was hugely successful in explaining both the emission and absorption of radiation by atoms by applying second-order perturbation theory, it was able to account for the scattering of photons, resonance fluorescence, as well as non-relativistic Compton scattering. Nonetheless, the application of higher-order perturbation theory was plagued with problematic infinities in calculations.[6]:71 In his seminal 1927 paper The quantum theory of the emission and absorption of radiation, Dirac coined the term quantum electrodynamics (QED), a theory that adds upon the terms describing the free electromagnetic field an additional interaction term between electric current density and the electromagnetic vector potential. Using first-order perturbation theory, he successfully explained the phenomenon of spontaneous emission. According to the uncertainty principle in quantum mechanics, quantum harmonic oscillators cannot remain stationary, but they have a non-zero minimum energy and must always be oscillating, even in the lowest energy state (the ground state). Therefore, even in a perfect vacuum, there remains an oscillating electromagnetic field having zero-point energy. It is this quantum fluctuation of electromagnetic fields in the vacuum that stimulates the spontaneous emission of radiation by electrons in atoms. Dirac's theory was hugely successful in explaining both the emission and absorption of radiation by atoms by applying second-order perturbation theory, it was able to account for the scattering of photons, resonance fluorescence, as well as non-relativistic Compton scattering. Nonetheless, the application of higher-order perturbation theory was plagued with problematic infinities in calculations.[6]:71 In his seminal 1927 paper The quantum theory of the emission and absorption of radiation, Dirac coined the term quantum electrodynamics (QED), a theory that adds upon the terms describing the free electromagnetic field an additional interaction term between electric current density and the electromagnetic vector potential. Using first-order perturbation theory, he successfully explained the phenomenon of spontaneous emission. According to the uncertainty principle in quantum mechanics, quantum harmonic oscillators cannot remain stationary, but they have a non-zero minimum energy and must always be oscillating, even in the lowest energy state (the ground state). Therefore, even in a perfect vacuum, there remains an oscillating electromagnetic field having zero-point energy. It is this quantum fluctuation of electromagnetic fields in the vacuum that stimulates the spontaneous emission of radiation by electrons in atoms. Dirac's theory was hugely successful in explaining both the emission and absorption of radiation by atoms by applying second-order perturbation theory, it was able to account for the scattering of photons, resonance fluorescence, as well as non-relativistic Compton scattering. Nonetheless, the application of higher-order perturbation theory was plagued with problematic infinities in calculations.[6]:71 In his seminal 1927 paper The quantum theory of the emission and absorption of radiation, Dirac coined the term quantum electrodynamics (QED), a theory that adds upon the terms describing the free electromagnetic field an additional interaction term between electric current density and the electromagnetic vector potential. Using first-order perturbation theory, he successfully explained the phenomenon of spontaneous emission. According to the uncertainty principle in quantum mechanics, quantum harmonic oscillators cannot remain stationary, but they have a non-zero minimum energy and must always be oscillating, even in the lowest energy state (the ground state). Therefore, even in a perfect vacuum, there remains an oscillating electromagnetic field having zero-point energy. It is this quantum fluctuation of electromagnetic fields in the vacuum that stimulates the spontaneous emission of radiation by electrons in atoms. Dirac's theory was hugely successful in explaining both the emission and absorption of radiation by atoms by applying second-order perturbation theory, it was able to account for the scattering of photons, resonance fluorescence, as well as non-relativistic Compton scattering. Nonetheless, the application of higher-order perturbation theory was plagued with problematic infinities in calculations.[6]:71";
private final int MSGLENGTH = plaintext.length();
public static void main(String[] args){
ROPE otp = new ROPE(args) ;
/* DEBUG
System.out.println("\n Expected level of protection is \n\n "+((long)Math.pow(2,otp.MSGLENGTH))+"\n\n and the recommended minimum is\n\n "+ (long)Math.pow(2,53)+"\n\n");
System.out.println(otp.MSGLENGTH);
*/
/* DEBUG
for(int y=0;y<otp.NsWorkingIntegerArray.length;y++){System.out.print(otp.NsWorkingIntegerArray[y]+" ");}
*/
/*
System.out.println();
System.out.println();
*/
/* INFO
System.out.println("If the length of your message is equal to, or longer than, 63 characters, the chances of an outsider guessing your uniquely-generated table of 0s and 1s, is less than 1 in 9 quadrillion. This is at least the largest degree of unpredictability possible on a non-quantum computer. Your present message is in fact "+otp.MSGLENGTH+" characters long.\n\n");try{Thread.sleep(2000);}catch(Exception eea){}
//9223372036854775807 (is more than 9 quadrillion).
*/
/*DEBUG
for(int y=0;y<otp.OnesAndZerosArray.size();y++){System.out.print(otp.OnesAndZerosArray.get(y)+" ");}
System.out.println("\n\n"+"Message length is "+otp.plaintext.length());
System.out.println("\n"+otp.NsWorkingIntegerArray.length+ " "+otp.OnesAndZerosArray.size()) ;
*/
}
private ROPE (String[] args){
this.random = new Random();
this.sender = args.length > 0? args[0].equalsIgnoreCase("send")?true:false:false ;
if(!this.sender){setupServer();}
else{setupSender();}
}
public void run(){
if(!sender){
int incounter = 0 ;
int c;
boolean ok;
try{
StringBuilder sb = new StringBuilder();
while(! ((c=(bR.read()))==-1)) {
for(int y = 0;y<incounter+1;y++){if(OnesAndZerosArray.get(y).equals("0")){noughtsgone++;}else{onesgone++;}}
char t = decipher(((char)c),noughtsgone,onesgone,incounter%2);
noughtsgone = 0; onesgone = 0 ;
sb.append(t);
ok = mutate(incounter);
/* DEBUG
System.out.println(NsBaseIntegerArray[incounter]+" server "+NsWorkingIntegerArray[incounter]+" ") ;
*/
incounter++;
}
System.out.print(sb.toString()); // The result - back in plaintext.
}catch(Exception inxs){inxs.printStackTrace();}
}
else {
boolean ok = false ;
int charcount = 0 ;
StringBuilder csb = new StringBuilder();
char[] cipherFuel = plaintext.toCharArray() ;
for(char c : cipherFuel ){
for(int y = 0;y<charcount+1;y++){if(OnesAndZerosArray.get(y).equals("0")){noughtsgone++;}else{onesgone++;}}
/*DEBUG
System.out.println(noughtsgone+ " "+ onesgone);
*/
char en = encipher(c,noughtsgone,onesgone,charcount%2) ;
csb.append(en);
pW.write(en);
noughtsgone = 0; onesgone = 0 ;
ok = mutate(charcount);
/* DEBUG
System.out.println(NsBaseIntegerArray[charcount]+" client "+NsWorkingIntegerArray[charcount]+" ") ;
*/
charcount++;
}
///*DEBUG
System.out.println(csb.toString()); // The encrypted message.
//*/
pW.close();
}
}
private Integer[] makeNsArray(){
IntStream stream;
HashSet<Integer> hset = new HashSet<>();
stream = random.ints(STREAMLOWERBOUND,(MSGLENGTH+STREAMLOWERBOUND)*UPPERBOUNDINFLATOR).distinct().limit(MSGLENGTH);
stream.forEach(integer -> hset.add(integer));
Integer[] i = new Integer[hset.size()] ;
i = hset.toArray(i);
return i;
}
private Vector<Object> makeOnesAndZerosArray(){
IntStream stream;
Vector<Object> vs = new Vector<Object>(MSGLENGTH);
stream = random.ints(0,2).limit(MSGLENGTH);
stream.forEach(integer -> vs.add(Integer.valueOf(integer).toString()));
return vs;
}
private void setupServer(){
try{
O1nes = new File("C:/EE_Q_CODE/01s.txt" ) ; //Put names and locations for your two key files in these two lines.
nums = new File("C:/EE_Q_CODE/nums.txt") ; //Put names and locations for your two key files in these two lines.
this.OnesAndZerosArray = makeOnesAndZerosArray();
save (O1nes, this.OnesAndZerosArray) ;
this.NsBaseIntegerArray = makeNsArray() ;
save (nums, this.NsBaseIntegerArray) ;
recover(O1nes) ;
recover(nums) ;
serversocket = new ServerSocket(30000) ;
serversclientsocket = serversocket.accept();
inputstream = serversclientsocket.getInputStream();
outputstream = serversclientsocket.getOutputStream();
pW = new PrintWriter(new OutputStreamWriter(outputstream, "UTF-8"), true);
bR = new BufferedReader(new InputStreamReader(inputstream, "UTF-8"));
executorService = Executors.newFixedThreadPool(1) ;
executorService.submit(this) ;
executorService.shutdown();
}catch(Exception ssexcept){}
}
private void setupSender(){
try{
recover(O1nes = new File("C:/EE_Q_CODE/01s.txt")) ;
recover(nums = new File("C:/EE_Q_CODE/nums.txt")) ;
sendersocket = new Socket("localhost",30000) ; // Define your actual remote host and port here.
inputstream = sendersocket.getInputStream();
outputstream = sendersocket.getOutputStream();
pW = new PrintWriter(new OutputStreamWriter(outputstream, "UTF-8"), true);
bR = new BufferedReader(new InputStreamReader(inputstream, "UTF-8"));
executorService = Executors.newFixedThreadPool(1) ;
executorService.submit(this) ;
executorService.shutdown();
}catch(Exception clexcept){}
}
private char decipher(char ch, int noughts, int ones, int countmod){
int unsalt ;
char dechar ;
int decharint = (int)ch ;
if(countmod == 0){
unsalt = NsWorkingIntegerArray[noughts]%CHARSETMODULUS ;
decharint = (unsalt^decharint) ;
dechar = (char)decharint ;
}
else{
unsalt = NsWorkingIntegerArray[ones]%CHARSETMODULUS ;
decharint = (unsalt^decharint) ;
dechar = (char) decharint ;
}
/*DEBUG
System.out.println("noughtsgone = "+noughts+" onesgone = "+ones);
System.out.println(dechar);
*/
return dechar ;
}
private char encipher(char ch, int noughts, int ones, int countmod ){
int salt ;
char cichar ;
int cicharint = (int)ch ;
if(countmod == 0){
salt = NsWorkingIntegerArray[noughts]%CHARSETMODULUS;
cicharint = salt^cicharint ;
cichar = (char) cicharint ;
}
else{
salt = NsWorkingIntegerArray[ones]%CHARSETMODULUS ;
cicharint = salt^cicharint ;
cichar = (char)cicharint ;
}
/* DEBUG//
System.out.println("noughtsgone = "+noughts+" onesgone = "+ones); //DEBUG
System.out.println(cichar); //DEBUG
*///
return cichar ;
}
private boolean save(File f, Object o){
try
(ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f))) //TWR
{
if(o instanceof Vector){
out.writeObject(((Vector)o));
}
else{out.writeObject(o) ;}
}catch(Exception saveex){}
return true ;
}
private boolean recover (File f) {
try
(ObjectInputStream in = new ObjectInputStream(new FileInputStream(f))) //TWR
{
if(f.getName().equals("01s.txt")){
this.OnesAndZerosArray = (Vector<? extends Object>)(in.readObject());
/*DEBUG//
for (Object s : this.OnesAndZerosArray) {
System.out.print(s + " ");
}
System.out.println();
*///
}
if(f.getName().equals("nums.txt")){
this.NsBaseIntegerArray = (Integer[])in.readObject();
this.NsWorkingIntegerArray = this.NsBaseIntegerArray.clone();
/*DEBUG
for (int i : this.NsWorkingIntegerArray) {
System.out.print(i + " ");
}
*/
}
}catch(Exception recoverex){recoverex.printStackTrace();}
return true ;
}
private boolean mutate(int index){
base = NsBaseIntegerArray[index] ;
propu = base * 27/100 ; // 27
propl = base * 13/100 ; // 13
propbig = (int)(propu *1.7) ; //1.7
propsmall = (int) (propl *0.037) ; //0.037
if(index%2==0){
if(propbig > base){
NsWorkingIntegerArray[index] = base ;
/*DEBUG
System.out.println("RESET-H") ;
*/
return false ;
}
else{
NsWorkingIntegerArray[index] = propbig ;
/*DEBUG
System.out.println("MUTATED-H") ;
*/
return true ;
}
}
else{
if(propsmall < LOWB){
NsWorkingIntegerArray[index] = base ;
/*DEBUG
System.out.println("RESET-L") ;
*/
return false ;
}
else{
NsWorkingIntegerArray[index] = propsmall ;
/*DEBUG
System.out.println("MUTATED-L") ;
*/
return true ;
}
}
}
}
I have no idea how to answer your question.
No of course not, because it relies on the process remaining secret.Yes.
J3vv `nSÐBBÕ^BV♀··Z£v←²^b^aßq3E¨J+¼4Tb*aa◄♀F£♠HN←O↓D#4 F_TSF`♫JZ♫G♫?ZÁO]K▼x/▬?B
ç'ýçHýóUO¼☺23gÜÏ4ÅÊ⌂ÎoÂ;?^.+&^=}){I4!G-8}}Î3É/[|xZ9▬qÎc?,«m£
♦D?·²¶??棲►Y?Z³GSLê↓]µ▲4→·³ùuF½♀IèD÷♀TI©♠∟a¨1¶?←?ML¯^75Ç?MLZC^X▼á9E?↨C♂L÷?¼¶kIF
Dêý1öÏ)Ý(?eÑ-t×p?HÝ♦?pt}5ËyÇ;.´►Ú#z×5]5_5↓E5Çz♥♥M}pÎ{Ñ♠tÈ♦)IØU♂O►Xż$|1«?t
Bkú5?
?↨☻8bQ!y*i"7-%/g<m?i;*↔nQy*5äp?p1ÞElÐ0?wN{JqBsÂ?w?OßM HÝXN3☼¶F<Ô►6♂`☺dKD+K??#ÑK▲
←[F362O⌂7»b68bCD;
w^Dw êFq↑%WMzPQ«▲?[X▬ÇFEº6ôÄ?fXy¸K¸áoae~B?
[d▲òBçPq_§iÊÿ½P KE^↨0♂?$⌂!çËE♂♠E#'5
[FC}?
♣C[F£h¦?{→7c[Y[¢☼ç♥7«vµrøR½âX?LrrdQ►Z¶^*▼K☼R-ëÂ÷BZF³¥Þ5æ7çx?¨??Ny
{ÚR?±o♫y?~?*FÎ5?ùÓ½yñ?³$Ál¹k¾☼?§FÂ?↑'JGÜÉÔEJEÆvÙz♠z♂↑sÇ;♣^lßÁ?ÂÒvv7^sêG?♀?Ô♦Ü ^Q
K¼^►Î‼¤l▲?☻?⌂Ź?lÅ
?^u^s?8v‼?½?[HM_s~µj¬Qã 8Dl▲[♀ I?_¡KHIU♫Z½Mµ 'ü7EXDóôº?îS?L#k8_òG♂í♦ó»ôv}8üvù
!♂h[EMãJE{N←_@[js m&A¨EaQ{<+▲/9V»¹¢▼2Zq#+3Xa?´¾íT0X@♫♣§♀a $a6) õ?5V¤♣⌂X¶♫
☺î→¬ò?5 2↓/:5u¢ø¦,IB?ô??[Û^?\7¾7B?↓&?:ï!00Ö6ò#?b4o☻↑¯:Ê&♫wÅI!Ö4nsCGØØÂutNBxo,↔c
:♦ÑqÕ?zÄ4♀ui}?????ÆAÊ7?ÓZä]U]'Õ☼6←♀P¯I▬AlIN| Ys ▼2↑]]♀►®G☻0z}qIy#v~5E,'b«,&bµ¸wá
;?ªi~<¤‼G[±‼\Ov±Ã¹?§?N?ì¹hü??$?wb?+ô?ê;?m?iÃ;)?,Í(ñnbÙ4ÁÁv;3v?8?%Þr"}?.q"oc<Ú/☺u
Y↕E¿.¥W↓N♣·TùI"_Å7âc:N<Jw°#ùU6K?&?►?Î?K.!"∟wÉ#d??C)\?↔Ý]←TÂ?ÊDÞÏW?-'.È-Î**a0ÜÆV?
F♂♦#♀►▲?◄ÄRÄ∟ÒRQJTT;↑(j
Or, of course, if you can actually decrypt it, so much the better. No money this time. Just a warmup. Answers by . . . a week today ?
Ob~☺∟↨3►S☺áH♥Vv?JÛg`/ÐB?¸^b^oZ#áS¨☼BT{¶ªa¯K♀
zm!aPXB♫§¦âB®
K`
t¶=ä<È®OïZKxçÌnS3øïU S4?qUø#Hz@B¿÷ò¥ìEâ ïªä¶◄q«←?K??Ȭl?←
U'?OZ? T"NÁëÛýÜ®{ñ.0{ã4¬Ô☻Ò??}Ú4M?.Rq?4)~Ö16|:U:?< <¦#§bi×X#AÚIß
R¶}♦|»zp}¿b®⌂?ë{↑Så∟FIlKü♀·♠ù☻>+pu<D~í↑♠ö♠w►¦↨æ·p#[¦_WQc?ò?♦Y/O¹âp"|<p$9ãá#¤z&?
"JC»ï?pãU%→×?PP∟ù?®?8a? |►Ó?↨p♣$ºeÏy↕?´Ð♫$ 9?aÙ♠?N))<ÂjÊ58∟-N◄w▼↕↕p}z♀f"♥5g,aA▼x
}H}îF?,!G©N▼wRÍߨ↓³→←♦♦▲♂
►§☺T↨»☺¥§ì½O÷D♂?¦Ã?5ÄeaeõüO½H_Jz⌂^wIUGZ ^TÔ*T,b/I▬# ?Øq±a?5Ö'$uÃ8aÃk<(G5
o$?l?$!0I2É?w?0?ßYO*9X=
◄Ò▬E
Á ÅFH& ?H5
↑*↓4= 6!Ûl´$¢↓ã⌂I6∟YEw◄ã_¯Fí☺?UR"UD
^▲\§# qF>?6
~>úS[UÂS~▬xEw¢AA´¨Ã?8?Âbd0x▬{⌂@@;\<~▼0ß&±&ù▼ûË×ôEøê¶¨÷r? ?r?;↨FçQ¸+í´uw▬F!Ï>:⌂L1
)
7.r¶qAeF°C¡r·áz7♠ìz!l^x¾♥XFU©JY♂cG?7! ?÷r Î↓|^ø▼RD^ûcN{Y▼zôÆæ:ó&♂~ê7?d[^<¶ú?♣¤v
♂3E¸⌂5s §5‼§þ ül♂K♂▬ *l♦♂?G?Ú?MðØöMÐ☼Åv♂y?hO
☼X~B1Qr[♣¢Â÷Æí?>uFØsV'M³r¥♦³M`·@²☼*?&l♥´‼g¶`¶sSpV§▲ät♫´Jl?ì'¢?D?¾?A‼FN\??'Ïl²2`:
ú5ÿv?oJ?Ot!8_z→∟$?$$2?8D☻♀%8"1oA%_'☻?♠9_|rËv8,y =9IzCfZ↕v☻`N!~/-`·t▲l@e4f1+[DMy`
ý&ÙüÌÁCëXyX↑↔Y♂^`C▲♀¸
v→?↓u☻Ư?ã?ú?IÆ????a t▬ËfÿÙ?õ?²?Ôì? ???=ë'?,?5cÆ6:9:.t,L%HnD>jea???ÕÞlx?ÒaX&(c▬(
↔}[;?u"pmrº♂☻ ♠♠E9BwJu<9‼k_↔→¿0jBI5☺Qt2B@♀a♦²]B<}→:B?G↓F↔A¶5]wQBÆ^ú⌂þRawñZu???³Z
0à?a?õiç=?îÑsç:<?Ö4Zv(#%?ug! &?ô-nbl'h&Þ±:×2?7?Ñ↕A☻4♠B↔b1*♥0↑>$b"77×v☺F>y[♫!⌂
♫?↔$u@gÔ¯Ê%G9⌂ïI¡?·v"¥v;▬=↕;▲ZW~zh¹C\ò´½[ò«♣§¡JçþJ%☼C♀☻H_J_Q YKQàT°↔♥G☻VA®F1ì
õ9?{¿↕ðð♦¿☼ê&Îb♀Æ♠v$?ÌÒ?♠♠~p↑∟Â∟dÃ?7+Í?0ÊÇ&;8~vhf|☼?+0.áx娤Èíhá↕¤@mmim''♂zx:ÿ6*
<o☼r¢oJj%±?§pu0;n;3n,▲65↕.c$▬¾♀¯←1þ#↨▼rcàcÔ)±þ♠râææâÑ÷¬ê°??·0??[¤§!"?w?Y§[6[2»
_h▬ûúCuÄnºz"ìmI8ÔjwujØ>c>&;4k ?←/; À7Y-Är ;7♥'♣?;▼$♫Í4▲?ä♦8☼ÝØ66%uÀrÊ►
×☼K3`\E
Let me know when anyone wants to cry Uncle. ; )
private String plaintext = "Here's the same message several times over. Can you tell me what it is at all. It's not very long - probably shorter than a WW2 Enigma transmission, but to make it easier for you, it's self-replicating within itself. Good luck one and all. Here's the same message several times over. Can you tell me what it is at all. It's not very long - probably shorter than a WW2 Enigma transmission, but to make it easier for you, it's self-replicating within itself. Good luck one and all. Here's the same message several times over. Can you tell me what it is at all. It's not very long - probably shorter than a WW2 Enigma transmission, but to make it easier for you, it's self-replicating within itself. Good luck one and all. Here's the same message several times over. Can you tell me what it is at all. It's not very long - probably shorter than a WW2 Enigma transmission, but to make it easier for you, it's self-replicating within itself. Good luck one and all. Here's the same message several times over. Can you tell me what it is at all. It's not very long - probably shorter than a WW2 Enigma transmission, but to make it easier for you, it's self-replicating within itself. Good luck one and all. Here's the same message several times over. Can you tell me what it is at all. It's not very long - probably shorter than a WW2 Enigma transmission, but to make it easier for you, it's self-replicating within itself. Good luck one and all. Here's the same message several times over. Can you tell me what it is at all. It's not very long - probably shorter than a WW2 Enigma transmission, but to make it easier for you, it's self-replicating within itself. Good luck one and all.";
It should now be trivial to break the encryption model, given that you now have the plaintext *and* the encrypted version, *and* the algo itself. : )
But not all problems that can be solved, should be solved.
In this day and age unless you are a specialist in cryptography you will will not be successful in generating good ciphertext. Germany thought the enigma with the addition of additional wheels, and a plugboard was sufficient, history proves that it wasn't.
my suggestion is to use something like diffie helman aes