From 993973441a63f38a96b56e3d20e847aa3eca9016 Mon Sep 17 00:00:00 2001 From: Quitta Date: Sat, 17 Aug 2013 03:06:22 +0200 Subject: [PATCH] creating new tickets over email works --- .../ams_lib/autoload/mail_handler.php | 73 ++++++++++++------ .../ryzom_ams/ams_lib/autoload/ticket.php | 11 ++- .../ams_lib/autoload/ticket_user.php | 8 +- .../tools/server/ryzom_ams/www/config.php | 1 + .../ryzom_ams/www/html/autoload/webusers.php | 6 +- .../server/ryzom_ams/www/html/sql/install.php | 4 +- .../ryzom_ams/www/html/sql/ticketsql.sql | 4 +- .../www/html/sql/ticketsystemmodel.mwb | Bin 17315 -> 17276 bytes 8 files changed, 72 insertions(+), 35 deletions(-) diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/mail_handler.php b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/mail_handler.php index 19869abde..ff629e9ee 100644 --- a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/mail_handler.php +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/mail_handler.php @@ -42,7 +42,7 @@ class Mail_Handler{ } - public static function send_mail($recipient, $subject, $body, $ticket_id = 0, $from = 1) { + public static function send_mail($recipient, $subject, $body, $ticket_id = 0, $from = NULL) { if(is_numeric($recipient)) { $id_user = $recipient; $recipient = NULL; @@ -134,6 +134,7 @@ class Mail_Handler{ // Check mail $sGroups = Support_Group::getGroups(); $defaultGroup = new Support_Group(); + $defaultGroup->setSGroupId(0); $defaultGroup->setGroupEmail($default_groupemail); $defaultGroup->setIMAP_MailServer($cfg['mail']['default_mailserver']); $defaultGroup->setIMAP_Username($cfg['mail']['default_username']); @@ -148,7 +149,7 @@ class Mail_Handler{ for ($i = 1; $i <= $message_count; ++$i) { //return task ID - self::incoming_mail_handler($mbox, $i); + self::incoming_mail_handler($mbox, $i,$group); $tid = 1; //self::ams_create_email($from, $subject, $txt, $html, $to, $from); if($tid) { @@ -182,19 +183,36 @@ class Mail_Handler{ function get_ticket_id_from_subject($subject){ $startpos = strpos($subject, "[Ticket #"); - $tempString = substr($subject, $startpos+9); - $endpos = strpos($tempString, "]"); - $ticket_id = substr($tempString, 0, $endpos); + if($startpos){ + $tempString = substr($subject, $startpos+9); + $endpos = strpos($tempString, "]"); + if($endpos){ + $ticket_id = substr($tempString, 0, $endpos); + }else{ + $ticket_id = 0; + } + }else{ + $ticket_id = 0; + } return $ticket_id; } - function incoming_mail_handler($mbox,$i){ + function incoming_mail_handler($mbox,$i,$group){ $header = imap_header($mbox, $i); $subject = self::decode_utf8($header->subject); + $entire_email = imap_fetchheader($mbox, $i) . imap_body($mbox, $i); + $subject = self::decode_utf8($header->subject); + $to = $header->to[0]->mailbox; + $from = $header->from[0]->mailbox . '@' . $header->from[0]->host; + $txt = self::get_part($mbox, $i, "TEXT/PLAIN"); + //$html = self::get_part($mbox, $i, "TEXT/HTML"); - print_r($header); + //get the id out of the email address of the person sending the email. + if($from !== NULL && !is_numeric($from)){ + $from = Ticket_User::get_id_from_email($from); + } //get ticket_id out of the message-id or else out of the subject line $ticket_id = 0; @@ -209,16 +227,9 @@ class Mail_Handler{ $ticket_id = self::get_ticket_id_from_subject($subject); } - //if ticket id is found + //if ticket id is found, that means it is a reply on an existing ticket if($ticket_id){ - $entire_email = imap_fetchheader($mbox, $i) . imap_body($mbox, $i); - $subject = self::decode_utf8($header->subject); - $to = $header->to[0]->mailbox; - $from = $header->from[0]->mailbox . '@' . $header->from[0]->host; - $txt = self::get_part($mbox, $i, "TEXT/PLAIN"); - //$html = self::get_part($mbox, $i, "TEXT/HTML"); - //use the line ---------- Ticket # to make a distincton between the old message and the reply $endpos = strpos($txt, ">---------- Ticket #"); if($endpos){ @@ -230,18 +241,32 @@ class Mail_Handler{ } } + //if email is sent from an existing email address in the db (else it will give an error while loading the user object) + if($from != "FALSE"){ + $user = new Ticket_User(); + $user->load_With_TUserId($from); + $ticket = new Ticket(); + $ticket->load_With_TId($ticket_id); + + //if user has access to it! + if((Ticket_User::isMod($user) or ($ticket->getAuthor() == $user->getTUserId())) and $txt != ""){ + Ticket::createReply($txt, $user->getTUserId(), $ticket->getTId(), 0); + } + } - //get the id out of the email address of the person sending the email. - if($from !== NULL && !is_numeric($from)) $from = Ticket_User::get_id_from_email($from); + }else{ - $user = new Ticket_User(); - $user->load_With_TUserId($from); - $ticket = new Ticket(); - $ticket->load_With_TId($ticket_id); + //if ticket_id isn't found, create a new ticket! - //if user has access to it! - if((Ticket_User::isMod($user) or ($ticket->getAuthor() == $user->getTUserId())) and $txt != ""){ - Ticket::createReply($txt, $user->getTUserId(), $ticket->getTId(), 0); + //if an existing email address mailed the ticket + if($from != "FALSE"){ + + $newTicketId = Ticket::create_Ticket($subject, $txt,1, $from, $from); + + //if not default group, then forward it! + if($group->getSGroupId()){ + Ticket::forwardTicket(0, $newTicketId, $group->getSGroupId()); + } } } diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket.php b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket.php index a9bceacd3..cba0d1211 100644 --- a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket.php +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket.php @@ -197,12 +197,15 @@ class Ticket{ public static function forwardTicket($user_id, $ticket_id, $group_id){ if(self::ticketExists($ticket_id)){ if(isset($group_id) && $group_id != ""){ - //unassign the ticket incase the ticket is assined to yourself - self::unAssignTicket($user_id, $ticket_id); //forward the ticket $returnvalue = Forwarded::forwardTicket($group_id, $ticket_id); - //make a log entry of this action - Ticket_Log::createLogEntry( $ticket_id, $user_id, 8, $group_id); + + if($user_id != 0){ + //unassign the ticket incase the ticket is assined to yourself + self::unAssignTicket($user_id, $ticket_id); + //make a log entry of this action + Ticket_Log::createLogEntry( $ticket_id, $user_id, 8, $group_id); + } return $returnvalue; }else{ return "INVALID_SGROUP"; diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_user.php b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_user.php index fe3529925..6772dd216 100644 --- a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_user.php +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_user.php @@ -98,8 +98,12 @@ class Ticket_User{ public static function get_id_from_email($email){ $webUserId = WebUsers::getIdFromEmail($email); - $user = Ticket_User::constr_ExternId($webUserId); - return $user->getTUserId(); + if($webUserId != "FALSE"){ + $user = Ticket_User::constr_ExternId($webUserId); + return $user->getTUserId(); + }else{ + return "FALSE"; + } } diff --git a/code/ryzom/tools/server/ryzom_ams/www/config.php b/code/ryzom/tools/server/ryzom_ams/www/config.php index 13e6e37bb..8cac58fe0 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/config.php +++ b/code/ryzom/tools/server/ryzom_ams/www/config.php @@ -46,6 +46,7 @@ $cfg['mail']['default_groupemail'] = 'support@ryzomcore.com'; $cfg['mail']['default_groupname'] = 'Ryzomcore Support'; $cfg['mail']['default_username'] = 'amsryzom@gmail.com'; $cfg['mail']['default_password'] = 'lol123bol'; +$cfg['mail']['host'] = "ryzomcore.com"; //----------------------------------------------------------------------------------------- // If true= the server will add automatically unknown user in the database diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/autoload/webusers.php b/code/ryzom/tools/server/ryzom_ams/www/html/autoload/webusers.php index 014864e2a..58856a5ce 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/autoload/webusers.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/autoload/webusers.php @@ -81,7 +81,11 @@ class WebUsers extends Users{ $dbw = new DBLayer("web"); $statement = $dbw->execute("SELECT * FROM ams_user WHERE Email=:email", array('email' => $email)); $row = $statement->fetch(); - return $row['UId']; + if($row !== "FALSE"){ + return $row['UId']; + }else{ + return "FALSE"; + } } public function getUId(){ diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php b/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php index acfdb3987..c593ec4ad 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php @@ -273,7 +273,7 @@ ON UPDATE NO ACTION) ENGINE = InnoDB; - INSERT IGNORE INTO `" . $cfg['db']['lib']['name'] ."`.`ticket_category` (`Name`) VALUES ('Hacking'),('Ingame-Bug'),('Website-Bug'),('Installation'); + INSERT IGNORE INTO `" . $cfg['db']['lib']['name'] ."`.`ticket_category` (`Name`) VALUES ('Uncategorized'),('Hacking'),('Ingame-Bug'),('Website-Bug'),('Installation'); @@ -374,7 +374,7 @@ CONSTRAINT `fk_email_support_group1` FOREIGN KEY (`Sender` ) REFERENCES `" . $cfg['db']['lib']['name'] ."`.`support_group` (`SGroupId` ) - ON DELETE NO ACTION + ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE = InnoDB; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql index 66059fa8d..eb95f792b 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql +++ b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql @@ -310,7 +310,7 @@ CREATE TABLE IF NOT EXISTS `mydb`.`email` ( `Status` VARCHAR(45) NULL , `Attempts` VARCHAR(45) NULL DEFAULT 0 , `UserId` INT(10) UNSIGNED NOT NULL , - `MessageId` VARCHAR(45) NOT NULL , + `MessageId` VARCHAR(45) NULL , `TicketId` INT UNSIGNED NOT NULL , `Sender` INT(10) UNSIGNED NULL , PRIMARY KEY (`MailId`) , @@ -330,7 +330,7 @@ CREATE TABLE IF NOT EXISTS `mydb`.`email` ( CONSTRAINT `fk_email_support_group1` FOREIGN KEY (`Sender` ) REFERENCES `mydb`.`support_group` (`SGroupId` ) - ON DELETE NO ACTION + ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE = InnoDB; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsystemmodel.mwb b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsystemmodel.mwb index 47b014bc951ad98d658f45a87503af9edf562903..4e9f85fa4ef274ed3dd0c290afe464d27e8a1168 100644 GIT binary patch literal 17276 zcmZU)V~{3I6E-@wZF9%AZQIzGrV(mAApsP-mQzh*?3wI!DVA)lf=B=Y+EWHHu*1QCeh%%<5Uh+cgKUGBbIk zDu^TstO8#W`5Ld}fnyhMy7}w)_d9>K?ngD|_^tQTvc?Na=bNA1*Cj)pc3I@Cu}k6v zrb^S>IgRnx9!ZYGd09@Ct-9O4x0;%*O`nhT^~moWhOQ7#44+naj@ZY8#cD=ZDgDmZ zf02>hAJr6peCl4;cs~g7tMv6~H6mRa@64>M_&;134(q#pMk*p5K9)6z5mAp+_AJGd zL+dDVNPgWRkDA9^q=zqwSSeol~ zsYKRz*7-cKz7LjMa(h-^-mfR8=L`7x-6KxU4>!y{<(AmEKOQmEH2B@zOjGW!E{i0d zE)Sl4KHX1(c2COgZ?8-ob$7@I+nHZpnLKxpvKu%t$!%r2yuWMuy~|C`X?0sZU6~_p zK6;C=#`;_o5dSl{N@+i5_%r$$x@tbIF&(oGJN{O-5$aM!Hr-i0*|7(VJS!q&y@nE+ zI^TXMK$*(dU^P*{VJRYfca9;YDvN#m4C_eqAQAZlrzRUm&tguXzklh?il^{U6Z!h~ z6dLIDVqxxsZw-rzuy!~5FrjLrQ#awulwtY&+A4mczwrqKjXtsgDyoQ88x}`7$vJ}_ z?>K`_cyzw#{$!zv!9&Q0o$~i`Rq3;M{l0~|RU5fAjp!}+Pa))0X5GeD1^_>!#X{og z)H8oSDf^V;TIb;gGj}4ibq&4EVtLb=zrB5%fR>~C&{C`quW>IChVmJ|UfNIptI^%D zYQL((8C$}LBr)vRU`Ufm6m%%pax_2t@0-tq(br{FPPDp#@0!pBI#Ujxb#1ep`y)i> z$6;;=>2BTM-IGbm^V5qip;d-)^LApwuV&?WC84Z2#wbPZU%O_iMT&KU5C(HI!wFZG zQ(Lxb=Zha!7}{| zK018q^sV{ROP&8_9arVVquM>L@4R1{;zet8mrd+Y5i3$!@o9Z(ygk1Te4M1{VQY+^ zKbkta`{3ho`e+{VS$Q)n6&`MlzJ2`Ze)aymJzG8(`YwjRIE%Qw^XyuC0HUWbs#mks z@4eopcV?AGgpG*Q%)sw#etnan$kdV~9G+hf_l-Eb=tmo^*%G}!RS%}yvv1q@@)nq8 zkgIU5`se+}wry4-7;|_?@zWU{GlemCV7XZs2B(J|j(;H-GE*&1Fe zu#{_~2Mm}Kj?-5o()mz5HhNLCT`(j#jXfPZgUpwPhLLKFrJ%y01D6yE^-VFJF%l)lwRAz52^`7d)K#T_ovghj;UnKv=zxg`ZD+ONz`1LPBV*BDee<2~RaZ@_mL7`(Av6SJ-F(ncE0?+Yhq+`K!^o8bmR~01>6R*3)@x`tL|l|CAw(@CmSpKr5&p7*CEW34 z4f;Om3}c|9^70kcXFgIUWxQ2;@9n8Tbq#w+q3x+=1OQ}TeK!U)&0T-=Zn~lSLHENR z@494F0sWPs4PI>j)d|))*}>R#A8leL9r&5?!ft~Uvntl-v*Pf!cLks4Z8Jfa-X4-( zd@v07V^}_dNm-RE^yPj?1du4#VsrDN4MNxYeWlgG0h1uaPJ}bCoD)RI&Ah){r(=BP zMUv^KqcauEZwJRK&B5{yB+&v<9JyV{#6!BHvR?(>>6ELA>mGQOk!-0^4Z^{vV`!`SHqryPh0g|hm`cXfctHV`qi^x zEo;U0J1i?33={QojKo)Z@WMGog8TdQB0O!x+q9A}=l5|~R<&7#=%Q>R7cL};nJBAX zv21Q0iXJ$x^Mpu*l8^fd%P7{6ql6L=;^w`gTq?(Tv3?6!e)5De`xgs_^EAAt_b2DWx82U^_*?&O&&KVn>STE?8qplPbtbu8oLs-xLo3{} z5x=QCtG?EadDRX%yZQ1N=3^eMKc-#EW9T4ygS>j5Wn;@s!uclEgbtVUWXHOi)~MFD@TUY zbfM{q1H*tL`!xmLu={6J`xeH~@!V+*+1)$9QIDZv?Rw&VMlXj#gZADQyV|zEL^mDm zTfW?*aZ!y~$+-G&GVh$U8S+3w|{m z2HgjkUC&R#R**bt+gCbs%cJfopAU`E0$*maBDeYcYhzg6-Fhd7^)D6zl4~bTfy^o6 zcK3ruODpZP7y2I?wyM9+l$GveJ^b!5t?-_^D$RA4(9Z%PvByzBq~UsvziiUf5`NWN zrJUFH^m&w^w+Bj3Pv{wuds5Ii#(8Eu4@WYSKr|?6o9s_6TC-ofMUIb}{rjzxGb=YI z1|K%)&gxnE*tqs#R`}PIgNab%oN<`f<6*J=P+9@j_cbwRYYLOWHWwkPuhTzv_MP;qbRcm-_* z60rc$XtH=1e^J2#?)a02#8O~f>c>JPQ)2tv;GUI6srz~)XYyNYgrHDH{0u!Yh8u3Z zt>?DvEylbAq-j;L$I&fpN1$XKWWOei*0%dc@bM(!;qOkzo!R30H6V^x-j{8_4UM zm5ZAoF@h1nq2FAV>~8xVDaSNT0Ju@7YHz z=r~OK?&Dj6E5`uvvj;N!n+3cFCR0LA9t7@5fjEWoc{s2%%T<3kFjory^%pn-Rwnto zSbBCGL8L2aflF%Q^yNn$pI8eHT_8gAvefMj?j9HipirMXI( zB=G<{* z2{<3fiSs=ECr`dnuRtiXHsll7htKdXb(u;sADJl|ekjhP{+>jiq)D3wA))|TKm0c+ zmH_gQ)=N)Y9!_GO&{lXJnGpwYu4=1RuSV`>*AB0Rj_`H~A&{+G(86;rHi{O32R>@= zqetvvVVK!rU!WlHzAsTtNDdJ}P0n@)A0FlQ`Ak&P)zZv&3e!~!*A(~(6ksj(v$WrZ zm3puq>_pSz^Y_+RmqEnS;^X($FO?$$P@_`!)^THZ)*ILKxLKC{N9Y;3fBJ`#oB3MV zi-w{{nvC`v+$UblbbY*?h`ht>Y>j`UaG0Gd+IAH307v^sV|)mO!61UN%?k9d7CI{2 zCC4aTTxe7!6ib)V6q|7t8!%{4ltW77YTyWzWK6M|%qUoxMti}??FVD-si^@xcXrKj zD`Xb3XHXN|g7V5#97Yl7k*NjAbFm)*wj@*K&iZ1DHa8LcYD`n+OB+ZlCowWd*2L|a zQnK8-mN)}3u=ytYh9klId{t6=T;k}M>;6`5kpOA=d!pkL%r}#~ydZhfMX_$VWO5HA zS1v5Vzcj4bW~qm=VV6H0m}DnWOCoo|Q5HN__GZMoL!v~MX6yP(AFH2-~u683f@&0Ny z7n1{scdXa!&F7&8cdWG~%;z1&X*e?j8!Y#;^|d1})8nGw(OysYuz9yO5r?UI#v9;f@<2?X};j^X8DpIrNYMIo_72c=S7x3ka{_#X#;q=DsnBFMU*?7*;MsC(@Anu zCY86u64!#MsEwmkt^@vbILpDRr7>|$dco46>n)=sG5pkc!~eK9*6iJBsxP1brx z6HT`~r^()K zL#7uLz^O_!e+##&8Nf-K_ghgX6ppZG!e3J`(oICb`)XJG9I7 z$N>!wC!xY*_2s-Tiy9`x!lFpk3j_A##Lz)BLM_TweaZYM>!aC;fwUHIX+nCVvU;K&-w(!H2rg_%EFyY!vnkzrb+V;>A&n@{nhs5;z+JMD+~7 z{#GXu7$tc{Jq8(}oO^X4Ir}RCLVXroQLuTCBo`!6q`=5PP!_{QvmejKy_IrAT^+SW zNu-7GgN!`+hX*`LP!ptp@T|x}6TmpZ@XAp`Ju{&-2}Dx@e`eu15dQX^If~_d3|tc_ z@Mj`YLX|@6h*RIP88ij^4|NvZ%TsCCI;+0WF7t^G5$9#YueB zF=UBQcf@^d^Kkr0Z-DVAA%>5O^?7@T*1Vmea89=c{7JK>Db-l^1%@0d%?|^NC;`5W z{s+YplKNw)8yyG5X^$aUaCMZROV3!BE}i~xAPSPQP-Y;=-A$u1e>K%}Iu^zN5O+hr zJ@&td`mSBu`<_FDay=?3A@u!27f3gOp1lI!{_?+}G7s~ma#hpHB2Ix9k%CPI@fM%ZcSNyCG~&etC{H|-HKKLJHlm=F<@`oA%j z77$|Wpa`4ZR*?k$Rk#KDtETLPw=SC5tB?si+2iYRCzkWvOO#r3n5|eC~-#O)*O|f*pwlJsZ1R|ew~rA zAo4gqmp-STX_zYLy+np@gw#dh#wXY-DeQ4<PNPiQN*pnp0g#Q&^vRs(~#v9(ZXu+LPGK=`;D0XEyy)8Y2|~C$@Y2_O1_T zkUmkUpwTj#t9_y#TQL3x188tS-*Agb6?y1AYc(HPbE~V<`0fe-{@^Fh3K#w5CIB1^ ztJ3mu=`jdL?+1Vfg8*qKyHPJ&Lh0dJTS~~IE!AJRITHf`SL`f}S&SUpycNDADb-te zSrY?M`jK~QVnJvQ0kE^-R+!+JSl@lWD)ky0I;|bSNynEheDO(XO@4`nA%KH60%GEy z)JV^;lm@87|9&h^tg8%D3E|bl9ZH@mWnMT#M-VCeGVQ8RI}9_xynn1pIi&2GTdMpGt z?cfm};+Z_HW7+DQTFxm2j!#D`3=5?ivw_8YOwEUiq<9-QED}RI`LWv<^Wf)i+9}Jk zO9qp=mL3BL5*A|S2D*|@1TD2aO5)kmJ%v7AHpPfUHe2JVzm>V1iLLL@Bid<|>;UUdh$?grLl5-vR5f#dUhU+K@g_J{lDN^h5^l)xiq`ln6(NsRq_L> z?&d0V-aok8)Ij|S9!`S#Hx896GXYlC@0P}m9lw|!d(w^F=awzw+S)47qm6B<1ntiT zl(|YKYxkuqd$H)y&d$6bB%w6O|GuV8V?MuS2EpyX(UhWQ@1)p_F~Ec;&jic$8=Bi7 zR7JWDjDRg(!fYNAJq33tD)~#Fi`BDwj9(L`oRHq?)S*qEyna_7AWmAw?UAjVH3Q+E zjZ?_E8zo9PJ|}LOhkJti*EuMTP$Z=p^=&ArW?Z$-F6w9D+gLZ;;5GBjHY+{kC9CvI zNlCKfK=e!!j^Wh9s`lZ)sc9wc16bqCAgO67?E{9|rpBc^9lFN))pu)10IWz%%Pt+b zVcsR}IJC|BM_VS@*J%65cwl8LqfVAz$FA_F?{Uv1@yl^t3_WxZ)trA0F&cp1Y8c#G zwIvc)WoTN2YV+?#o$8P$RI{?!68E6e79=SwL1aNF7GtHVEf#nYgi`*IzN|AA$6ng0 zcq-Jd-&M+Ud3{-Q^GTJ z=obHbH=8|4{;HLSJbU{T13aIeeKvvi@!sAt|9~?3t8M{`Ueoc1+9X{1Q7a!TffUv4 z@AiFz^_+D*nHWY#3vf#}nv=4BDqBse{G+6z&p*|VByh9_mHIgp~68*CnhoZbxPG;rOnAK!noBl0%!6o7#czK z$~SN%sxKbUx|Kej_2-a+A54A(491lqda-8Or=#R>%r^_bcN9P^c^Sdp=|A5{|r^Mls zxOS4MNe2Y7C>(ub&X;*S2{fR$xk>-}@Y>(MN6>H>teV;jS4wZB!6C+jU9;#X;={kU zPU4XX;l+(JFTDNH1^wuLg1Fe&v2Zj@ zbba9A*c6)PX5x-HEn%WiEfys7B;mU)u(DW^>&qYrvx-n5T2{>`RoBu;V=q~pXsMM3 zKV%_HgegM1FaNB9-2@EJu_u4Z^YM2V)if~=*W*4?Q7oVEo2Ho9{@k$H6W!PoI@jg; z5amSVZ)KN0-pqM$$+T4R37Pg^%$rID6;rH6`dU$VnnD3VK_15mjCQzTZ0WJh0>+d9 z`dotqG!E8Q2J@n~A5V|roFm>r(9_K8b0gG{Y<+4@Ge^##oM{e>m*tWpKR5{tiSMLH zsz!+LCd(XBx1of#=zx?B3~9F{)5(bfM`zkDM^=GlB}lR=86>*PYQ_UVRoHDL)6Rn^ zA!qs&#YX0J6A;o)=(Civ1~IkDP8l$B5Yk4GY=x%gSa+Q55K+%GVgF|;M`c5#HSase zKk8?TU`i*ubO$&@Pi*?YW{+zsGp&;At8qMT86JC1?pC`rs-BF`F*%};qm4{>OpLmF zMrHiR=ro=?p)s*>cYN5RYiRpuK12yxqc^X;HwQ7wj+kvOcoH5y9N9&8Wdf|HdhG%DU=Z|I+2ReT z=_FhxRewtgj=fs0jUA{KB|=->&hrn~`>E2mSkK#b*SLOWKo2{<(rhDHOOm-P(ojBz zEGcv!C*(LNlyVwTZmK7flVeT1jBe%$v88{~+_5Yoe6dl6R4f=MpFctH>Fqju*a$M8 z_26PGL7e2a4~b6*vVbee=kn`XA}bMf0fp~@lfkj;6itSB;426RV|36d0INdu=!#O3 zREaY>NDfJ)YF=`MmR^z+SPGe#+E_>SbJMvW&Ve3!^m0ryt+Jyi)kEwwWZoABB&9vq zzcP5#3N=CL+PNPi5_V)wzTUU1>uvp5=ny+YxpFhfa-2`ME|Us)ytxs&mKF|OjS|e7 z1P5AkULijMs1^WPDTgOB3H*My2hsy#7z?$cV5N%LwZ>6Qo(dngSG!7$fK36WjJL!z zXw=GLB8uG54Yd>%f8A%sr3U8!V@Kn6k%fHhCkj_|9)g3R8c5A(h4sl3?^bffT|-#2{#!IN!n7nkoK#!ZdHGE`+pIU@9yMfKRodV5jiF#((I?^ z8`7zcS0`WPP9Fz5rGsOxu-uk)mOV6J%v$p^h&&voecVq;k zA6YJHNnk~y8kbyu)L8n9J!~0XBv7QiSFcK!n~zRdOxpz5x!3(PV# zwW6ms6`N?q=6wFqQBvi?r<3Q+5FXY)HmR8>#0!u1Ed`lkt*zs?R%I4@3>XmHdt2$IG;!#nXg+`;B%#M8aG-_`4jU&G)fFBf73F2;+f&*DA|Y5OxE+ZI z(h~bXLyqkuJpkD^z^b6#yFI0^=@p9g&@X;C27SUIY)$YnYHe`|H}jkf1n`S(p%zxppqo$J={9rh6U%N5~(>n40S<8_MwR!n_d;| zlf1pekBnN#$TYnhd_}9TIr|fOq1woE`-fwr%4s+ppsE&B#EgqNhsdf{^2>_;uk>9` zB|HLYFG^usfTP<#BVNAVG9(!UANHq_31UNBg-nu-F@xk1Ktx3LV<=X!U5ki2cAvpn zv_m?Zuo8cZ2prAKVVFXywdN25iR+u?p&R>&Z7N$Lzji~*8GZ&~;fcwG6GeO|l(3~rDS!(7GD_(|X#(eGkHRe(P*+QLE=z-m zxwV|3s(HBwI>1CjS(&&8;B>D};+Bzm9iEW!t{2=L(NhJ~>l0OwHrN|^UC4|`ke8Wa z%8kVy2f%d79n<{`y-?8qVxa!RGsX;?{yMB=F7Lg5w& zOjsbM3sBgb9^M)`nC!~hV6d`iRb(Bt<9;DsRW@wu3#o`#G#po~CRV*ayQ#ap&CkR!Fp3nUgZaTMCMXgHF& z)T|^RGZqE$y(G|F&cumc*}S#<43B-mkSW<&?AQ!ZiWK&qE5ZHu2XWKJJBp}W2k&Us zn6-K^9v5ea%F&Ie06m?bRffn0%_N8u6!5MzQbTDvsxO3*D;CBtgt2KdAPFdU!w}IM zn$nbs(ZZD76sr#f?lP}7NOXY6v{HinxuZx zL@%vx(3jWxYS=2#$h!-!p{W_OaF|2D+fe;28w7`LPTmH?d6M=w5Vlm%B?fO`3RzR` z^QZXCHAMA&>Nx)g1>oXVUXnYx>Z@|HeC~bW^7ePXcG?*YFmypRtJK54d=Uv+D)~YC zuBfx>7GyQh3eHp2dqO&itN2$*rG!nL){UUIfGy8kDiLDIe~wj-bi(B)BEV4${v)`0 zAX4oDPn9_c&X%{P1$y=mQRAAM@Jp!;28~{7MfuWR^JTOiAKtBIjksd+FhQptB8)Yz z(o$fMWMW%EaH-Ff&QC&@No#z214JuRdTC8ngVxQFnJ)wU)6<7)o~{^M$D9L0bhI)1{rHQmfs@~VXTfFil~Q3>JWD@r08qq&ss z_v*C9!|S4eM!~g+>))}k8{U^zQnd@JKHrSr>Wy))stn?9R%RFz4tKM{AjOVZ9q76D?uEaAM7g zZusNKGHrA%ws99t!(HC_2tA=<^P}oo6ut)O?7g|P!!LIw@c~12oN48!X|sFZe=S+o zt~$+!*nZ@gzFfH&`?DjpPV429cI@01Zn*ajO$bgCi4q2#I@J%2JE;PvWvi+kEdkuR z1N^8rOc~o4FxXqRk}e;>18j{-4@A^F`V_m5hMh^6sG z?~JLhj-d3?-#BG_xO_H+ErKVQ21nOyGUm&vuAQq(^*24+X|D!~uq$c*Re~|s4HgIv zjYw1#spPE{oSu9>KJZxEM#Zo`{GuQKU1omT`g)7gp^q@el|ZHK_FtQ1n;4Q_n7zsk z?;oaST3C~E)I8PB<9SF>6?rrTb%u;A!(y!MkjpW4M)q$Q_$Wc6X#inFek&%*RC);z zlU=v@m0(Z%G}=+Tj`V7OmtuCG59-V}zw>SPLnUF}ID7G=eyn|v(R`#2fpdGpCEBAJ8_M9v6K`a#Zb27Se(S0<$aI|`Pb~(8H zw9A#$3JoO!Uv73*_`Ie%367$=af0gO%%1DL8e^ALFC^w++cUW(0gW!4Mc)3(qU*eU zMytK#S41O=Qsk@Zx&yiOC&oU*}eQkTNxakUHU26V-}D1mP$ z9v_H$4>%~4BPOv;Q*`GzxtU)IW)ETtizcJ%(=Y_{7nfq%^ug1iudxfTM-qPuD|8nw z0(c9a2{Aa_3F@P9I$i!z?ppv`j+bS~ZiHu^xp(BWB_7KsFrjTi%TPESN~`l4;1+Hq zGvY^2hH)n}*BnUzD?$DWL&KT4V_mb!Q1Lhg(L24aJ_;34%3M5E+%e_HZS_{0ciJ^2 zXv-kK61DN1%I|4B#*2`-|5G`na;ccrz~r)2&T}anP*kN|z3{LU&)ZO(eU{9E?#Sad zTyD|%vbhMAW_L3AHJ2|KTCmV(w4QPYVGK2O$A*bN*ajTm@oK6pD^=WZ_mcxdoquG{*|i=| zF@H`n6*QK=TiU)Ju3!8xJK(Ro{JxvJG{%Q>$?dPRGR_|HT3jLa&6pLFbZK$$kyX(){3St1|H$B%O zC#fYxp-aAEzF=R^@78x$MKku%`z$%L)Ig)}hmWstbn@(1X8!e4(KC*01ijsCLw+At z9>BlTpgnR5G_G}Mv2%`m1pU1nL-9`BhZ_EF8Gx#yvGi<1wldpBga$`?eIbahF+p8J zwglTo$o2CcXRqp+{%6J%MWFOV$^B;7IV~$DS|ZCJ>x;|HF0Z-D8Sm{*lgjevJpXk} zqD@|#-L@O-RQ12>8o$n$nyJvM#mBFX(_^Ml<(j58`8uC!4a!X8TnN8!RmX_OuR^CG zZ8)bK8-prm`el*`t9i;)gsZo^mCF*O3+xZW*i z*~cBs{g6&$pIOYzQ%?MR2dSmom1~&5PJz_PwhfW(vc=n15B!U-9mKKyWj)3C@@{x? zsm;XMp(vLftRU<5_ux-~Ur1hQu0AA62CiDy)8_B2P{{~| z{=A9N-#swO|1y6kdUw7ip@+TX*-^T!=cc|ls0*O9&RE@P?rd*UhM$r+mwh7&iv@p> zcE@E=!#=YKPVePJV!jdsF4|A7D}v89W7WSxF1$MrXf7q|y{RMV=Iy&?_GfA3oI5tB zKVEhw3ID6;q^S}8|0_D*$6FUMUizj^Fn3C^b6g2sVfyG-Nr%#O>hf)F8p;7&4T;Zw z`CUF8*-?lk7CsIZ?4I_V1XY-C!&zHjUlcHjK#`i5(rsEhvs%X+0=!TCM7vTc(j;6{ z{e&V9z6vJ5d=;%PCY8Q~48um+j|7-AaF8-SE7k|F4G~0BZ$4w4LXf1fqcQm@CsKAJ zA^pCw5Z0VnS^jEf28rm%V4A>{RzNh^V4wWwkGv6zJ51~ko&NdN%Mzk_wl$=|3c%`s zQ1tugcyx+%Ivn82DFk)U37(GFPI*X~Sceea)nlLOW05u7rx1|Ht9ZjjE&6EJ8756N zpmLmma+>gIdm`RK%us@RuYl##4D{K{hY;Z8C@6L?#q4yoVyPra+Jc8&V*hd&Md+Q8#I<%hyk?ov{>1 zrKxYh{{b6c@*v)j^G36K`YB$OXW1 zkpAKGcc+x0-CIMLC>G$2(*G6nyZ1tlx*MH}8AVkY5n z>U-=5RtaT956LhV5C;q|JV~FG0MtEM4WihxK7mWDc13p)d9o0rDb9@dnEFEXAzeTe z9zy@x&h%zElW)jp6R465Xxd&-`@sL66=Hk%7SHQ)W0#nD8kA_U_q!{^ix!+eDEzZ zCZT=oq{R3Y&rEZC^O3j>sf!<$lHi50HH4^t%%|q!aL-Z^ND)D(jqYE5&-|lF<|(ET zvp0kwifB$vAm$!zT5xx5(B1wywpWp4 z7-c24bxB`XxLz-b6+ywDwh*VQOsvwx5WTkC^;Q+6K{NDZrXEN=8?z$qNcF|+`_4oj zOp~mqT%``?H0T{TW)3(Hy$bIL3Pf;mr;-7=?;>M0zX`~nn}G%9XAiH)eznLJ-Nn6{ zumCX|9+>(E@=))nPICTE31TpbLZE}*S@77D0tQ4lp1mSI^AjzNTQKn#xixQhw(8N@ zDkFuHB{5TMJivQ4p>ts~OrDEpf*o(|S9gCu6yGY;8>G}^89u9I_?_x|kLhLVEjMfw z6PuZV2h~(U@@6P3&96G%e5y|x~5Fy6t1(^Q?5?q@(ptYQ%gU-$v04PGewuAhGu?vyU88R zE(@zTmz(`zd*%Gn;I;>U^JMFm&AA0Vs% z8A1~dQ`~3QF6?H~ovWI^FC&!!nE4!cc8iHTcltH0k}Hv!z~QEL;+%=omN!o`b9&md zBPkXff%{j!CR?5|bwHnINwT=X(aX7SS`JX5gzmXfg2#1o3-jR4%_x**hDNXGf%)K$ z|9sRK?{%*n!P}A)db%ji$6tQ5u~DMVQF;fX>cP#3W6pLgm@M#UzFQw~e3VSkfc9Wv zlv=RCG@j1gxIz1HS(Lznk(scTH&d~anHhjgA{uO!-M`flVovLOKc)FXP6wEV=2Gy< z8RSyiD>(`6+S>RV$X}D3S%94;xeN91>J&p)50f= z^{=E>xe$59BXp{JXG6}!L1jSm=Y$yhv;otIOPwaBi#&ZWqRxZv8L!OD75n0K11`=l zrJX{;Z>C&miqhDkgD94$-#f5`ko<#W_#zoBboQF;bT6=M& zYi^-^Ejnf&pa1eq-;sWAz_e4p(0_g>LXY$hXe1nG`v=c-UQS&stqaTW!P?-NU{GV& z8kjKU*038R+S2E!e6wdJWMP*-#{d-T_@!db%#Q=lr3vkt&c z2xmlyOiaF~Thg75Imq0Qk?XafK=}F5yJgw2+N?jVVfE7}6&18xC%@oXzeag}D;i@w ze}F>v;!^k4lEL6?t?k%dn3GOOc*>cnQgdq2*7kuEI)B*7m+<*Pk)glKMN!|n!i2!YWiwbPjq0G2V4tj#V$>vI-DHDQCJf3Tot)35Vb|1}8ev^u{FUM=$uOn*QznZ?TMa^7$*1evH%ca(I`@BEB zjazYh*w{aM?n`G2)Be@?($LFz^=at5ZDaB?Xk2FDvc$Q~1>^l^g;&feH1wH}0*>jDAlvc(J|;-q+2ztv?n(y70N(rZ>Uy)Zc_X z80q0y_g28rOsEaZgzA&dhheZ*(=?gzHfcdvI6fhMbc(4kP!2Nx!NE31_-K_(-A*{4 zb^bB0I}nc)fb?8gNAtQ$zd`3$j!}49$zxE(t`24L5syvc)8`{g2F=KX0Yi+I9%FQB zN0qnN3Pv4D_{h$~xtl6Jbmf=DBt!-P+b3f53kG8*R3hg3z9maKmm*|07Xr910BnxX zmk~W#m*=zJF18qDKJPKCI>vZ*IaH=AQxuN2d1ceyx7{uZ>~?=YdHgz8=G#oaq|w1G zo2c7iUXJ8zpRM#gC9vJ^kM(1sH7Miwe)Wc~*t4$@pOq8zLB#Y{>XHXe#WHHdz$DdwG1bHVRA3!upW+OZ9}>K- zKS4Vm6J!`VA7=DDPcIVcTeRbIfS{FA@BQ(7FYe=58d%=Dt|!{vw!2&ToGt7AbytK? z%VQ*})4XbBP)OZ1`*p=if8b|>d*T~;xVF?{Ma^l2y^-)qACL`6kE40g2t97@kU z+qo|G&Ri0<;G2h>#?Bl2*>Ui_JjQUmW)_N6EPi}z>=7a(Bj5WkJ|!<%y#14Y&!rur z4-ZR|7I=q7?qD{yUQ| zOZ=M|2&oRvI06}Zm-gxUU^AL`^W@3)=u|z-l%}(}sWq9P+~+=g&5vUp)BXotG5tSPRh~7duc9MU)8w%|~D5 zh8~g&g%&j-J_-(K(v+}J7G?oIj$Q%{K^`r8n6OEm-k@{MvrRQS%IhD8-FE9DVK?nU zoAbx-w&slAr$dzMke1|9lU*tz<|?0=4@&{<-@8w}ikqL6x}f4fVG)~zDwPa10RIli zS+B!hw1jh2{ZMb4$F(&p?OpqIzLky|SG`vw((Zq^SGVyBi(PA*8@JtlZzKKf*W0qO zN<7ATby}x55>Nd2@?6GGu5O#3yV%{X?^Dx$tDW}_Z;>DS4_d*L<=!7^<~B`#CL{hep`M=dNIyDxI<3Q^sn??0xw?VJ8qKbQEisciqeS7b8cL#W0t zTq|c{n10by%u?zpX(;ouE6`v`9DXE2tUoqALHn%p61~bu*MH&_`Hj|KG{Y3T7~z=D zbg2xqposy$l4_W4{D6MtPJ}FM=Lc%*FK!1f4BN~3)4qa%-N2RyfzJfr5gx)Ri+8Gw ztN?k$B1TjWLyviG28=**Ub{JI-y?TM(o~`xV$VB1ASR3&4`Jtl=Zj z6@12qrP;lA$9bod88mBjeXn^tw5VdQZEu#t(d7e?46TUzZ`XzqXC=4g!^gA2(UAut zL5ZChgD!$_{?Ve!6*6uSrB9mB^-6&XnaLiJn1A|}qde+o2k)~uG z&yB;19Q2%*)*Zq%EleT3vuMLrg(_aNDS3{|L%yE?YW;MJb3)P-1JO7k_Dg5*i1DmA zG0{lDWE89ijTu%`62#s!>=2_yu@Sac`{JX_30{7|LKDZ(g^l?FO z^#uN)H79>%jSU15h|#n5Y&mLZJd?&dC`Cg)?9755T9*@Wu@CW%k(}S-0y98JFN>Dc z45x z6CNg#YuQj;5xuWfGj>s!Y;p#VF{+XbwIIDNgB8l~kDO-Z(@TG>iPe+WD4Ft4VjTRW7VEGAaLL29;r(-j!MTHm7hhkjL7%+WH)#=tc?dp z3CzMWJfrCsYTs*b88SMNC^~@3S(MM1kJu}Zfh9( zop|pRK*!W~@WJ$GAE-fxy?ftMMbG7_1$7TfAbc>b(-0ozlLO$q z{Q)>@S^jbkQZnNdI?PIb-1)CL3A`DYEqG8VV=(mLpDEgZhx+x!!{?}RJ*SpNg1F2~dK!wkE6es872{y%$EK2K+T?=+)tZk4J{R=TI3Hcy`O_0WZ? zI8TP>Q-dp287CdsAi?9cuU^K{ny*T3^${Nvw8FFqvc zZgnbdR&jeet7Yz{4}yn&K3v)Rfx**wE0boY>&)~2eN2jLS%P)BnSBKI7nf9IZhCmc z@JvttMeZdREta+Ksr#J3@%+G%AQZ!Jz9l7b4%91RyA?Km{!`nr>fbF@pVg_JUH z37>CZ=?rQ)rnL6pm)~ll#S$6fr`kOdTXu3iRc zvw|8a49q~d5=hT>Vqj2W@U09E^ic@UFUn3z%}dTu@Xb$2%~41!O3uhEOI0w`GhhG! DUUp*< literal 17315 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 B$?X6D