From 3a408e84643028c725ae3bdc2665179615f7a95b Mon Sep 17 00:00:00 2001 From: yaso-meth Date: Thu, 20 Jun 2024 14:56:50 +0200 Subject: [PATCH] Add note functionality added & multi Line text input compoment added --- .../lib/components/buildNotesList.dart | 67 +++++---- .../lib/components/myMLTextInput.dart | 53 +++++++ .../lib/components/patientNotes.dart | 141 +++++++++++++++--- .../lib/pages/patientEdit.dart | 7 +- database/#ib_16384_0.dblwr | Bin 196608 -> 196608 bytes database/#innodb_redo/#ib_redo10 | Bin 3276800 -> 3276800 bytes database/binlog.000014 | Bin 8514 -> 10952 bytes database/ibdata1 | Bin 12582912 -> 12582912 bytes database/mysql.ibd | Bin 32505856 -> 32505856 bytes database/patient_manager/patient_notes.ibd | Bin 147456 -> 147456 bytes database/undo_001 | Bin 16777216 -> 16777216 bytes database/undo_002 | Bin 16777216 -> 16777216 bytes 12 files changed, 218 insertions(+), 50 deletions(-) create mode 100644 Frontend/patient_manager/lib/components/myMLTextInput.dart diff --git a/Frontend/patient_manager/lib/components/buildNotesList.dart b/Frontend/patient_manager/lib/components/buildNotesList.dart index 20263da5..7bf5415c 100644 --- a/Frontend/patient_manager/lib/components/buildNotesList.dart +++ b/Frontend/patient_manager/lib/components/buildNotesList.dart @@ -17,38 +17,41 @@ int indexOn = 0; class _BuildNotesListState extends State { @override Widget build(BuildContext context) { - return ListView.separated( - shrinkWrap: true, - separatorBuilder: (BuildContext context, int index) { - return const Divider(); - }, - itemCount: widget.notes.length, - itemBuilder: (context, index) { - return ListTile( - title: Text( - widget.notes[index].note_name, - ), - subtitle: Text(widget.notes[index].note_text), - trailing: const Icon(Icons.arrow_forward), - onTap: () { - showDialog( - context: context, - builder: (context) => AlertDialog( - title: Text(widget.notes[index].note_name), - content: Text( - "${widget.notes[index].insert_date}:\n${widget.notes[index].note_text}"), - actions: [ - TextButton( - onPressed: () { - Navigator.pop(context); - }, - child: const Text("Close")) - ], - ), - ); - }, - ); - }, + return Container( + height: 290.0, + child: ListView.separated( + shrinkWrap: true, + separatorBuilder: (BuildContext context, int index) { + return const Divider(); + }, + itemCount: widget.notes.length, + itemBuilder: (context, index) { + return ListTile( + title: Text( + widget.notes[index].note_name, + ), + subtitle: Text(widget.notes[index].note_text), + trailing: const Icon(Icons.arrow_forward), + onTap: () { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text(widget.notes[index].note_name), + content: Text( + "${widget.notes[index].insert_date}:\n${widget.notes[index].note_text}"), + actions: [ + TextButton( + onPressed: () { + Navigator.pop(context); + }, + child: const Text("Close")) + ], + ), + ); + }, + ); + }, + ), ); } } diff --git a/Frontend/patient_manager/lib/components/myMLTextInput.dart b/Frontend/patient_manager/lib/components/myMLTextInput.dart new file mode 100644 index 00000000..7b2eaf1d --- /dev/null +++ b/Frontend/patient_manager/lib/components/myMLTextInput.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; + +class MyMLTextField extends StatelessWidget { + final controller; + final String hintText; + final bool editable; + + const MyMLTextField({ + super.key, + required this.controller, + required this.hintText, + required this.editable, + }); + + bool makeEditable() { + if (editable) { + return false; + } else { + return true; + } + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 25.0), + child: TextField( + textAlign: TextAlign.start, + textAlignVertical: TextAlignVertical.top, + expands: true, + maxLines: null, + controller: controller, + readOnly: makeEditable(), + obscureText: false, + decoration: InputDecoration( + fillColor: Colors.white, + filled: true, + hintText: hintText, + hintStyle: TextStyle(color: Colors.blueGrey[400]), + enabledBorder: const OutlineInputBorder( + borderSide: BorderSide( + color: Colors.blueAccent, + width: 2.0, + ), + ), + focusedBorder: const OutlineInputBorder( + borderSide: BorderSide(color: Colors.blue), + ), + ), + ), + ); + } +} diff --git a/Frontend/patient_manager/lib/components/patientNotes.dart b/Frontend/patient_manager/lib/components/patientNotes.dart index 21ec9408..d064277c 100644 --- a/Frontend/patient_manager/lib/components/patientNotes.dart +++ b/Frontend/patient_manager/lib/components/patientNotes.dart @@ -2,6 +2,8 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:patient_manager/components/buildNotesList.dart'; +import 'package:patient_manager/components/myMLTextInput.dart'; +import 'package:patient_manager/components/myTextInput.dart'; import 'package:patient_manager/objects/notes.dart'; import 'package:http/http.dart' as http; @@ -26,8 +28,47 @@ class PatientNotes extends StatefulWidget { class _PatientNotesState extends State { String endpoint = "http://localhost:80/notes/patients/"; + String apiUrlAddNote = "http://localhost:80/notes/insert/"; + final titleController = TextEditingController(); + final noteTextController = TextEditingController(); late Future> futueNotes; + Future addPatientNoteAPICall() async { + var response = await http.post( + Uri.parse(apiUrlAddNote), + headers: { + "Content-Type": "application/json; charset=UTF-8" + }, + body: jsonEncode({ + "note_name": titleController.text, + "note_text": noteTextController.text, + "patient_id": widget.patientIndex, + }), + ); + if (response.statusCode == 201) { + setState(() { + futueNotes = fetchNotes(endpoint + widget.patientIndex.toString()); + }); + // Navigator.of(context) + // .pushNamed('/patient-manager', arguments: widget.userEmail); + String message = "Successfully added Note"; + messagePopUp(message); + } else { + messagePopUp("error"); + } + } + + void messagePopUp(error) { + showDialog( + context: context, + builder: (context) { + return AlertDialog( + title: Text(error), + ); + }, + ); + } + @override void initState() { futueNotes = fetchNotes(endpoint + widget.patientIndex.toString()); @@ -43,13 +84,13 @@ class _PatientNotesState extends State { return const CircularProgressIndicator(); } else if (snapshot.hasData) { final notesList = snapshot.data!; - return Expanded( - flex: 1, + return Flexible( child: Padding( padding: const EdgeInsets.all(10.0), child: Card( elevation: 20.0, child: Container( + //height: 300.0, decoration: const BoxDecoration( color: Color.fromARGB(255, 219, 218, 218), borderRadius: BorderRadius.all( @@ -58,22 +99,88 @@ class _PatientNotesState extends State { ), child: Padding( padding: const EdgeInsets.only(top: 5.0), - child: Column(children: [ - const Text( - "Notes", - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 35, - fontWeight: FontWeight.bold, + child: Expanded( + child: Column(children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + "Notes", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 35, + fontWeight: FontWeight.bold, + ), + ), + IconButton( + onPressed: () { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Row( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Text("Add Note"), + ], + ), + content: Column( + children: [ + SizedBox( + width: 700, + child: MyTextField( + controller: titleController, + hintText: "Title of Note", + editable: true, + ), + ), + const SizedBox( + height: 25.0, + ), + Expanded( + child: MyMLTextField( + controller: noteTextController, + hintText: "Note Details", + editable: true, + ), + ), + ], + ), + actions: [ + TextButton( + onPressed: () { + addPatientNoteAPICall(); + Navigator.pop(context); + //print(widget.patientIndex); + }, + child: const Text( + "Submit", + style: TextStyle( + fontWeight: FontWeight.bold), + ), + ), + TextButton( + onPressed: () { + Navigator.pop(context); + }, + child: const Text("Cancel"), + ) + ], + ), + ); + }, + icon: const Icon(Icons.add), + ) + ], ), - ), - const Padding( - padding: EdgeInsets.symmetric(horizontal: 20.0), - child: Divider(), - ), - const SizedBox(height: 10), - BuildNotesList(notes: notesList), - ]), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 20.0), + child: Divider(), + ), + const SizedBox(height: 10), + BuildNotesList(notes: notesList), + ]), + ), ), ), ), diff --git a/Frontend/patient_manager/lib/pages/patientEdit.dart b/Frontend/patient_manager/lib/pages/patientEdit.dart index e622cb1b..e0785825 100644 --- a/Frontend/patient_manager/lib/pages/patientEdit.dart +++ b/Frontend/patient_manager/lib/pages/patientEdit.dart @@ -207,7 +207,12 @@ class _EditPatientState extends State { onPressed: () { deletePatientApiCall(); }, - child: const Text("Yes"), + child: const Text( + "Yes", + style: TextStyle( + fontWeight: FontWeight.bold, + ), + ), ), TextButton( onPressed: () { diff --git a/database/#ib_16384_0.dblwr b/database/#ib_16384_0.dblwr index 96d2c5fb349fa478cae96b91598a5602a6e146c9..58974aa381e21eb402bd5a291d6b341a9d91a3e6 100644 GIT binary patch literal 196608 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 J{`EZn{{!u^R-XU> literal 196608 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 diff --git a/database/#innodb_redo/#ib_redo10 b/database/#innodb_redo/#ib_redo10 index 96890f48c73a8c9d6e280e343651ee53ce89a6b7..f5dd5a879c92bae2f9c5ccaa8db31ad28cea4eca 100644 GIT binary patch delta 38386 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 delta 29368 zcmeIuJxau25C-7n+vtvekp)YOc!0oSEA|!(9zZM4VG%5*Pvte%#;xtrSzCAm4`Ef$9b>Wq@H$Y?SS zG7dAA8T0-q<2d6a<22*!J=*4ZS@m;O)$7Mo+m%KCcJ)~|o4f1B{l{H5mG9alK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly bK!5-N0t5&UAV7cs0RjXF5cpq#aee;_iSelF diff --git a/database/binlog.000014 b/database/binlog.000014 index 07028e438ffdf70aed24057383a905bb6f7a108e..477b7cc2f469205e9d2653cd2d37de656c7a08dc 100644 GIT binary patch delta 1984 zcmbuE&yF(Ri7N%)S4u#x5~-HNgCu zNr;ks!BZF-LJXmxQXe{ENb4UBOFv-k7QASOS#H9bM*JWmqVYNcPR<=@bvfLQPR>Wv z(FM0B!1;+xqR~iHQX(eG43UV4C2L_)Rd*)|BQr3v1?I3IQcPrFB7`-wAVqhJQ|mLm2Ls ztBb$%F<{ax3KoUh7AYgwZ69|bSTh9^jsBRzE(X?=g<#+D9xw!86AQI2tYu)2pf)kE z7SrPqjHF=I5VkCcq+oJbMzC5QY_EcVf57SPJkqpKv zh@>zIxJN9^zKt-%`^kbK45o*M6!I{KS9F$(aGAYglQ|S73X;adEZj^fU57bdJ~e<{ z3`U!aFe~w3p6x$-32PZlJJcoyV;<%_7|CGn3nD3uasy1!Mi{I8?okY3FfVCH6%P|^ z?2|0PWd@_mqcBmB?L5qCen|zw9HXz&yTzIc>|!uIc?k0-9?ZN_J&m;t<~h_R2BV&~ z*I*=tIS65Y1(6hH6D-S#+hc)!=RcImk(xmaU?_%sC?{P!$}8ERG|Lc!(wk3Fq8RB| z48yqlmKjm%DaxDi{#xu}C^HbMB;j}{h2e%VtYs*=0t`&#HCmg!X2nQ~QUPIhK_o>{ z!7`#$14^-swD>ld3XGC2 delta 7 OcmX>RddO*mlOg~Q1Oqhy diff --git a/database/ibdata1 b/database/ibdata1 index 41b6a88b5fc71b1285ebe7a238cb1e5a21d9ad50..3878ebabb0e19c1426b1a921e5de9a598cfefebc 100644 GIT binary patch delta 638 zcmX|%XIqT{06_11Q?kcJH!HHU$);}hj*OIyviIJjBOKX;5<*n=49WaK{si}n^E~I% zIY1I|>w;Lc@=tn6C=^Qk=YPWC>e{AgEQn+U`HjUvB&fWw3ar~R@zB>=^!1YlXRAdbdj#oO;RK(snT6~NKfe{y(LZhNMA{pe$rnC$Uqq+ zgJpiO7lyNd%CdfpYB$H)|OqFSpCD{^_9GNaNWTwoL*)m7w z$~>7b3uK`zlEsoMOJu3!$ue0kD`chQ%PJ|5LRl?EvPRa*I$1BpQX(5<7PE+^!qoRZU0D##frle2P8&WmzE%H^V5 zlFM>MuF5sJE;r<+RLCv4EqA0+s^qRz%RRX-52QvO$|HF!wem!sN}be8gFKVx@3l2{W-0trhKX(~yQ zEX^cEnoA35DXpZnw2`*bPTETciAYE3B%LKyqLLSt`q9xvY?tvPueNwG_!3DVDXePS(o?*(jT2 zvuu&AvQ4(j4%sQYWVh^*y|PdC%K`!-DJ6oOl2SP>XXLCX=j6Ox zkc)CjF3T0UD%a$?+>o1cOKwY<+>vs*D;082?#lytD3$U^9?KJXD$k@!o=dg7ke5;; oujIA7k+; z_79xl+|72*Vh;87t!C1_WlG)l+s?NwFE>vw{rCG4ZtEXwL)g zAS2E9PG`pu`^ZT1=wNq8yvY<^3p9hCU~13{OarC`(}C&144^ld5zGYofSJK8U{)|2 zm>tXk`htF7PB0gk8_Wad1^vN%V1BRwSP(1(27raZB4AN45DWr~fyKcRU`enPSQ;z? zmIcd!<-rPIMKBnw1crc>!B8*^tO8aAtAW+Q8emOOA72}+1J(uWf%U-#U_&q*Yy>t2 zn}AKhW?*x$1=td71-1s;fNjBcV0*9w*b(dmb_TnE5nxxa8`vG}0rmuYfxW>#U|+Bw z*dH7K4g?2*gTW!-P;eMH92^0T1V@3R!7<=i&;mw+iz(5x5v!0xkuYfy==a;7V{6xEfpot_9bD>%k4+ zMsO3j8QcPH1*5@j;C65axD(t3?gnGPJ)j-j3+@B=g9pHa;34oZcmyPP6g&nV2Ty<} z!Bb!?7zf6K31A|48axA@1b=`f$zbe!4Kds;IH6s;79Ox@Dun4_$T-m z_!;~g{4$xwbQ)rk6yhu{;wo<9E-59Ic!*g%CAD}-8c8eZB)w!1Z^xRj8RQc6lo87V8}q`Xv+ ziV`f9Bt$ApsDw!ssVdc^y3~-GQcG$}9jPnzq`oweh7vA~q_H%SrqWEBOABc!t)#WI zk+#xK+DixND4nFUbdd<@D&3^J^pKv?OL|Km=_~!DzYLIpGDrr?5E&}NWVnowkupj~ z%NQ9e7KxN`GG44QK_F2wQ6|Y`nIcnVnoO4&GE-*BY?&i-WuD9zn=FupvPc%o5?LzC zWVx)6m9k1!%NkiL>twxbkd3lQHp>>-D$%k{w#yFLDZ6C1#K<18%U;MuF5sJE;r<++>+aJNAAi! ixi1gop*)hu@GkGpA=>A+*7xGmtE5t@>_9Zk+lCm8{@ z4d;x?DY^UA)I)p{QV&V{GC5B|>%l#|67PjyIVCEubgp1*QkR!3=m+|P zdBD72J}^I604xX=0tC3}*bVFsMuI)So?tJqH`oX43-$y1g9E^U;2>}?I0PID z4g-gSBfyd1C~!151{@2H1IL3CKwWPXI1!u#TEWR6z$xHVa2hxroB_@Rqrn((7C0N6 z1I`8Kf%Cxy;6l&_E&>;WOTeYzGH^M#0$d5M0#}1;z_nm3xDH$oZU8reo50QB7H})L z4crdy0C$4Bz}?^;a4)zI+z;Bp1K>gM5O^3o0v-jAfyY6DC%}{7DeyFS20RPKf$`uu zFab;i&x04hi{K^jGI#~N3SI-RgEzpN;4Sbrcn7=--UIK055R}uBk(bp1U>Pf$GDgPAI2kV!#3E5L zQ6`C1CJSVWOqFReU1rEkiIy0dC9`FY%$0dEUlzzhvB@G?EK6jmER*H3LRQKuSuJa1 zt;EVYSuY!8qimARvPHJaHrXyaWT)(s-Lgma%0AgIb~zvi<&YefBXU%Z$#J2akdtys zPRkiND{&Gp=OjTA<-A;wi*iXW%N4mQ*W|j~kehN#Zp$6HEBEBSJdlU-NFGa)JdvmJ bOrFaNc`2{twY-tH@=o5%2V*-w8X^Az*J%)b diff --git a/database/patient_manager/patient_notes.ibd b/database/patient_manager/patient_notes.ibd index ffa0da5bd3b20617abd2137c2ff8d4d974901c63..87e706a743ca03b3a6782b210de667925f3f64b2 100644 GIT binary patch delta 892 zcmc&xO-lk%6unO!KSqqGXgjk@kU+CUqF^?GC6-hRcYZacFzTS=LI`{Yt@^NyxexpS zZrVo6HsYdv|Db;mcJGW0A}!iAGw*TFn{(c~=N-;{9KX2SihTfpYchSX28ZMNa_@zz z>Ei{bbBzZGIi27D5&XS4i!yIdW1oTxf}r=ajFsAwh?Fqwa{z(Z(!mwZH*7Jl>vFYb zsB+}IUaQDPNtJO)tTZ*Ftd*;(NGk=kVW5(A$L}86C=L;XZmd8`c5uF(*=WN+cDZ_i z3|r7vOohi(9FpR0MiKo*kuU{bQ*cDR&I&f?1k_0y);WOB6daS_o-LZjh+LRyNFa6w zLdYgBAe~S@-6?yk*lHBcxYfIxsJX8SLO)g@ozliX)EIT4*6}C#9KI%l!*ORNrL!y) zDLqQ7)67$f!d!}j`4ribl_C={MUQnFo!3_s7GmDMrm$@d7U(P-E_}l_qCn#|qLvjK z(Tyi;MAwHtoq>D#?Fo7AIXk1j+u{FfCt%tk Q8)#=_ncTtLXzY5v0m%i&X8-^I delta 335 zcmZo@;A{XQi+?+#9y2g7u>6MtAe({lucDdjeh>=^I2f21k2kP^c#QE3ObpBnEK@BQ zjTu>|<}kivWnj?wFE~A(kuhWAL2r$X7aogx7ceA)3VAue$ zfMEp#&_o6nAO-?a%jpgdjM|K>({mgct+@VwY5+O`h*=<3{SpIN1+oHYRR~A=v!g&g gY-m;$5pPukKC8HaR)MSlT2%zG-UjGf5VmCp0D~U$dLtO+tuSA&^awqCg;73kHF369SQhT?j90mY-{Ba9=0S{TiSx!7cE$=R%*dMsI*8`G`)B4?(A#~Y3%%x+1)$m zeCN9}XYYSziAX2@A39RE_ANzh>X@g*UcA+`y4@|I!D>TG`E_b(%k8Jt_jcc`K2olW zU~%v+2Bv~(U=A=Rm@9PmJ44EN=9MBnxoO(enOj2Yh_=bh{mg{02oXbB&t7_!hxAK^ ziC0aVakec)?$KFV!KB@)_Qc4r2ouB4S8e!!NAyn*pP9KOp@>(aJ5(k^Ch z9@**93Z}#bbdjiOGc$L3D0J`K{V(v)f$1X6dAz1a)U1;!B23eo^IF?Iti0;fgU5J$ zI6dd#jfy)t(%IR0j{kp{_{`6pTC6UU`@Q9Q78jl)g@u-;J-iW22lImYz%s!6U;(fo zSSDB&STC zc7z;ptT119PTraw$epVweZ*MqybeCy5oWelJ;I#URGa1Mw|JJngHQU6h%TH7C#~&8 zEEIh7aqxrv5`HIGoM;A*;15m~J?h=umv z_~2+Rv@u=M*q@MW7m_ojWK&m3pOEYjl0rq(jQz${#$e+U#t`Fb;~HbAG0Yfl6dNOq zkw%G8YDA1{jZYe*jM2t*Mwv0jxZW6Rj5Ed?<;Dbqg|6N@FPooHXS$KP-Frh7;X+L< zF&o&B(B?|YH&-4W=21&c-uHKIF6lhFJ4-7cpo?_z1qG`Bs|1?}Rs}W*Y%*9i*bQJ) zT3HQ^o7#H&9$scxdYR_Du1%vI$Xt`&G-{_guDzzrsq#h=-Eh*Z>!{fiESN5(3hES9 zJ76|77q#X%f-yyLi1C7{M|ibs^kHUUWz|4)S@o2nTjiWxUK zoU51LvDCH6y)LSF?B!gWtTd}q_sMS6!zZWPYx?7p8{;TdSiIh~TCibJyN{#%zW;`3j$Z0YKryrrV_ z5-HU8po1?`2_VTD+QBXfvb*w| zEg(NQ9j8d zUc37*Mpv-KJgY4pNh^A>5b7S%rtk!o}Jd%#QbA{ml z!J`~+nZ+aNP0xu-b>&gdrz^FN=sUb^7LTMk-zuTlJ06w!##=m+e!OL=Y`LUyD?Rea z+vYoF@km<8fDrkZJQ|;|*y54&;v1imN$}{h=Oul~FZCVEc-!KUH09rAsr9_%TX$KJ zjK%&Ii$~H^#^RJpH!DW>9hGh_lJRyRZ1G5%3!IX&AA?8!mcTxXN79_XC8c6rydEs2 z`X~?%j*}i>T7{sF|5&sJ(W0QK9(3LX98i5A8fkJi7C( z;D*HO6tlj)cCUMppwCG0SRIy&^w_4WvfUnMJ%7AzTi8*%wOkj4#LpX`sh}t*2AT$% z4ypsq0L=u=0?h`^0o@4t6zC?=$oKNLEi%H06hlU3Hmmu74$gh3D9>yPl9%Vo&tRr^gYn`K~IBz0D1vhe7S24$u+MbD$rCo(KH|^i$AL(9b|W2mJzc40Igy z0_a81OQ2tZeg*n9=r^F>f=+;b2l_qeBP9 z6Z99*8PHkKTcE#!{s#Ix=pUeSpnrni2Av1}3-oW$1<*U7i=h92-UYn}dLMKN^a1F@ IR_dhx0*->)ivR!s delta 17863 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 DQ}$V3 diff --git a/database/undo_002 b/database/undo_002 index 20f47e2cee50a45f4fa826e74e776515862f7a7e..0ed788bd86060f5a2863e69921a08ad55d6191e5 100644 GIT binary patch delta 2405 zcmZ9N4}8>R9mk*h?QVCw-M`)L2PY109HG)2YZ$c63D02LZMWSGWu+Mnv7}XGX@7@k zAN28Kgqwh}M=A^DT&7V1*)p;QLV{!k6=g(eQ5KnLMf89Do(<-2{9do;?s+|*&-eX& zp68zDcK`w~O?i~1ij-IR3dJ(nb>U+V3n4CW+Qeg7oqb!9p1H%VvUt~`N@FoYwJV-H z?s%q6_?(VqEt@}_MDc={mCEd1>3O6kU~Fc1XvD!k`f|}~$5t`9W_8UINxvz{jh7gg zWv#BE^iu{XODKbsrIaDcFlB@?N*SXpql{CQQzj^F$|;mnDU*~JP)?(~kg|euI^_(? z6lEpl%;d;Ty55<4{p9&O`-YP;{lcPvk--gNF?$cY6=}UF;HPdsljH)G<%m7ntXT5I#?Ac>3P-@r41yu&nOWg;_FLesb-I!|He1#A8`F zI?j``9A4KLZ%Oz(Ucm60W*uKxX&9#F=*6ci9mv20$mv+t?YqZWFs!S_SiR@7N(^hA zVHt+0Y1^%%PWe5PSzGnlbsARp7%Lq;FIVZg!gszF_@8r2nQp<1M*YEp~U64hL28EI_4XsvSy zJyRzqS~g!;=SD_HM_&5U38{wb_*K{t-H)Oo`NA@qyQZTIU~Q%7)k+TNCp zp;)SQygZc=BGMx~`hoSCLV0A@av|bIu~+PKW}WMa>DuR7s`b)!9Z}!3>$@X8&Z%sz z4VYBsAgflDQEjTdkd=)!(UxJSX3n`>=G&ay^OO3IB{ok^>aWm^GF#{MJ9oh(eSY}L zrtA@4B-J_2O67#de@riJN)MF>s`5eEV z9o$hmm=k_CC%D5%Rj+gQx6~#|XM~(|0XM>D(pBq?hnpjV%^7Kz4uIaoX|U;ZNFTPG-slA zI2-B9i;x@Re@ZuHI@Z|XQ_*Nngx!SjDI+z!zN)qkX-E2^19=f~BLYXwOx1c@OXdnY z8jU4#BI@QuqZ7Js0(K;msnuQW9ez7H5Zj&?F*mW~CB3dSQ?DOCoN2OSiL&~fD035I ziE%v@Y4?pChnh-qF|M)8>f^mRQSN4x)f=h7Z=L<^on6W%$_~cQ z@9Y@x4b_mY&Rj^t7o=m8#LO|5ou|Ok}3EJ^9iBMiladX1gnrl8! zSLQnE?DGD^=A4-7rj_>_eZkmroXx4T5+Ub3u&OFx?)=!l6S71H(MjZpJkdogC9Wi{ zB9;-|#9N8C5myt}5N{{0CEh_SC*Dc)5G#o5h?T_k#Jh-h6E_g6i1!e^#CwVN5$`8f z6CWUMBtA%dh`5QknfNgA5#po7$B2&;pCI~(HN-8%TH;pXHsX^6h;_v6#2thp?j%Uu zMSO}_Pkfr#K-^9A69dFO#71Hhv6;A+xR2OE3=*2SpV&%#hWIS;IpP80^TZd3ZN!7b zL&SEXKs-zg5nm)8A-+UBN<2n=i60O@B#sbAi60R^CVoO3 zBYsN!jCh{-IdPo$1#yD-CGjib1>!~G*Tip#lf-X{-w`hnzbF1coFe{6yiELwc!l^g m@hb5e@fYH+#NUY1#NUZC#6O6C68|FpP5g)WFY&)2jN<=e4EaF- delta 1347 zcmZXS2~<>N6vyWc36rT|MGlAs3@zG}ONCYf-w+r=S=wqErB=3SX4*>jPrrUirVvHb zzBv)?3)!SCKw8;uWwekc?JKRcSb*;-bma8Tx$isQz5n0;-gn-W6p$Czv3{Ficd&h8 zi6*ag?SeHvpD)#o{~o`;bhaLz=Q$@&X><31T4=Y-nCN#|4-6hRdtFVH0xU;%+z+YRSv+0H>q8dRSzJ z2QBLbwzp1=22H`RXn{g${-na1vQT||V5DHK6JNA2G(R`Pqa0V28X8&Ul9j#aR43xL z&GKe;+a}DaDa-aocDn{Vz2nwxw%yC_ZTGSJ+M#xs-Oq;Y{`LSn+>Wp#?I?SoJ;)wx zbL?n4#vWo1wTIcUHrM9ad~0mP7TCjWVXUYz9GhP3E{-#(S9kZ<`}{o_Z@qkeC%Jzt z8dfCePE<4^I?t5W#?zXLs`}N>bS8`ncsAa~*m3pD|_*#IAbR;?oO+ZJZW6(r22_1`$L&u{N z(23|IG#Q-@XgZpKPDf{;Gto?R7CIZ9gU&_gp;>4)Iv>qJ7ofT5 zLNpJ}M;D=s(Ix0obQ!uFm7^=r0(2!3x(Y2si;zWEBhWQyF{(h>nHKHc;B3g~spqJ3g=oPdUy^3B# zucJ56o9Hd{Hd=??LGPmX(0cSfYDOQR579^HW7L8^K^xFU^eNheTG40dbMyuJ5`Bff yM&F=s(Rb*3^aJ`4wV|KT&*&HQEBX!nj@r>5=uh+)`WtOV|Db