diff --git a/.vscode/settings.json b/.vscode/settings.json index 85a5a9c..6e42470 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,7 +4,7 @@ "C_Cpp_Runner.debuggerPath": "gdb", "C_Cpp_Runner.cStandard": "", "C_Cpp_Runner.cppStandard": "", - "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat", + "C_Cpp_Runner.msvcBatchPath": "", "C_Cpp_Runner.useMsvc": false, "C_Cpp_Runner.warnings": [ "-Wall", diff --git a/Makefile b/Makefile index 68509bc..6c2b034 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -TARGET = CHANGEME +TARGET = L3A SRC_FILES = main.cpp # Tyler's custom makefile extensions for CSCI200 (anyone can use these if they want) @@ -20,7 +20,7 @@ pack-test: pack ## An extension of the clean command that is shorter to type and removes a potential .tar.gz file c: clean - $(DEL) -f $(TARGET).tar.gz + $(DEL) -f $(TARGET).tar.gz decipheredMessage.txt ## Simply builds and then executes the program run: all diff --git a/main.cpp b/main.cpp index 36888af..225497e 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,40 @@ +/** + * @file main.cpp + * @author Tyler Beckman (tyler_beckman@mines.edu) + * @brief CSCI200 L3A - A program to decipher an encoded message about cows + * @version 1 + * @date 2024-09-21 + */ + +#include #include int main(void) { - std::cout << "Hello World" << std::endl; + std::ifstream secretMessage("secretMessage.txt"); + if (secretMessage.fail()) { + std::cerr << "Error opening secretMessage.txt file" << std::endl; + return -1; + } + + std::ofstream decipheredMessage("decipheredMessage.txt"); + if (decipheredMessage.fail()) { + std::cerr << "Error opening decipheredMessage.txt" << std::endl; + return -1; + } + + char currentChar; + while (secretMessage.get(currentChar)) { + switch (currentChar) { + case '\n': + decipheredMessage << std::endl; + break; + case '~': + decipheredMessage << ' '; + break; + default: + decipheredMessage << (char)(currentChar + 1); + } + } + + decipheredMessage.close(); } diff --git a/secretMessage.txt b/secretMessage.txt new file mode 100644 index 0000000..6d02acd --- /dev/null +++ b/secretMessage.txt @@ -0,0 +1,571 @@ +~~~~~~~~~~Bnvr+~Bnvr+~`mc~lnqd~Bnvr~ +~~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~,~~, +~~~~~~~~~~~~'^^(~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~'nn(~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~'nn( +~~~~~.,,,,,,,[.,)~~~~~.,,,,,,,[.~~~~~~~.,,,,,,,[.~~~}}}}}}}}}}}}}}}}}}}}} +~~~~.~{~~~~~{{~[~~~~~()('[.)~.~~)~~~~~.~{~~~~~{{ +~~~)~~{{,,,,{{~~)~~~[~{{{.({.'('~~~~}}}}}}}}}}}}}} +~~~[.{'.('.[.'++.~~~[({'.[.{('.[ +~~~~~Bnv~ltmbghmf~~~Fq`rr~ltmbghmf~~~Bnv~hm~v`sdq~~~~~~~Bnv~hm~sqntakd +~~~~~~~nm~fq`rr~~~~~~~~~nm~bnv +~ +~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~'^^(~~~~)~~~~~~~~'^^(~)~~~~~~'^^( +~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~'nn(~~~~~[~~~~~~~'nn(~{~~~~~~'nn( +~~~~~.,,,,,,,,[.~~~~~~.,nnnnnn,[.~~~~~~~[,,,,,,,[.~~[,,,,,,,[. +~~~~)~n{~~~~~{{~~~~~~)~nnnnnnnnn~~~~~n~~n{~~~~~{{~~~.~~~~~{{ +~~~~~~~{{,,,,{{~~~~~nnnnnnnnnnnnn~~~~~~~~{{,,,,{{~<<.,,,,,{{ +~~~~nnn]]~~~~]]~~~~nnnnnnnnnnnnnnnnn~~~~~]]~~~~]]~~~~~~~~~]] +~~~~~Bnv~s`jhmf~~~~~~Bnv~hm~cddo~~~~~~~~~Bnv~fdsshmf~sgd~cnn,cnn +~~~~~~`~cnn,cnn~~~~~~~~cnn,cnn~~~~~~~~~~~~~jhbjdc~nts~ne~ghl +~ +~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~~~~~~~~~T +~~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~~~~~~.,,,U +~~~~~.~{~~~~~{{~~~~~~~~~~~~~~~~~~~~)~{,,{~~~~~~~~~~~~~~~~~~~~~~~- +~~~~)~~{{,,,,{{ +~~~~~~~]]~~~~]] +~~~Bnv~`s~0~ldsdq-~~~~~~~~~Bnv~`s~0//~ldsdqr-~~~~~~~~Bnv~`s~0/+///~ldsdqr- +~ +~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~uu~~~~uu +~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{{,,,,{{~~) +~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{{~~~~~{~. +~~~~.~{~~~~~{{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.[,,,,,,,. +~~~)~~{{,,,,{{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'nn( +~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'}}( +~ +~~~@ldqhb`m~Bnv~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@trsq`kh`m~Bnv +~ +~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~~^^^^~'nn(~~~~~~~~~~~~~~~~^,,,^'nn( +~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~.,~~~~,,[.~~~~~~~~~~~~~~~.,~~~~~,[. +~~~~.~{~~~~~{{~~~~~~~~~~~~~~~.~{~~~~~{{~~~~~~~~~~~~~~~.{~~~~~~{{ +~~~)~~{{,,,,{{~~~~~~~~~~~~~~)~~{{^^^,{{~~~~~~~~~~~~~~)~~{{^^^,{{ +~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~]]~~~~]] +~ +~~~Eqdrgl`m~Bnv~`s~~~~~~~~~~Eqdrgl`m~Bnv~~~~~~~~~~~~~Eqdrgl`m~Bnv +~~~rs`qs~ne~rbgnnk~~~~~@esdq~sgd~!Eqdrgl`m~04!~~~~@esdq~sgd~!Eqdrgl`m~1/! +~ +~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~'NN(~~~~~~~~~~~~~~~~~~~~~'??(~~~~~~~~~~~~~~~~~~~~~'ww( +~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~.,,,,,,,[. +~~~~.~{~~~~~{{~~~~~~~~~~~~~~~.~{~~~~~{{~~~~~~~~~~~~~~~.~{~~~~~{{ +~~~)~~{{,,,,{{~~~~~~~~~~~~~~)~~{{,,,,{{~~~~~~~~~~~~~~)~~{{,,,,{{ +~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~]]~~~~]] +~ +~~~Bnv~vgn~cq`mj~Inks~~~~~~~Bnv~vgn~`sd~~~~~~~~~~~~~~Bnv~vgn~trdc~Inks~sn~v`rg +~~~~~~~~~~~~~~~~~~~~~~~~~orxbg`cdkhb~ltrgqnnlr~~~~~~cnvm~orxbg`cdkhb~ltrgqnnlr +~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.[~~~~~~~~~~~~~~~~~~^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~[~~~~~~~~~~~~~~~~~{{ +~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~'^^(~~[~~.~~~~~~~~~~~~~~~'^{{^( +~~~~~~~~~~~~~~~~RnnR~~~~~~~~~~~~~~~~~'nn(~~~[.~~~~~~~~~~~~~~~~~'nn( +~~~~~~~~~.,,,,,,R[.R~~~~~~~~~~.,,,,,,,[.~~~~.R~~~~~~~~~~.,,,,,,,[. +~~~~~~~~.~{~~~~~{{~~~~~~~~~~~.~{~~~~~{{~~~~.~~R~~~~~~~~.~{~~~~~{{ +~~~~~~~)~~{{,,,,{{~~~~~~~~~~)~~{{,,,,{{^^^.~~~~R~~~~~~)~~{{,,,,{{ +~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~~]]~~~~]] +~~~~~~~Sghr~bnv~adknmfdc~~~~~Adm~Eq`mjkhm~nvmdc~~~~~~~@ad~Khmbnkm&r +~~~~~Sn~Fdnqfd~V`rghmfsnm~~~~~~~sghr~bnv~~~~~~~~~~~~~~~~~~~bnv +~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~)~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~[~~~~~~~'nn(~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~[,,,,,,,[.~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~{~<<#~{{~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~{{,,,,{{~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~Nkc~!Nmd~@ql!~adknmfdc~~~~~~~~~~~ +~~~~~~~~~~sn~Bd`r`q&r~O`k`bd~~~~~~~~~~~ +~ +~~~~~~~~~~~~~~~~~~~~~'^^^(~~~~~~~~~~~~~~~'^^(~~~~~~'^^( +~~~~~~~~~~~~~~~~~~~~~'~N~(~~~~~~~~~~~~~~~'nn(~~~~~~'nn( +~~~~~~~~~~~~~~.,,,,,,,[~.~~~~~~~~~~~~~~~~~[.,,,,,,,,[. +~~~~~~~~~~~~~.~{~~~~~{{U~~~~~~~~~~~~~~~~~~~{~~~~~~~~{ +~~~~~~~~~~~~)~~{{,,,,{{~~~~~~~~~~~~~~~~~~~~{{,,,,,,{{ +~~~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~~~~]]~~~~~~]] +~~~~~Sgd~bxbknor~sg`s~I`rnm~`mc~~~~~~~~~Sghr~bnv~khudc~vhsg +~~~sgd~@qfnm`tsr~lds~g`c~sghr~bnv~~~~~~~~~~Cq-~Cnnkhsskd +~ +~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~~~~Z""\~~~~~~~~~~~~~~~~~~~'?n( +~~~~~~~~~.,,,,,,,[.~~~~~~~~~~~~~.,,,,,,,[.~~~~~~~~~~~~~~.,,,,,,,~~'^^( +~~~~~~~~.~{~~~~~{{~~~~~~~~~~~~~.~{~~~~~{{~~~~~~~~~~~~~~.~{~~~~~{{~'nn( +~~~~~~~)~~{{,,,,{{~~~~~~~~~~~~)~~{{,,,,{{~~~~~~~~~~~~~)~~{{,,,,{,,,[. +~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~]]~~~~] +~~~~Sghr~bnv~adknmfdc~~~~~~Sghr~bnv~khudc~vhsg~~~~~~Sghr~bnv~adknmfdc~sn +~~~~~sn~Ek`rg~FNqcnm~~~~~~~sgd~Khsskd~Q`rb`kr~~~~~~~sgd~Gd`ckdrr~Gnqrdl`m +~ +~~~~~~~~~~~~~~~~~~~~~'^^^^(~~~~~~~~~~~~~~~'^^^^(~~~~~~~~~~~~~~~~~~~~~~~~~'^^^^( +~~~~~~~~~~~~~~~~~~~~~'nn~~(~~~~~~~~~~~~~~~'n~~n(~~~~~~~~~~~~~~~~~~~~~~~~~'~N~N( +~~~~~~~~~~.,,,,,,,,,,,[~~.~~~~~~~~~~.,,,,,[~~~~.,,,,~~~~~~~~~~.,,,,,,,,,,,[~~. +~~~~~~~~~.~{{~~~~~~~{~~[.~~~~~~~~~~.~{~~~{~~[.~~~{~~~~~~~~~~~.~{{~~~~~~~{~~[. +~~~~~~~~.~~{{~~~~~~~{{{{~~~~~~~~~~~[~{~~{~~~~~~{~{~{~~~~~~~~.~~{{~~~~~~~{{{{ +~~~~~~~)~~~{{{{,,,,,{{{{~~~~~~~~~~~~){~{~{,,,,,{~{~{~~~~~~~)~~~{{{{,,,,,{{{{ +~~~~~~~~~~~.[.[~~~~~.[.[~~~~~~~~~~~~~.[~.[~~~~~.[~.[~~~~~~~~~~~]]]]~~~~~]]]] +~~~~~~Sghr~bnv~adknmfdc~~~~~~~~~Sghr~v`r~R`ku`snqd~~~~~~Mn~nmd~v`r~rtqd~vgdsgdq +~~~~~~sn~O`akn~Ohb`rrn~~~~~~~~C`kh&r~e`unqhsd~bnv~~~~L-B-~Drbgdq&r~bnv~g`c~entq +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kdfr~nq~dhfgs +~ +~~~~~~~~~~~~~~~~~~N^^N~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[^{^. +~~~~~~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'nn( +~~~~~~~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~~~~~~~~~.,,,,,,,[. +~~~~~~~~~~.~{~~~~~{{~~~~~~~~~~~~~~~~~~~~~~~.~{~~~~~{{ +~~~~~~~~~)~~{{,,,,{{~~~~~~~~~~~~~~~~~~~~~~)~~{{,,,,{{ +~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~~~~~~~~~]]~~~~]] +~~~~~~~Bnv~`s~Chrmdxk`mc~~~~~~~~~Bnv~uhrhshmf~sgd~Rs`std~ne~Khadqsx +~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~~~~~~~]]~~~~~~'nn(~~~~~~~~~~~~~~~~~~~~~~~~',,( +~~~~~~~~~~~~~~~]]]]~.,,,,,,,[.~~~~~~~~~~~~~~~~~~~~~~~~.,[.,[ +~~~~~~~~~~~~]]]]]~~.~{~~~~~{{~~~~~~~~~~~~~~~~~~~~~~~~.{~~~~{[ +~~~~~~~~~~]]]]]~~~)~~{{,,,,{{~~~~~~~~~~~~~~~~~~~~~~~]~{~~~~{~] +~~~~~~~]]]]]]]]~~<<<<]]<<<<]]<<<<~~~~~~~~~~~~~~~~~~~~~{~~~~{ +~~~]]]]]]]]]]]]].~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,[ +~~~]]]]]]]]]]]]]]]]]]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~~~~[~[ +~~~]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]~~~~~~~~~~~~~~~]~~~~~~)~] +~~~~~~~~Bnv~G`mfhmf~Sdm~`s~L`khat~~~~~~~~~~~Bnv~rtmmhmf~`s~Enqs~K`tcdqc`kd +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'Vg`s~`~anc( +~ +~~~~~~~~~~~~~~~~~~([~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~~~~~.~~[~~~~~~~~~~~~~~'nn( +~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} +~~~~~~~~~~~~~~Bnv~rvhllhmf~`s~@lhsxuhkkd +~~~'Vgdqd~I`vr~v`r~ehkldc+~enq~sgnrd~kdrr~dctb`sdc( +~ +~~~~~~~~~~~)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'CC( +~~~~~~~~~~~~~[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,,,,[. +~~~~~~~~~~~~~{[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~{~~~~~{{^[^. +~~~~~~~~~~~[~{~[~'^^(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)~~{{,,,,{ +~~~~~~~~~~~[[{{~['nn(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]]~~~~] +~~~~~~~~~~~~[{{[~[[.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Bnv~bgtffhmf~aqdvr~~ +~~~~~~~~~~~~~]]~[{{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`s~Enqs~K`tcdqc`kd +~~~~~~~~~~~~~~[[~{{ +~~~~~~~~~~~~~~~[[{{ +~~~~~~~~~~~~~~~~[{{ +~~~~~~~~~~~~~~~~~]]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~.~.~.~.~.~.~.~.~.~. +~~~~~~~~~~~~~~~~~~[[^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~.~.~.~.~.~.~.~.~.~.~. +~~~~~~~~~~~~~~~~~~~[^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~.~.~.~.~^^^^^^^~~~.~. +~~~~Bnv~rjhhmf~`~Ak`bj~Ch`lnmc~`s~@rodm~~~~~~~~~~~~.~.~.~~~~.~~~{~~~[~~.~. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~.~.~~~~'^^({~~~~~~.~. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~.~.~~~~'nn({~~~~~~.~. +~~~~~~'~???~(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,,,,[.~{ +~~~~~~~'~??~(~~~~~~~~~~~~',,,,,,,,,,,,(~~~~~~~~~~~~~.~{~~~~~{{]^{ +~~~~~~~~~~??~~'^^(~~~~~~~'~~)=BNTFG;)~(~~~~~~~~~~~~)~~{{,,,,{ +~~~~~~~~~~~??~'nn(~-~-~-~'~~)=BNTFG;)~(~~~~~~~~~~~~~~~]]~~~~] +~~~~~~~~.,,TT,,[.~~~~~~~~'^^^^^^^^^^^^( +~~~~~~~.~{~~~~{{~~~~~~~~~~~~~~~~~~~~~~~~~~~~Bnv~rgdksdqhmf~eqnl~Dmfkhrg~Vd`sgdq +~~~~~~)~~{{,,,{{ +~ +~~~~~~'Mdv(~Idqrdx~Bnv +~~~~~~~~~~~~~~~~~~~~~~~~~~N~N~~~~~~~~~~~~~~~~~N~N +~~~~~~~~~~~~~~~~~~~~~~~~~~~[~[~~~~~~~~~~~~~~~.~. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~[~[~~~~~~~~~~'^^(~. +~~~~~~~~~~~~~'^^(~~~~~~~~~~~~[~[~~~~~~~~~'ww(. +~~~~~~~~~~~~~'CC(~~~~~~~~~~~~~[~*,,,,,,,,*[.. +~~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~[{~~~~~~~~{~. +~~~~~.~{~~~~~{{~~~~~~~~~~~~~~~~~*,,,,,,,,* +~~~~)~~{{,,,,{{ +~~~~~~~]]~~~~]] +~~~Bnv~e`ms`rhyhmf~`ants~!Qhchmf~sgd~Ldbg`mhb`k~Atkk! +~~~~~~~~~~~~~~~`s~Fhkkhdr~hm~Sdw`r +~ +~~~~~~~~~~~~n~~n +~~~~~~~~~~~~{^^{~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~'nn(~~~~~~~~~~~~<'nn(<~~~~~~~~~nn +~~~~~.,,,,,,,[.~~~~~~~~~.,,,,,,,uu~~~~~~~.,,,,,,,[. +~~~~.~{~~~~~{{~~~~~~~~~.~{~~~~~{{~~~~~~~.~{~~~~~{{ +~~~)~~{{,,,,{{~~~~~~~~)~~{{,,,,{{~~~~~~)~~{{,,,,{{ +~~~~~~}}~~~~}}~~~~~~~~~~~}}~~~~}}~~~~~~~~~}}~~~~}} +~~~ahkk~ahwax~~~~~~~~~~adk`~ktfnrh~~~~~~anqhr~j`qknee~~bk`tcd~q`hmr +~~~L`kd~qdk`shud~bnv~~~bnv~~~~~~~~~~~~~~bnv~~~~~~~~~~~~bnv +~ +~~~~~~~~~~~~~~~~~~~~~~~~~~w +~~~~~~~~~~~~~~~~~~~~~~wwww{wwww +~~~~~~~~~~~~~~~~~~~wwwwwww{wwwwwww +~~~~~~~~~~~~~~~~~~~~~~~~~~{ +~~~~~~~~~~~~~~~~~~~~~~~~~.. +~~~~~~~~~~~~~~~~~~~'^^(~..~~~~~~~~~~~~~~~~~~~~~~~~'^^(~~~'^^( +~~~~~~~~~~~~~~~~~~~'nn(..~~~~~~~~~~~~~~~~~~~~~~~~~'nn(<<<'nn( +~~~~~~~~~~~~.,,,,,,,[..~~~~~~~~~~~~~~~~~~~~.,,,,,,,[.~~~~~[.,,,,,,,[ +~~~~~~~~~~~.~{~~~~~{..~~~~~~~~~~~~~~~~~~~~.~{~~~~~{{~~~~~~~{{~~~~~{~[ +~~~~~~~~~~)~~{{,,,,{~~~~~~~~~~~~~~~~~~~~~)~~{{,,,,{{~~~~~~~{{,,,,{{~~) +~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~~~~~~~]]~~~~]]~~~~~~~]]~~~~]] +~~~~~~~~Itkhd~@mcqdvr~Bnv~~~~~~~~~~~~~~~~~~~~~~~~~Rh`ldrd~bnvr +~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n~~~~~~~~n~~~~~~~~~~~~~'^^(~~~~] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[~~~~~~.~~~~~~~~~~~~~~'nn(~~~. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[~~~~.~~~~~~~~~~~^^^^^[.^^^. +~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~[^^.~~~~~~~~~~~.~~.[~.~. +~~~~~~~~~~~~~~~~'nn(~~~~~~~^^^^^^^'nn(~~~~~~~~~~]~~.~~)~. +~~~~~~~.,,,,,,,,,[.~~~~~~~.{~~^^^~~[.~~~~~~~~~~~~~.~^^^. +~~~~~~.~{~w<`'a({{~~~~~~~.~{~z~~~|{{~~~~~~~~~),,,,.[ +~~~~~)~~{{,,,,,,{{~~~~~~)~~{{z^^^|{{~~~~~~~~~~~~~.~~[ +~~~~~~~~]]~~~~~~]]~~~~~~~~~{{,,,,,{{~~~~~~~~~~~~.~~~. +~~~~~~~~~~~~~~~~~~~~~~~~~~~]]~~~~~]]~~~~~~~~~~~]~~~~] +~ +~~~~~~~L`sgdl`shb`k~~~~~~~~Sdkduhrhnm~~~~~~Sghr~bnv~cndr~Chrbn +~~~~~~~~~~~Bnv~~~~~~~~~~~~~~~~~Bnv~~~~~~~~'Sg`s&r~vg`s~bnldr~ne +~~~~~~'cdudknodq~ne~~~~~~~~'Bnv,sgncd~~~~~~rmnqshmf~bnv,b`hmd( +~~~~~~~~bnv,btktr(~~~~~~~~~~Q`x~Stad( +~ +~~~~~~~~~~~~~~~n +~~~~~~~~~~~~~~~{~Z,,,\ +~~~~~~~~~~~~~~~{~~~{ +~~~~~~~~~~~~~~~{~~~{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{,,,,,,<<<<<<<<{ +~~~~~~~~~~.,,,,{,,,{[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{~))))~{<<<<<<<{ +~~~~~~~~~.^^^.^^^[^^^[~~~~~~~~~~~~~~~~~~~~~~~~~n~~{~))))~{<<<<<<<{ +~~~~~~~~~{~~~~~~~~~~~~{~~~~~~~~~~~~~~~~~~~~~^^^{~~{<<<<<<<<<<<<<<{ +~~~~~~~~~{~~~~~~~~~~~{~~~~~~~~~~~~~~~~^^^~~z'^^(|~{<<<<<<<<<<<<<<{ +~~~~~~~~~[,,,,,,,,,,,.~~~~~~~~~~~~~Z\'~~~(>> +~ +~~~~~~~~~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~~~~~~~~~~~~'nn( +~~~~~~~~~~~.,,,*~~~~~~*,,[. +~~~~~~~~~~.~{~~{~~~~~~{~{{ +~~~~~~~~~)~~{{,*~~~~~~*,{{ +~~~~~~~~~~~~]]~~~~~~~~~~]]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) +~ +~~~~~~C`uhc~Bnoodqehdkc&r~Bnv~~~~~~~~~~~~~~~C`uhc~Bnoodqehdkc&r~nsgdq~Bnv +~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'nn( +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,,,,[. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~{~~~~~{{ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)~~{{,,,,{{ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]]~~~~]] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'^^(~~'^^( +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'nn(~~'nn( +~~~~~~~~~~~~~~~~~~~~~~~~~.,,,,,,,[.~~~~[.,,,,,,,[ +~~~~~~~~~~~~~~~~~~~~~~~~.~{~~~~~{{~,]],~{{~~~~~{~[ +~~~~~~~~~~~~~~~~~~~~~~~)~~{{,,,,~~~,]],~~~~~~~{{~~) +~~~~~~~~~~~~~~~~~~~~~~~~~~]]~~~~~~~~~~~~~~~~~~]] +~~~~~~~~~~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~~'nn( +~~~~~~~~~~~~~~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~~~~[.,,,,,,,[ +~~~~~~~~~~~~~~~~~.~{~~~~~{{~~~~~~~~~~~~~~~~~~~~{{~~~~~{~[ +~~~~~~~~~~~~~~~~)~~{{,,,,{{~~~~~~~~~~~~~~~~~~~~{{,,,,{{~~) +~~~~~~~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~~~~]]~~~~]] +~~~~~~~~~~~~~~~~~~~~A`qmtl&r~Sqntod~ne~odqenqlhmf~bnvr +~ +~~~~~~~~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~~~^,,,,,,,,^ +~~~~~~~~~~~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~~~~~~~~{^^^^^^^^^^{~~~AHF +~~~~~~~~~~~~~~~~.,,,,,,,[.~~~~~~~~~~~~~~~~~~~~~~~~WWWWWWWWWW~~~~L@B +~~~~~~~~~~~~~~~.~{~//6~{{~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ +~~~~~~~~~~~~~~)~~{{,,,,{{~~~~~~~~~~~~~~~~~~~~~~~~{^~~~~~~~~^{ +~~~~~~~~~~~~~~~~~]]~~~~]]~~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,,, +~~~~~~~~~~Bnv~khbdmbdc~sn~jhkk~~~~~~Dmdlx~Bnv~`esdq~g`uhmf~lds~oqduhntr~bnv +~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'nn( +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.&]]],l +~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.~&&~_~( +~~~~~~~~~~~~~~~'nn(~~~~n~~~~~.{~.{.{^~~~~~~~~~~~~~~~~{~~~~~~.{ +~~~~~~~~~~~~~~.~[.~~~~.~~~~.~~~~~~^~.~~~~~~~~~~~~~~~~{~~{~~{~{ +~~~~~~~~~~~~~.~~^[<<<]~~~^^^[^^^^^.^^^~~~~~~~~~~~~~~~{^^^^^{^{ +~~~~~~~~~^^^{^^.~{.[~~~~'^^^^^^^^^^^'^(~~~~~~~~~~~~~~~..{{~{{ +~~~~~~~~)~~~~~~~~]~]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~)~~vv~vv +~ +~~~~~~~~~~~~~~~Lqr-~N&Kd`qx&r~Bnv~~~~~~~~~~~~~~~~~Bnv&ms~Cq`btk` +~ +~~~~^^^^~~~~~~~~~~~~~^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{*****{ +~~~{****{~~~~^^^~~~~{****{~~~~~~~~~~~~~~~~~~~~~~~^^^^~~~~{*****{ +~~~{****{~~~{**~^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~{****{~~~{*****{ +~~~{****{~~~{**.~~~~~~.'~([~~~~~~~~~~~[~~~~~~~~~{****{~~~{*****{~~~^^ +~~~{~~~~{~~~{*{~~~~~~{,nn,~{~~~~~~~~~~~[^^^^^^~~{****{~~~{*****{~~{**{ +~~,,,,,'^^(,,{~~~~~~~[^^[.~~~~~~~~~~~^'^^(^~~[~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +~~~n~~~'~nn~.^^^^^^^^^^^^^^^^^^^^^^^{~'nn(~~[~{~~~~~~~~~^^ +~~~{~~^.[^{~{~~L~N~N~,~A~T~R~S~D~Q~R{^^[.[~.{~{~~~~~~~~.nn{~,~Akd`tqfg~ +~~~{,{~~[[^^^^~~~~~~~~~~~~~~~~~~~~~~~~~,,,,,,~~(^~~~~.{~~.[ +~~~~,{^~~[^{,^{]]]]]]]]]]]]]]]]]]]]]]]]]]~/~~~~~^{~~)~~[.~~) +~~~~~~~[~~{~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^. +~~~~~~~{~~V{~~[~[^.~.,,,,,,,,,,,,,,,,,~[~[^.~. +~~~~~~~.~.[~[~~[^^^.~~~~~~~~~~~~~~~~~~~~[^^^. +~~~~~~.~.~~[~[ +~~~~~~]]]~~~]]]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Vgn~xnt~fnmm`~b`kk---> +~ +~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~~~~~~'^^(~~~~~~~',,,,,,,,,,( +~~~~~~~~~'//(~~~~~~~~~~~~~~~~~~~',n(~~~~~~~~~~~~~~~~~~~~',,(~-~-~-~'~)=X@VM;)~( +~~~.,,,,,,[.~~~~~~~~~~~~~~.,,,,,,[.~~~~~~~~~~~~~~~.,,,,,,[.~~~~~~~~',,,,,,,,,,( +~~.{~~~~~{{~~~~~~~~~~~~~~.{~~~~~{{~~~~~~~~~~~~~~~.{~~~~~{{ +~)~{{,,,,{{~~~~~~~~~~~~~)~{{,,,,{{~~~~~~~~~~~~~~)~{{,,,,{{ +~ +Bnv~v.~Fk`rrdr~~~~Ekhqs`shntr~bnv~'vhmjhmf(~~~Bnv~`esdq~otkkhmf~`m~`kk,mhfgsdq +~ +~ +~~~)~~~~~~~~'^^(~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~'^^(~~~~~~~~~~~~~~~'^^( +~~~~[~~~~~~~'nn(~~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~'nn( +~~~~~[,,,,,,,[.~~~~~~~~.,,,,,,,[.~~~~~~~~~.,,,,,,,[.~~~~~~~~~.,,,,,,,[. +~~~~~.{~~~~~~{[~~~~~~~.~.~~~~~~[~~~~~~~~~.~[~~~~~~.~~~~~~~~~.~[~~~~~~[ +~~~~..{{,,,,{{[[~~~~~)~..,,,,,,[[~~~~~~~)~~~[[,,..~~~~~~~~~)~~~[[,,,,[[ +~~~~]~]]~~~~]]~]~~~~~~~]~~~~~~~~]~~~~~~~~~~~~]~~]~~~~~~~~~~~~~~~]~~~~~] +~~~Bnv~v`kjhmf~~~~~~~~~Bnv~inffhmf~~~~~~~~~R`ld~bnv~~~~~~~~Bnv~aqd`jhmf +~ +~~~~~~~~~~~~~'^^( +~~~~~~~~~~~~~'nn(~~~~~~~~~~~~~~~~~~~~~~~'^^(~n~~~~~~~)~~~~~'^^( +~~~~~~~~~~~~~~[.~~~~~~~~~~~~~~~~~~~~~~~~'nn(.~!~~~~~~{~~~~~'nn( +~~~~~~~~~~^^^^{~[^^^^~~~~~~~~~~~~.,,,,,,,[.'^^~n