From 719a5baf26bd7360afa3cc4f57e2206b2110e3b4 Mon Sep 17 00:00:00 2001 From: castiel10k <71992808+castiel10k@users.noreply.github.com> Date: Thu, 2 Feb 2023 12:44:10 -0500 Subject: [PATCH] [ADD] Creation of WINDOWS_INSTALLATION.md --- doc/WINDOWS_INSTALLATION.md | 187 ++++++++++++++++++++++++++++ doc/image/add_local_interpreter.png | Bin 0 -> 12275 bytes doc/image/existing_venv.png | Bin 0 -> 19125 bytes doc/image/on_wsl.png | Bin 0 -> 14667 bytes doc/image/remote_development.png | Bin 0 -> 23715 bytes doc/image/shell_path.png | Bin 0 -> 16888 bytes doc/image/system_python.png | Bin 0 -> 8909 bytes 7 files changed, 187 insertions(+) create mode 100644 doc/WINDOWS_INSTALLATION.md create mode 100644 doc/image/add_local_interpreter.png create mode 100644 doc/image/existing_venv.png create mode 100644 doc/image/on_wsl.png create mode 100644 doc/image/remote_development.png create mode 100644 doc/image/shell_path.png create mode 100644 doc/image/system_python.png diff --git a/doc/WINDOWS_INSTALLATION.md b/doc/WINDOWS_INSTALLATION.md new file mode 100644 index 0000000..2411916 --- /dev/null +++ b/doc/WINDOWS_INSTALLATION.md @@ -0,0 +1,187 @@ +# Windows 10 version 2004 and up or 11 - release and development + +A guide on how to set up a workspace and run ERPLibre on Windows 10 version 2004 and up or Windows 11. There are two methods of installation, one is automatic and the other manual. + +**"WSL2 Ubuntu 22.04" will be referred as "WSL2"** + +**"PyCharm Professional" will be referred as "PyCharm"** + +## Install WSL2 + +Run Powershell with administrator rights and run the following command: +```bash +wsl --install -d Ubuntu-22.04 +``` + +If you have trouble opening the Powershell with administrator rights, press `Windows + R`, enter the following line and press `OK`. You will be automatically prompted for administrator rights. +```bash +powershell.exe +``` + +### Troubleshooting - Optional +If you have issues enable virtualization options in BIOS is available (hyper-v, vt-x, etc). Search for `Turn Windows features on or off` in the Windows search bar and ensure that `Windows Subsystem for Linux` is turned on before restarting your machine. + +You can also try theses powershell commands: +```bash +dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart +wsl --set-default-version 2 +``` + +Download and install the lastest Linux kernel update package from Microsoft with the following [link](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi): +```bash +https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi +``` + +Only run this command as your last resort as it can break other virtual machines: +```bash +bcdedit /set hypervisorlaunchtype auto +``` + +### Other Installation methods for WSL2 + +Run Powershell with administrator rights and run the following command: +```bash +curl.exe -L -o ubuntu-2004.appx https://aka.ms/wslubuntu2004 +``` + +Run Powershell with administrator rights and run the following commands: +```bash +Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing +Add-AppxPackage .\Ubuntu.appx +``` + +Install WSL2 from the Microsoft Store with the following [link](https://apps.microsoft.com/store/detail/ubuntu-22041-lts/9PN20MSR04DW): +```bash +https://apps.microsoft.com/store/detail/ubuntu-22041-lts/9PN20MSR04DW +``` + +## Setup WSL2 for ERPLibre + +Once WSL2 has been installed correctly, reboot your computer. Once back into Windows, run the following commands in WSL2: + +### Installation of the necessary and up-to-date tools + +```bash +sudo apt update +sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev rsync make git +``` + +## Installation of ERPLibre under WSL2 + +Make sure to be in the directory where you want to clone the project. +```bash +git clone https://github.com/ERPLibre/ERPLibre.git +cd ERPLibre +make install +``` + +Add role to PostgresSQL, change `USERNAME` field in the command with your UNIX username from your WSL2 environment. +```bash +sudo service postgresql start +sudo su - postgres -c "createuser -s USERNAME" 2>/dev/null || true +``` + +## Running ERPLibre + +Everytime you restart your machine, the following command has to be executed to start the PostgreSQL service if it is not already running: +```bash +sudo service postgresql start +``` + +After that run this command in the root of the project: +```bash +./run.sh +``` + +## Set up Development Environment - PyCharm + +### Install PyCharm + +Install PyCharm from the following [link](https://www.jetbrains.com/pycharm/download/#section=windows): +```bash +https://www.jetbrains.com/pycharm/download/#section=windows +``` + +### Set up Pycharm + +Select `Connect to WSL` under `Remote Development`. After that select your Ubuntu instace ("Ubuntu-22.04"). Point `Project directory` to the root of the project. Once everything has been selected and filled out correctly, click on `Start IDE and Connect`. + +![Welcome to PyCharm Wizard](image/remote_development.png) + +Press `CTRL+ALT+S`, search for `interpreter` and inside the `Python Interpreter` page, click on `Add Interpreter` and select `Add Local Interpreter...`. + +![Interpreter Settings](image/add_local_interpreter.png) + +Make sure to select `Virtualenv Environment` on the left and the `Existing` radio button. Once theses are both selected properly, point your interpreter to the `../ERPLibre/.venv/bin/python` directory of the project and click on `OK`. + +![Environment Settings](image/existing_venv.png) + +If these last steps to set up your development environment were unsuccessful, follow the next "Manual" steps to set up your environment. + +## Manual Installation + +### Install Python 3.7.16 +You can delete the files that are left over in your home directory regarding the python installation when the steps have been completed succesfully. +```bash +cd ~ +wget https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz +tar -xzf Python-3.7.16.tgz +cd Python-3.7.16 +./configure --enable-optimizations +make -j $(nproc) +sudo make install +``` + +### Verify the installation + +```bash +python3.7 +``` + +### Set Python 3.7.16 as default + +```bash +alias python='/usr/local/bin/python3.7' +source ~/.bashrc +``` + +### Set up Pycharm + +Open the project directory in PyCharm. + +Press `CTRL+ALT+S`, search for `interpreter` and inside the `Python Interpreter` page, click on `Add Interpreter` and select `On WSL...`. + +![Interpreter Settings](image/on_wsl.png) + +Wait until PyCharm detects your WSL2 instance and press `NEXT`. Click on `System Interpreter` on the left, select the correct interpreter if it hasn't done so automatically and click `Create`. + +![System Interpreter](/image/system_python.png) + +Close the project's settings. Once PyCharm prompts you to import modules and allow it. + +## Common problems with Windows Development + +### Broken Terminal + +Search for `terminal` in the settings, and under `Application Settings` in the `Shell path:` field enter the following line: + +```bash +wsl.exe +``` +![Shell Path - Terminal](image/shell_path.png) + +### High Memory Usage warnings + +Click on `Help` in the toolbar and choose `Change Memory Settings` to increase the memory heap of the IDE. + +### Missing or incorrect imported modules +PyCharm may ignore some information from the `requirements.txt` and `pyproject.toml` from the project (such as their specific versions). If you have problems at runtime or while debugging with a certain module, search for the correct version of that specific module and reinstall it from PyCharm's package manager. + +### Can't run ERPLibre from PyCharm +Run the following command in the root of the project from the terminal in PyCharm or WSL2 +```bash +./script/ide/pycharm_configuration.py +``` + +### Can't restart ERPLibre +Run `htop` from the terminal in PyCharm or WSL2 and close the python processes related to ERPLibre to release the socket. diff --git a/doc/image/add_local_interpreter.png b/doc/image/add_local_interpreter.png new file mode 100644 index 0000000000000000000000000000000000000000..8537994c3ebb1ceb2901521393ce2c50261b5594 GIT binary patch literal 12275 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 literal 0 HcmV?d00001 diff --git a/doc/image/on_wsl.png b/doc/image/on_wsl.png new file mode 100644 index 0000000000000000000000000000000000000000..aa0f3a9150b7fa392452ec77250d21aecd484038 GIT binary patch literal 14667 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 I+vdst2NOI5r2qf` literal 0 HcmV?d00001 diff --git a/doc/image/remote_development.png b/doc/image/remote_development.png new file mode 100644 index 0000000000000000000000000000000000000000..28a968b3c0ce0126a7ff904b28781a82b779192e GIT binary patch literal 23715 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 KWm0Z@HtKKB3ZC-- literal 0 HcmV?d00001 diff --git a/doc/image/shell_path.png b/doc/image/shell_path.png new file mode 100644 index 0000000000000000000000000000000000000000..54135fe234309d837615a9189962b0640bd1a8af GIT binary patch literal 16888 zcmeIaXIN8B*ES5Iq9VO1UFjelf)D~Iy(7J&p+f)x2_;lf=^(u~r6~x85+F2{1VoyE zKp+(90--}F0r}!}J$HSd@BjPbJq~6kv-j*dc4p67bDrl~L#&~`2IUQw8zdwolv~XSl?dxriT^T^{H?AR&P#Q=C1yLadYe8EHHusTpKjBUb31saZTT z_I7?2@Wj`NM8ns~$;;2x`z0lT3=E7;%lFdM za(}3kSNO)F08i{fO--#9ULRh8d~T;@9A1trk5JWo3VQhXk*OIHnWY-gps8!3V_@jw z;!;srnT2dFM`o9oM_yc9lqET*2WXWc%T+aF_9ha7o*%ASfi%t8~fS%HoMvO>ntD@9Zg@qRnYEp_osm;OfRVRD`e4JOhdQcuFOZqumP!3( z;gKb8-kRpO$0j6RC8uv1Y=~&-mj>KdRa6cL@X!Uvz+S|bm6y}fvWJIf%0F(GS5Q>5 z^D_^Rw0`0Q@{CHasL+3`9O0v# zMkX~piG8OZ_c1jn9QiKB0FqIe0pHs@Gz)J}Z|T>LL8N-Prmt#4wQD`t89ECgTG9cOe0D1O60cwYc_BEUoD`#AXcTYYiMbFsZsqJ82qD z1}EK%2}R+NLQVu);w1wd^8FP!DGe(LoR+ni2{n5(^*O5cgBm2lijEM=x#{7GIeOcv z42jTME#Oz50v_vs25%FFA(s8WA3X`hGbR_NHiu7XRiw`?Hdgd)u6bxM!{*nOEq1bE zKYaMyQ(qVZddr@E^vlMDOmipF&-~UFTkAws&1_ouc43vdtzjjmc5|OJ=uwA$45s1& zy|z^z!O_Z%ZM6}al~wrm;AQ;z9H_1E4gD{7T)CdUzedXM_5j8>R@Q^gOy+7pQh_!OlM9A%xxVKT0)AS zw@w*{gv1G`i!NtwWt`LI&PGeKw`sys&2b^&1|5(it`oY`XrXaWDPS&qiqB!c{EEw* zr%i{og3@w>p82<2Pty``6U!ao^JmS+f#C+m>a9oBEQ9weJ5ID0@fr4>vYwq&9Y4i@ z&xM(5w%m;1%XU-H2{{zvTn4NHP6(~IhhD`tY(qCrV7Syc_9BJ6a}+KcQ{Dw&&orMt zzn^7#%JoaG?4inTm_v!r50Qj8_6M($c$6?{RmQ}IDb;LP?^a%%_;2R&@R7v2HXfz%WF+bc|dEm>w_z@FeKV9zZq zWy5~_OsyF=fPo=y4zjQno$wv{1%d{Joqwj~A3`t#gE9r7Ggjx%ztLZ>H?^aGk<5jk zp%?@dg_>e|Y#*%>e3+vMFRwSygIBW|FWd>pmUqD1y}0x0*gl|d+`ui?I&|1itngNd zD&KIXJ6qV$h2I8s;*JCcSe404@R{gmvllE7wKvhqK2I-DV7pj-|In)xJiE$VtAx3S3ZDiDcv-T z0vn4Hmt)$$Z0%p4MC1Eofd5|pb@AUDla?bfep69{yQhfm^we#?je6aJzTygA`A~ba z{qbT-IH|TEwCk!Z#C3;N_XLU9jhh)B9a*2_aF(gH=2MEH6!!ruwb=B}emv{_SPwco zc&@g{+{!JA&mH5A(-WXF1jA+T$vST&GS?2cy2%g6>%BWt^SZO!VyW6xE*?_c%1Is2 z)S|9<=H&qyBe6l5<(&@)$IJ#fHM&Vugnk|>_4#Q)+d<9+P#$)Ga36Mj^#3<(n`CdPlJJU}Lz(rQ zH^cYAWC;#?kgh$`l!^6HJbEM)|1w_LbgXdFy}HV*2SLToO;DHA%?fxm7`EBrDIn_2 zjI{pY?H^hn)Fs}IM>?&9b^6S>C1Xfx4! zI(auUmlb=mj>>VHhXUc7yNTzZS^^=4($EM_KWg{J{#I1LD>x!$KS|cSFW(|Bpp%;c zdo({%sYcjRq{SvTc_wc{t>HzDJ$Vj*^@v&WhbdQQn`W% z>3chfgds|L-x8XQd*g9EUnY0BHMk_+fQzZ%sB#shJ+=z1wVcUmZY#)L9Zdw?m6)8v=JJXd{7?XMJ>GBWbl1K^ku_8sjdA;>)MgC-5P&FQ_ z$_pzWuPJeM61cDtZY!muM)DGw8V7j<#)%o$eO7q4Bj_&YWBM0l;I#dl|1!6~?6ABT z^Wmj4bN}$u!M7sBX%Gn>nry4~8MK8{)+c$~ZY*i&ouGn~^4a6Y`xE$1UL?w@LL$B~ z!OZ;fcy!kp{Om0~=^0%SM#i&?%@bH&jgodpYgYH)Z~aqSe)77xEEW1s>rH)vbgnlu z^+ry`Vo1^yy8)t507BdMi+&3wY|*Tjz1lL)dh@##D-u+b7~@$N+oYXXq(5LWtC37; zcpa?cf|c9I>T_;~yboxwg!77&;Cp(DvC{ohi%foqdn0NvRxp{#3rr$AAETSKMxHb0 zrU_hDEdFq2*cJI!%)`J40wM#G=^`+E2FJN$d?Gv6(Ga^Qtj-&O@`4D@>_+~CuQCi1 zQo4HZWD)^J-W-K`Q`jltjDPIB=7)j0z!u9ohv(=v-_Z1Hh1b3HDna-LiMEO$ z3V)ES^c?Zz)P&uE8(>n5kyPgpJEvf}15jR$@uav&AU`32*{%U0#93R^8hB1@N_ZL@9ur zZGToLq>5swSFwvfN$L0ThamlG;7}#&;hoe@y#@0Dd9}UbyHwYUIQEeKMla95zK`FuXjZ|OlKH5R!v{hIIhouEFBbcCdhF&Hd~bF1>G$(Zl2STsmcoDeFlZFiB^~BX88DeSKbPlk zHu>}uM@F8)g$%t2f*hX4j&QzKdksExX5zXrBJwuo1Eo46wo(4$;ivI@J(a{aWL+8@ zeSPDK`k7_i1#ej zWbUytU2=_;AM#n%GGM|IZQ--mwu zt&8UmT-3uqWmD}AC3{g_Xij>Ehu7jxT^qg57mHqh9vBhPF~uEP(=TQp;X&bjBN}=w7OJnqXFF;u7n#{=dAQ^9GU^i*0=!| z82pg&7aAdE5;T@)zGFr}j$L&LbN9dmyhxnxn{61ghS?GJ&if~w(|dxo`8G$ET1@<(0^D1^wl)Q52U1@HQj<}>-N*lV0)io1;89p)5)<4$u) znA=^r6F1XI-M5D?GL9TuKV)ru+jSZrPP(zHedXh67IQL?Avsx$_r(EN?7U%VTWuLGin>C9&$(Q8OUmTEjQdzuBmYD=EE+&Vby0h|d4xkUNc!&BH_D(PHYd$QmZrks!p8#HN&!Lc%5sSWfl+1qKJ{g`DUbM>{ z9y*A7J2h8&3FU=hrf(&MOWj)cFBhE#KF8elZ*TzT1tS-$D)VHz&59brhbO+1az;;0 zjF2WK4?V4YmLr^+>0C9zPw$&9raIgxtsxjb_7&A5lFC+kTEAB6anYpU4>mG8q!hF5QIxyn|K?`Nxg+5eTN z@q*~p++j}7Zthg-McYAFn=m>XeK+ix|w0NdVKw+lCf97N#>ra-7V_%dUQ?wA6vu6X1(RJ z#AQzqx+Q`DRhD8cqFpa7#(odfM?UNA3_^r$2wYUX1$=d73@^$2i5ez1XUR(1Ek-U- z2~u3S;NT7saZP==n~kaO5rlfs+HG^Nv9&#$jpgqL?(U(W_3u*ARQF!$c6wUc_`-FF z)H6ASLgSQ9Ll54;@_XbiI;f%>Nx^0QIZ%j6GzXM_4>-(G-sChPa(3`tn=kqXwr%dr*_wm#n zuH)WWiXojX^LJ@PFGXrGW1UrBhy3)LBFH}nq)7(q6P~NFKPc*Jdh8pk^Kq6|)$Mvf z_*$O?oD+tPQS`ouA4#6jOisiY9)j?k+V<1$9flNrT6;>#WUt30_MC$N6@hs_uD?!v z@;tp6GonM?@xiuSn`TrI771BHAxuIF>_TJUh%p zQkrI8fDqS*W#cfBda@ijp!=0%?zBNitWewKu!LTz2rXtHu-&z0sKGi4(H$3YVHg2M z4ce+x6M2j!?l+gqyfx}-F>2s^V+Yi<#AD3^?hw@p z;==yd;V(_X?Y-wWCk*}ub(&@gxaLq9qKt#b&U}2p%*xV+`F-la5A{%Zbc1+{ZZjrF z_)6^glCK1;YmeVA##3y%Iv8H&Xz;pv@rh7iqV?Dg+oMQ3)GKXTSeLH@VitwodOfW% z;&9|aRXYBuT(SOLED=__E!GD%EYh-m6GkL<_1y0U7;RIuBOD+O&x)Rn(Z%T`iv;MA z*PINo&=TqG9tX()eIW26<*a2 z8fd^eF=h2rkEqlM`2)-c8?m-<{eYzfQjxE2RAHa<$7dvZ{3qk4e6!!J-7b})@Vg7p zg(Q3ScQ~s!=*4^XOJ@R(%8}-Sn_K>kxUyRarcZz?^_w-PE5^(LtSU~Xac%)8n+Rcq z#+2+05T@N;y4MGRLx6Ny%4t~nT6zYLn{}3CT3$_5BftT!0<+F4yX#x<#u5MXiIwrr zHjI|*`zhdnu~$4HrBLBlqGuNUuN0$4t^5#{S-1;4dLVmFO@JzG&cP)#NrVg{8^nih zBk~L)@{;)>^CN@B6f&8j9p{-W4P)B!jLU5S@)=T7ONm5DgH?DBF^$Iq^`#i8+2A0r zO8AQf&fGi^#EU6Q@J7mvA}$lOrSF#oj0fq?kzGTR!ufyt;Y4dUzwoxdGc>0M9!Zzg zp)=W^2zZr$b^HNImX>merameEJtzvivP!j)c?U$CF8c#g5pCeCh1P{e0fgCQDjHUr zJPzU;GJ5a_G^+peP`C#sdmYw{M_m=*kD-jf{AV$ggzI&`;rt~*JNKL@9ebm-;Y;Y3L=o(OK&vkaCXd16Irrc_n-coFdRW<^;#yUuJN?k zTFbX;Yx;hp<(^FU+!@QPS*)=KN$J=2Sl>_)bnKI2&oNl_gCK%^dRRUOYcV9vrB`9G zrf1x#b1mKaO`|J=mvt|nTk#3aOo6M4G%GW+b@1Bfrp67#8=@p=iPB%XedK_nMS0BO;j(tCbo(*nW|sla6Ewz!1k`e$Y~WIF?WAp$iXb%Z3Q*e+WEFA(BEur7qN5#}Xh zi*GA1TZ-OpXCRUv8%Tk$l<}PN@aO{n&~$E6mCUzHwTb}Cq?qUhsLC|%^8&ZRKZae%&>!xip z&$W?vkzBt%cxSTKyLE?5nka3SbA4}$I(4?q9uT${_q6lh3?ZvOfA6M;S0HKRhME=b z=JEJ7moplab4;i%a69u}G;)}@!xP84J-L6qiyy#X#7uB6b&y|bFo)fT18eDk4LyHs zNn;A&!}+s-tZjH>0pRtD3P^8eSm1XP313udd_js!TZ@5YbQ4~N&nTJjSFhfi!WzjU zKF5Z&lqKXN!w*-66s0Hhk`Dvn{%M{}S7)SFD#|#UKuBh+%!Ea;TlbkL@>(Sk+GW15 zkcw{Nm1Ow4n~5lG5d;b&S?kHY{jA{{8qid(!}$QR-|^U*h*6~PFhu9FIq;(aE$FDh zn=rp7eMjDHflz^(H2XJow}n|j=XaUn0ti19Zle7==?PRp+`sC$Hz9Cafvrnq5mPyg zL*Jyf%2D!D3-5ZcdyV?eyxXqAjTkap#L$N#MBiXs%S+SIXRB^fF^UjH8rEz4L&3S= z{Wz_(6!E>l}j6v zAy&)k>m-f5Q2&s!h7d3{N^$L~GLD7DTJaO#HFDI-T^bUi>-f7|RVMn7|1AHy_@_}# z82ktVy!1E(f_1Rh?eb`1FF+$2yVPPnSSAt;lX6OOU${XJi4Ony&JiAfyI)6DY?$^UfT^SD&?4A~L3FAU*H&;hCNwbxQ}-(XEN0;dI5t^=WI2G9@Ce$_ z+271%oMIY8oDzXiJHkLUH&I&?`q;P`m+>k2=YiQBe4>bhktlDE2~RZ*NQ4lrbzQvr z7@(j-AJT5D4!`X{1}2gy#n{h@-^wM;Z6L-U`OVai%toDtux@H$$Fn+pLQr`9!b}H1 zGe(E8Flx74sh=0`#$WJ7_?D0=M6jW0_}RocG6n@WqJN9CCMWk-7P-3})>TtAotzQ8 zSB(*?#N)*oNT7`Y_=wxz9fJ#Zd2ID?HxoU z6eP=l^-g3Q7^j>;XI}XTRyu5(3PF!c=}qsq(GzYM+Z<0+ZP&KKK2IXUB*i?Q-k`QG zwzC&kcmnS08E4$^k92@o?@y(F+d`;#iiB=@_`4-`RMH0wbPM8V%*SWicYh<32m^83 z@MZiK!GN$#(Wx-`VZZJwXB;)Bv>hi~A;z%nRP2(3Ol>Hyjs5A=5ynax_(&RNGvCZe zh!b&9Iy}uZ#~1pl5zg&!!b`%J)Q^9jJY}Z=wgvynU7o;c-ND~dB8n@C<|ut$6u>lq zUaek-3!ej<3pvSXzX<4?^!I01WatFfch8#P22k^_^A+;Ko(A85_uNHP1#Rls1n{B| zR~m@7ExY8G1lmSlUa%j2+`1UXjX1;d1lS66#NKCB!z zFLR!u0)OOl;tV<n`u;^i{B))((mX!0CiiT8rDxO47+)52~E@t*I9 zFfVH>g$#?t6fD)xX_J~zH?d`;fl-+rir@+BR$ZZ89a$OSsY*HB{ZhHHQI~BYd5@D@ z=nmTYlJ$YXWq$;QlJyz9>FvTnpX)C`MICwQE?IStjDsxk7+`}oW zd|A&LZ`qy$+{opXj*>#PArJ>#g0=h==I&v~cMsq-06X*{Bx^z((7h#nwPW($7#V6) zQMgr1;=8wsPagM&(K2p>xS18I1|as$_{v~D9w1i~g#DP?!vale?dgVO-vzVQo4>Sc zHEgTky@Swskbe!GILBA)HCFrN$Zc;#7fxuj-=av%;|qoa6tjVaZ?ufB*lQTXqi*`@ zcAnj>DZxs5{ryCVtTmJ0Z!u$;Nd%Q~Nyj8@hH$5w+X%;4PyD%hRdf)%>lH6OYyA`V zn1cM7JrLC1VzNS{Uu5=noaaaN^ACma`T8ZHmU2Ga zEG5_AOv94Nd`B4jBN``bDk#uYtWzSsTR!pU$;4Nqi=$O?UuW$JK>2d!pUX|;jyd$k zTICbpT8yn(9U9=bkm$rr;J$!5v=lz>_;u5%;s$z)x|@M1!4?-TtpX{5fc-wx>3(5+ zVobP8vv}wdewe}<-kNZSmIyTsnlTs0lis0t?hCx-pSgPno;dN2^&-Hs^$*M}d<^$a zr>N_jb|MOt_)Vr%w^pe5g8dh8Jv`P--6(~ z+E}9f@iJLw&e+xnL(dy*9q|||4Qm}|58Q0tx}BWt)U;*fFc|7qaXXo$~2=% z5YZ9eLD(s?+f_IW?~mL&?ZPjC$pgPye_kw{-~ZHQ<>!_Q`Gh z^&a)m3K#dDQXypf`XHD#X!iGK=7H1Ak?3t%*|fuf`n@l*L&dqMOec@LrMvn2uJQCR zv-(~ThF;Vr-eTp&jQy#vF0N-5@MZ{m@#bKWe#(J4A#C@aG9+6FyzL1Wym@FBUO^8V z%v9S|`*FA5p6Oo*ebj+W7k>*&Rli)g(NT}4vUW@=Ex-hm!%2ml&1{TrG_6J3dxBdM zTC8D`Dn8h|67A6cp!>w3mhIV#$Ww-8F|A6;eX^I=r#Q1=6tRg%wViy3ijps8N(tzE zGGV&aldV9OtpL~P3Z-KT<1)K4;gDqsiD1!Gn)V(g93}Jih3myr8g5=8D=kev`938= z!&=OTsu}sANfMKY`OorC)Vx z&$Y1Rrr;IXa)WScF|uqhxbF)4s|1fmt0)8uEsS6e7)*!-y-wM-uX`EZASgsmH<#jS z3ULyPxK7vlBuW$@eN4$d$uyCK*@m?7jXMklZWtPuW8MW8aH3whGZK22!T49p2Krav zojzUYiXIflI?MV)NTt@_VNJbfLv>x#-!j&%>jvqO*a715JqFYNL~n z!o`JY&Cg_}sb^RlIYn!j@iuYdeZGa&Y!_Q;WNaO?n5KR9DjxB>Fq6o(S-qNrS7cbl zvN`Cn7M{~dLikc+6~s@2`q~u-3imk7JfC$fJ-md-jsW-U8TY5+W;iuBlNFo9!2y>U zZzm<+Vd#9kh-Tf!axhyj?38@eMQpUSH~TDz4Bmbc&GypTK}GKi6|e#D zyoY{Z4>^!Sl^F6i1-kLOvxTAY++`e}{hwzOLJ#IDYy_;KtIjEeB;e#GR`l`MH+gkC zX)ac-Quiv~iDIYnI_&ttDvhxN=Gvq*dGX35GPwAZo>_=&%6F&*1_j|DBKW zr%nPkAcePFyG#QdG|qK7Qt;Z3JV4#L^Q z)o|DG3yag8iGICdF!pya8<<}xvOim_H>ps#z~*Eq-J2TR`9jwe%M>Y zniVcu$O`AolEDgz;)lYHx3V!uVLdTnzde-F!$NF8_&~J2$)yyYS7jL#@Dd~nz>Zi; zYhT#vX{jC||17&7FVfzS)HGM%&<}b9b}_%S+wwAWwj8o0umb-f?WVN-e! zh&-O$W})lD?Zby>zllo%0Gl7v3ql;kgx-qKq9p+T%C?w1fA$c!zgW`TZcIdh65WF} zm+!`+3NWd`n1mOtp`Iike$%#ARQ>Mou$hDG<*frFCWk{+vfe3i9X>>QzVS5{zzP3pIP-XP1 z3;z}YOPukmvfb_OSjy^9IXg%dsl|Ejm63pd zEQNtE(?m)2`+LBI66_DuKVkv}0g}Wjm)>8dV|4(U>t*h8v723JPP5*?&Dwy)rU@&3 zwYc-&ndn&ydodns+%bne&G$mq$6$0#tast^`^#XV%g2^Ji8ZG3u@!GQq@e~BTU7pP ziQGQMDs(Y(6O0*08{fF0;A9H)c?;1${SvE0p~t^s!je44gBzG)ZZit}f)_Bfj(^^;n^d|V=oU$w;>c_8cf=o2@OWUo zcywmaeLT|NfCq8bfQZG{=Q7`Oml17RHw-cJE2^F}yADr8N4+_4$O3E;c_Wd+o@58( zeB#+_FW>EbcqOl}(p9~h@{(Z*Sf_T{&AT3klS}n(8xr0M%kL9vZ=+mVhc}KY?!JiL z4)p<}lgux@D}qMxiMos0LH5p74&!Dp!!F)_G3`N?)!Tz~Se#vb01sU6Uf9esJ#ikJ zUM~%s64m4UJtB>I^^OnEF2Z-yyS`}>tl_Yo56+X5-Jdiclt56TSy?$dj$XuOGY*+v zM=|_5p0ep>XA|BkvAmjgeDW^pSe(Z2Xzc6u;La0S3@)ozA(C%$(yVy9G1)SI$kJHE6pFZng z5z+;rNYox>j}C0-Zq)iUw8zgp7h-!%{yEvC3`y#h2O)}2@&Fd=FL@}gHdoK@67zIp z{usOIrIcdWHm_ADcYU))8&^ymyV;KTvIRg65z_d)2sJ#(fDbBG8EtNrN1Tp|I+#YcI3%Ih!zxb)JcC=_^p!#d{dXBRCzz&X-RINAe4( zK2m+cpbAI5Bn8fkoKl7g@XjXifV_iOS?$u%L7nB(jOJF$PAMS0Frm>C+EdYviH~AIZ@d{83xYjJLIiE)Mfr z{tjXcAtKj3NM}7uKP{lh@<*HZS!@V)}h+O=xgfY-VuydG1|90DMdb zE8<~UB)7>5vqBvteK%l@8*-CnKVcW?uyt4jrNY`O(4I|*03H+-RvT2jL+kx775CXC zbfJX(9vevZsw_QLTL_>KVCX)7}2u6hwfGPGn~>+ zUFMOxIhuCzjl*bF#d9058x&fsUHu1gT$VtUUUnShxS^!nR zv-~Yix&_Q#w`-qkJGaD~Ki zx3T3=OiUkr<4WbqlU@>j$7d1V4!+b!ziKMIl%3h1n^bqln6af~RNi`!^z91C7;T)n zp`DLXcTz7;-YeuQq|w_rPb)r(D9!fB_P4R@RT2v#`gZ_aP%Rg9s|?}7ucI#d!+uKc z?s!SLi2{T9ZfZ%OIgVta9NWFTRcs-^F?JK~+{(her2v=e(M~01!$60@9)^&W-Vi5h z>s4-H;wb&9e5q{d}uu4I`+3I;27KRCDx&FWoL$cxC_xz^{?yvOzqC&^)T!VO|@rKQmW2AVdIPRD_(rJOlBE^;U=szOM`gH zz#al&pS$B_XPZEx(0V>H1g}DadbGiHwwOrE7J|x=iKIExCy_5mj$UZ5A8I|~I7WVY zmHL|~2VIrP&x!B{mSV~fenbvUXYl4h0tYtNK|9bjG3k4?i3FHHwjak{MYfRJ5`5Qz zq4nhIB_CyoQV?Q$;YfGr4nkx;WrT&Dg(BdD3iMV$!w82nR8SBfA1qW6BKJRP?ui+k zW5i}%LoX)h3Nv`K6!%?4=`Yt@CMKBhDnJsc%+FL*maE^eX~9F=sayXVvlH#R<-b7b(c{j{(uK=_9&K0pU#&wdK`&Mqh0Sa-;hUcsvqFCw zTtHsfuaR{gea_F5qN*FHV`-)A9d};*ntc7m0;34@4c*s=1B2|&lp-dOB9EtM;JJL2 za)qg+cWR_yW`Av>0z(gMrHe5Qp10HM6l>8gQ;pV=Xx_VW9y@XR@d{Z!M%3ja%j%Va_K^7~^_t|IEo^mdv$2Ad@M>O|$++Y0 z4D8iFCKlo`+PA?z2?;Z^!57b-6ob^(BfUK+#PH;U?Z$aZJDWgb*}1o#TM3Psp%1e-=sXj&0xK zO5A48=ivecu+Gs1%ns+*3CjsDCGTi8Ibz_03LVmf0>I{7OO`|w^dY$7rJQryVV!l~ zy~UD7MI=$#9*u1gH&^DlN0=Xatg>rC#C@z6WgL>WcyiJGl0fzFccgVm@t)hl)(_#E z1tH+MmE>VQYP*%>&|gK;&$4<3f=jC@huMfObUFM1uP7ocslbfTaAWSwQDDm>^hFsE zw~8^E>Z*s3gsU5K~XnCpSAh~_2U>NA1w0^(VZ`I%a`#!I#gRAXM4G!_gS6Mnb}huuzJP*fSI?voPw~Zf-15>1Jb_A@UvqqR!|NI`9hM$wcU`rPaxhS|2@|V#qOa}7`6mk)_~<(7$F;8w z^nV0O9UM-ZOHstlqFZIr*Q2Ut+L4Y)Tm6fj`AwAB)fB5ce&jscPwI8TehEiRr#GQE zNx)eee{L~~;%Cp?{phc}0M1*0%{;ncBuGbRpn=OhZRp}W+zg5(1sgaD6q;UFeKon? z1-a;;(yZ=D8rykYP!kaW_?0P*YN5D7q8o<^(0c^07mB>5((VH^K0%EaNWcfKn*Sn) zmpnxMu6idQlxcZ=iR!~RZTG0{2^tD?P&?K293-Y+*N|Ki7X&K-$~ucBL5e|q`(U^v zhn$L!$oiA`NX$1bM2NxDRU~MK9g{KGZ>)tx%QI2hclX z-|=BGd5@7IM*i{t0?Gea82^0!pMV)(X?Xqe-*QRodpeOnl~z28$b+u?m8p&?*j!Dw z!TQejIldqx@=^%6M>z5Y*u@R_1@QH%A}vhUUUg@ zcHGmf@x*hrPs~)kL*;czql^Slo!l>ERIL&&M(B#C+mf}pT7q#F5+wXCNuIyCT8{q0 zMdO}iYain@pH|a8O7GW$il)Jg1?v);zK-aVdadtD>UK--6wfQ0XPs&H1 z?4P&6BMPnlrXk=mj%X(4ipV<(ztE(lu~*}%@9|>!J{ugPNTfV%_J%~GAU5N10q2=r zjz#HH9(*gXm6uwnigAo>f7<&_iQ7ej3-1_KCT*UPe3qefbtI&i7!tg~9J%y~}<R#Suq$I$}c!>upD=PbN}h?}?I z8fzbId;7nCu@w$)SH0^h7%uE{ASyV_J0FY;o8sLkGad~7^aHJT0xX~W)-rRuB!mYV zP`lZD==fW@90~Q7xKQe1uAE@L`6r+u0QR=br@{Vsw>@q(QC@dW+^;Z+JPaFs7vI`Q zR|HV-hvS%oTK8gRs$UWs;DwO+R8dfK*^a=SE?iXiMpV~}1#xxwMI47UazeBzlxuUr zd1h&2Dlhj41o*_EsbkJ|kR;x1b~MwAa~LxqsF}krRA4ohVFMi97;$GfXW@GX94aDE zK$9Omu2&N~S^u;aAl-9%^fCmT$7czao%?Qm5I%emHJYP97K|HSqax;~T;AT=l_F+v zuz-3h8V2};p-qXO^%6u0GA2Vx-3Sl@m_v=uyBfDuXWZ2vM+RnQNEn(Jg6l<`r*6Vq z{aqn|Bk2=C$jlN7AoVz!y7yk*V07Xl^tKmhs=T8>x#laBO5^H21o9h}xrL(_T{&37(tl8Nbz!jLp}Z~sv||J^bC z@6O?WY4raZ{+kc|KgaO@-r-SRjyvZhDee{r?{8f-i~<1+h$0HvzyA^E#J~ON2EFnQ z4Zq&(f8U3gIhe#DiyhBA&*zQ>g{};GYHVZV{N%-GE7iS1FYG%#rq2!u-ibwin}|lr z#qRvl>D7KQ=nR4#D2A+@e-jVg!dUjiUw)r#6e!}{Gh} R0<&h`7yB${`s6#p>Ge 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