From e5dea3a12820a6d17a8c4629100a646bdcb11560 Mon Sep 17 00:00:00 2001 From: Nick Freeland Date: Mon, 4 May 2026 15:44:16 -0400 Subject: [PATCH 1/2] Submitting assignment 1 --- .../Assignment1 - Logical Data Model.png | Bin 0 -> 35139 bytes .../Microcredential_Cohort/Assignment1.sqbpro | 94 ++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 02_activities/assignments/Microcredential_Cohort/Assignment1 - Logical Data Model.png create mode 100644 02_activities/assignments/Microcredential_Cohort/Assignment1.sqbpro diff --git a/02_activities/assignments/Microcredential_Cohort/Assignment1 - Logical Data Model.png b/02_activities/assignments/Microcredential_Cohort/Assignment1 - Logical Data Model.png new file mode 100644 index 0000000000000000000000000000000000000000..e76076ca06b86eb456f3be8a6aa03dbf343d640d GIT binary patch literal 35139 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

nbxyVHpgOX`2M*i&ta#_LN1n~#Hq16g7VVY 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 ShK_z+q@t*
--SECTION 1-- +--Photo of Logical Data Model stored in Assignment Folder. + +--SECTION 2-- +--Query # 1 +--1. Write a query that returns everything in the customer table. +--2. Write a query that displays all of the columns and 10 rows from the customer table, sorted by customer_last_name, then customer_first_ name. +SELECT * FROM customer; +-- +SELECT * FROM customer +ORDER BY customer_last_name, customer_first_name +LIMIT 10; +--Query # 2 +--1. Write a query that returns all customer purchases of product IDs 4 and 9. Limit to 25 rows of output. +--2. Write a query that returns all customer purchases and a new calculated column 'price' (quantity * cost_to_customer_per_qty), filtered by customer IDs between 8 and 10 (inclusive) using either: +--i. two conditions using AND +--ii. one condition using BETWEEN +--Limit to 25 rows of output. +SELECT * FROM customer_purchases +WHERE product_id IN (4, 9) +LIMIT 25; +-- +SELECT *, quantity * cost_to_customer_per_qty AS price +FROM customer_purchases +WHERE customer_id >= 8 +AND customer_id <= 10 +LIMIT 25; +-- +SELECT *, quantity * cost_to_customer_per_qty AS price +FROM customer_purchases +WHERE customer_id BETWEEN 8 AND 10 +LIMIT 25; +-- +--Query #3 +--1. Products can be sold by the individual unit or by bulk measures like lbs. or oz. Using the product table, write a query that outputs the product_id and product_name columns and add a column called prod_qty_type_condensed that displays the word “unit” if the product_qty_type is “unit,” and otherwise displays the word “bulk.” +--2. We want to flag all of the different types of pepper products that are sold at the market. Add a column to the previous query called pepper_flag that outputs a 1 if the product_name contains the word “pepper” (regardless of capitalization), and otherwise outputs 0. +SELECT product_id, product_name, +CASE WHEN product_qty_type = 'unit' THEN 'unit' +ELSE 'bulk' +END AS product_qty_type_condensed, +CASE WHEN lower(product_name) like '%pepper%' THEN 1 +ELSE 0 +END AS pepper_flag +FROM product; +-- +-- Query # 4 +--1. Write a query that INNER JOINs the vendor table to the vendor_booth_assignments table on the vendor_id field they both have in common, and sorts the result by market_date then vendor_name. Limit to 24 rows of output. +SELECT * FROM vendor v +INNER JOIN vendor_booth_assignments vba +ON v.vendor_id = vba.vendor_id +ORDER BY vba.market_date, v.vendor_name +LIMIT 24; +-- +--SECTION 3-- +--Query # 1 - Aggregate +--1. Write a query that determines how many times each vendor has rented a booth at the farmer’s market by counting the vendor booth assignments per vendor_id. +--2. The Farmer’s Market Customer Appreciation Committee wants to give a bumper sticker to everyone who has ever spent more than $2000 at the market. Write a query that generates a list of customers for them to give stickers to, sorted by last name, then first name. +SELECT vendor_id, count(*) AS booth_rental_count +FROM vendor_booth_assignments +GROUP BY vendor_id; +-- +SELECT c.customer_id, c.customer_last_name, c.customer_first_name, +SUM(cp.quantity * cp.cost_to_customer_per_qty) AS total_spent +FROM customer c +INNER JOIN customer_purchases cp +ON c.customer_id = cp.customer_id +GROUP BY c.customer_id, c.customer_last_name, c.customer_first_name +HAVING SUM(cp.quantity * cp.cost_to_customer_per_qty) > 2000 +ORDER BY c.customer_last_name, c.customer_first_name; +-- +--Query # 2 - Temp Table +-- 1. Insert the original vendor table into a temp.new_vendor and then add a 10th vendor: Thomass Superfood Store, a Fresh Focused store, owned by Thomas Rosenthal + +CREATE TEMP TABLE temp.new_vendor AS +SELECT * +FROM vendor; +INSERT INTO temp.new_vendor ( vendor_id, vendor_name, vendor_type, vendor_owner_first_name, vendor_owner_last_name) +VALUES (10, 'Thomass Superfood Store', 'Fresh Focused', 'Thomas', 'Rosenthal'); +-- +--Query # 3 - Date +-- 1. Get the customer_id, month, and year (in separate columns) of every purchase in the customer_purchases table. +-- 2. Using the previous query as a base, determine how much money each customer spent in April 2022. Remember that money spent is quantity*cost_to_customer_per_qty. +SELECT customer_id, +CAST(strftime('%m', market_date) AS INTEGER) AS month, +CAST(strftime('%Y', market_date) AS INTEGER) AS year +FROM customer_purchases +LIMIT 25; +-- +SELECT customer_id, SUM(quantity * cost_to_customer_per_qty) AS total_spent +FROM customer_purchases +WHERE strftime('%Y', market_date) = '2022' +AND strftime('%m', market_date) = '04' +GROUP BY customer_id; +--
From be977e16e814b9f4aea7eeb76f99489536e1d276 Mon Sep 17 00:00:00 2001 From: Nick Freeland Date: Mon, 11 May 2026 15:13:59 -0400 Subject: [PATCH 2/2] Submitting SQL Assignment2 --- .../Assignment2 - Bookstore Logical Model.png | Bin 0 -> 63829 bytes .../Microcredential_Cohort/Assignment2.sqbpro | 231 ++++++++++++++++++ 2 files changed, 231 insertions(+) create mode 100644 02_activities/assignments/Microcredential_Cohort/Assignment2 - Bookstore Logical Model.png create mode 100644 02_activities/assignments/Microcredential_Cohort/Assignment2.sqbpro diff --git a/02_activities/assignments/Microcredential_Cohort/Assignment2 - Bookstore Logical Model.png b/02_activities/assignments/Microcredential_Cohort/Assignment2 - Bookstore Logical Model.png new file mode 100644 index 0000000000000000000000000000000000000000..20cf2fc918330e3e65630e3df546f6d5f382ea9c GIT binary patch literal 63829 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

}6VZ1KY7Y z<=ot+1x%r5cmA50*l&$pI6*IQw^?rjXUVNT6Y^rYJ%W2@N87(E4u1S9*Y~Yu|Lb_= z+t`zQxHlIKd8;1<@1~+t(}=BxhVu59?MTxn-2t;uU~`YiVthhf5&7{I5u$=vdlfMQ ze=xb%O+&048x5&=nf+??vZvN9rS15)t13j5D0#o$d9ur<4*O<`ASVdj%S7X%DYmMNw8|rfH z(F?gQKQaFSP?M@0fSx0bSW|#Qc`s&vPpJ#na$9yw0GVwql7Lin51lBC#{8``82i+uX4nB=qABAFFUOTT>+rOM3?EaF%=`C%C-9bP_ko zw1=WiRLxg-&GV~K%~q{#R;N5XtOkP!bh0IlfD0PmJGlT{qPXN{1`9Ec1dA!@$Ik^A zJP1?L*&5;%xpgb?de)8J<^NI(JQy3VdL)J7^8-0MAbMZOB&h+(uZJ?kBeXhpD zelxtRtgHY!R~o|KC`)pqB|kuI10a;H8`>N}E9|9>17SmEti;b>!rE0^h3PmtZ#w5& zzSTL|_#R6q0oVs>j5We1`~-T+3mG*ty$@mbPvASBt!x@a<{fC2!6GEY@#(%r_=(df zYVfN|@a@KQvO$jUwtPM61_lZ|7c1_i7ag*N2&!{zJUmHoabE~w=#{+U#R*zA5zv&+ zc`yKpCL~*_-AnM2C+e4yaYnTMbdM8H{J!;?CRJZH>FaWOy_b-bM8^Vvz?{_W!zTa{ zrL!qiA?AIJN)?j%4oMx7Nwz0uej?x>{ zJ=s2P(ej?D|KjSG!XvBwbnhAuH(}y;I3%m`IaOrWPV|Wxng+s4`by`Zk~EzyYT;+t z+8sK9WE00v-w!iURqCXjIowK!>2a6h3%x_9ev)g6QhEJuOv3&D99%q6IHOA6HGE z@SawYuDy(QLN)W85sIAO7-IH{H^tClalrHS>vLn31!RClseX*eBJu1!Sb1XvsPQE3X(<(VxburA^Q`KQU zY~Nx1ok1O&8jjg`%-epR2mR33!yeej0VMfUc?lj=4!FxrKL1@YH!Q;Z;0BH|R9w20 z$VifyT^8kC2ET%Ix`>2JcPMdQ+fxaAG;uN^4*XEFwyksI@2Q`1-dN?B3B?}<$`5Hh z4LqSU6ZJQg9vaIVOn|Q9zDsm}9iz?s|Fbj$YcGs?l|-NV$IyM~W>M00CF% z`{0R!-&u@m;JvGB6=Yr=)5o=nShlxS=j7=qId6=KQ(0`#NOXda0_fAo)uNsQj1mNz_t$vGr$&f)i^-eo^96s%dobjoHG6d3Vuyj}M+ z(%c`ntCLE;ZJ7@8Gf#bQ*%AICjvE25eVd+~$u0~Gsej2azsYT?XIwsusi`ushQa$w zx~~!!H{s(`k0to5uUhHZZzmcw(-{5pP*!REFR#hgK;mdjjtc$L7`shjD^d20pR`9o zyC){Tc_?;t8>-BR&qui~1oQ65brGt0vivRCi&!W_$apSUoEVI9JOQwQoe+{LOOoOuvZl^WhzWDrOCyT&AfQ0W!u&8BzxS;Z@?32D%MJa!Nq#oR zBh}{G{?Ns3O7d{ETBOF5AV7heXh6{3svp8~!~+mN%+0#TK*+6Bj<<@!sS557&871{ z{m7ck$&cCFG#*u?a0G@>;40edT=c;I$!)Zt#6XNHH=NB6v9K#M2P8D}?rADef&CYl zXd=>nOd5SGW08u`-C^5qo|KpBi#S1iYJ21db)o(Et3;>KA$nG>i8M*erL+oEAo4_@ zvv^PIz*=`y@J0mZWm`RqLO-XS7QKJGvG%aB2`=vFsjKJv&j%1Sx(lvqnv`#4Ss6`h7~SsoL;r(tMEUxE76DbIL%Avw1;FD;yjU&AmzULK<1Bp$2Vs zf75Ww{mq^xcqU6&4+O~6F@&{yX;vtnx>wPMXPUh`4UW}oQeK}w^7((m)2x*RkIcZH z%(B=ADYEqV69Jnv8K)i620h{iTZnTWi$Hj@U-x`ms>0d~e-ZHml&@Oyp%BO@!M6im zuz52>+0+TxJ68Z#1|h5WuPS5EaaG|Zci)JdE&B~&E|+sUofIo*e}xPENwPijMzF|u zRzt98?C1LyUD4BiM-zLk2bZS+co7E1r~c+Uha{UdGh2-IA(32>B{WB8=(vz~0R4JY z!Oipio^9Lmf;hc&@7UL>zVz=F^Mo-ZlxCj~OBAN;mwm#Yb^PcUJ4iC)9NF$o#a*X0 zm1rD4QR@$PoZfmzB{sg^^TDm6Qyp#GE?$VMlIv$nC6!(J+oqo?)6-cLbNlW_Z|_Bso&k?78Bh27obP9(u1)(ayG43iY*@75CB&0l%Z%LRlS zCx0!!&o~lz^I(_U?@Fi6JMt-0(1!zAZCjSR_4fE40`v?%M3Ms zO~io~W{dCy1-DmHgXO*Y>*w6G1AP+7<%CPpZVg=H*;W1FCCTP~lXL`K>Z=0nwDmaf z98vC1idh-VXa&-iS=~Ax8P?ySmd<%({Xhn#PXD*x`&Imp-&=lTYHTq@%+lL~oK7Jh zTMRn(u0Ud1&Rf0kQK(ccPInzTsibhfbH4I^)ng{(_R)25)?1?9Q6QqEGIlJ3y;kl` z3a}?mb)%+9!+xj}h#V@R;f8YTtR8=0dt54vJ+rc%pisN`lC?A%3R!Ba#Wj2X?o(;4 z`HLq(NqtUC8%tKm?^=MY&XsU~!+I7AUnh#&LXC5KSyGw3xaJJ*8L{~|qKz9q)<>RP z7F)7wbBE#CEPJcuPFJ*LwkaEzal2h>xKb4OZgn8oe)rIUKF+Zbxo{uqEL3zg!w=by zkg_o;QzJV#mRx;;ClwS_nRrpq1%G?9PYT+CMM6W4+>CR_opj7Y3M@xpCD0nsAGIaV?))T7`#FA7TuEEDR=Ym#V##gB4tM@&SHHx1Hu3}kDC($UH1o~taSl#&F?Y=A^$hsb zlz0yEzh6WEl8!Sj{G6WQC^IAL+42~Y1x(|C9k=>#o;Avny?Eu~9iTP+SBQ?oPstgK zPgm?YPc;b4;1Cf7rRj!GMYUC!ShW2Y;!YV}6b0X{Uta9KD-*u4mWz*C-koj9FQeXg z9u+t(SdnzAZm8{6^a~SuBkfGM_~83=49|)8$R&6F2I!hU&3L=vBU^m1OF+Sm`2J0k zpjJ-rhua#F2q%B5ES~|#Oy+Is5kD@S%F0g4UzGmKqh;JxYguc*M90OHiziD)hvL8f zRKaMghZA9KJm+iF?d?L0 zCtYpN(Lx%X=iLL^hX=rlf2F|tGp1PE5j=}8nc#DYmTEE~_*V|?g5HmV3f$`TeN@m@ z-k}^8t-{0SY92XnX$w`%5jQqR3SXfFk{VHLJSUb$M(a;rI^!|B;~kx>#DWyBzwE(( z&nZr{1c4*yo%3_?p!RKmCUDRx?i@B263Z0wp@yf%k8`O8r%33H64dc@%2}Q!a)?RNj-5xCfo?7Wp-8F2@F#90PHPfRxZc2V?6&KXG zSGLl4$4)Q}dV(;Qsf}{F(8jhXsf%9Ts%8J9wh>qs3|<(2V^dwt)?>|hv|CR#?AVfiT)>^jF`Dr&ST8#~`i`0zS2NzU@(g)#OxfE; z7e4$NYS3l^7#`laVQaWYc?wEF&RAcn0^ehLEdW6_wXfI{HsWxd4gl8Uc))!*C;lM1 z6RK50n|PJT+lb+RZPLX4vq@tgiR%TwPKG2+kN|;v{W6}wpkT3YFB*Vus{Fl2Q;Soa zud9y-qM*+WV-0+nZHe7bMFD}ZU=7`Mt0zj= zOclN*WVlK2r_3;{}6C|=gI zkTf0ps0s^&wbS#KPEA^3Z~u0LdCbyQobFrZ>EYw!vR@d~-aa75W|J3y4!K|It}W4w z2Z}3~Wn>e-Mt(L_%HE)lV z$W?UQJ{JxvC3Q0Q28m_u0)Tmwezyk%YULB1TBVilsOF)c>tFv)f7}CbH7Qgq)2eK; zB(Voqlln<5dBXYSUeoa}0H?dBWngK6Gib?>_yCyJ`e6Uf$3ogZ2s@cxLPoUYW48|w zJp+Ar>e|ou-_Zq!I@_rC8Y83EaqoijLNye15?1+GzP4y|7hu8NUCl#A5XT0K7eP&q0<` z-5{?1sU1bEv&$~1(D4|O=S?dUMcMootc@#-XDTgScFu|G?dM5%hO38N^cc5W)Obu^ zUVQZR5=PsXa9gLdSM<6LSyMld7vl1_0~{nt@}3kFf7eET^~B6Mqo3b1EeOa9tV{ic zcz53~eNkPs*fcTrw{yjp_f9)Qe4&SuHaF5PQDQwTb%#5w#H zKICOPX-15hJhpXxibEkwD+wtfzq9}|*jRcsBXQ}Sa_e)(OESGkhX~(zN0L?=+8VDJ z9A<7DF*&a|d!CdQxfOSXOO7h&fc%1h;|Bp4Ffo@;ulrtGj)Y{d{*1Jbp#td{XfCg+2Lp5y5PhgJkO4%{uso zOxb_!BuD5T6a?&FiGr_7$D+3w^t0niz~-b{>CD-&=J`T!=|s(#A>x)*uM#Wrmm_NV zL8izqC`n2vyPkt`+3d3ZR!=SuoQ=!s`&kc2P`G$$Gk zQZh15LfldES0q$hsceM9HRDnP><=U*dYVNl+<$6Noj&cJa$&>`k4n7ye-Il;EB%4* zVg(~#;R7i@5&%KF%IORSYO#`ehS)6GKd0*74|YFIbZH3yFv67IGnPD|NSq;CD@7@3 zI98ya_#0WK1s|sN9YL&1fph?OH`bop`cY@cdM|L@ zJUazP1~N%TARJPiv5>JNrYY)O-+Y(PlQ^TQ%_IYEX$nB~mPhM5qgANNohS8(E52y9 zX1PE8oO;}hmI(GkxCV6QIdDz?OOxbQ*S+&T9D%~MAtRQHP|S|sG4uIbpa!p7eF#;8 z9IS_ybt>q>N$vy~FRyEMUrh=*uSb=KOac%P-Kk%56kQm9g}D-M^(hx-9XM*IL4J*h zTG{rVma)ykr5mJS)6`GQV76A?2<;461lGRv zGn6GyX>z;4pq~Cf&AHIKIxt$2Fmkw#@u1qHnQ$yt@?ql_EjzTWmtN_#U9A5?gR5r6kl>-zPActixe2UR3Yz z2o218sNopts`#wIeo7Z~u&Iv7av-L02-4@W=_Xpf4I=}iQJrVGoHD_WfXa5lVgnE% z`4*$*wZiCs>a4je@@7^AZ9oRCGrBGyYiVh3kWxJ$6Ol_o`Inoy4I%1K7Y?tnzEk|+$(cGTt~a#+nb*D?6Py&lDfYj+4jOL95OKuTJo{SZ{=xS)j` zvS+X(LBn}JTq_BU8T4$4fhwkEPQ|`l<0PiUcp~p%2iU~sr@XYfEtEUBZD%-#K=g2T zkfT?}+_NTQ@9)ohn7q~1d_o2+3OO`<{N(fxQ4t@yVz!C0@td_}>}p^UuRMD{KaVFU z>)f#`BTkEi!-;?HiU4O6Io&QgcD21GL{QP$QX7yc^0XUD5>FeKEQvuLqqs?bf*K|7 zurzVb>(rt=un+oKZ_lp%E}X{P@)zr$5xYFi-DJ-?FK#R_>WoD>^bWyjE71mesf*QS zVOtPNX5Hgek@{MC)TGy%KWpbw#0tf44v&w<%q-~+Me+LmbaGoz)nOkT6j*^Fzch~W zMay`PjKBLTMUn#zr*&}gNSE}?2Q){1lY%dOSy6I3j{MTBv=9^ARsg1&RU*5Y$fZwhQi zKRx8dj-4nP>?c))-EfG0`}M8n(Wl!Ba(m|P#LMB5 zFET>=*nf!I9}?^hL7mTLRUp8_B6r285_Y5rHeugz z9u=^$#?rz-d|oq(v}9MPB4zLrzk36Vj5SbnEPw_nSOO+Hi(A;+Ukl zMh@@UJOt11FE1{B#zKr9Xf&oXTR<``O3d1tX)?g-#c;;?$X|3CRR~~ihd2SK(2379 zCw2ACNGT)mSlLA+7z(T(w;4aGX6%3~&8EZ4#JR&~GXXpR8vH=RX$$>B!^x3NxG&r~ zh%@oEC4Y~Q4EDaZ+1!W8`0i~v`)+npjlseqR^tAQmdklAX~V{#&F28z6Bue4_s3sG zNe|b**}p?(0Z$D5_f^|~V<%*0NtcMf9|x#PzX*T(x&QNt6%33D3R?DZOf+(M_y<+~ z)RpjmR^y-ZEEpK`^2#rmap{o%i^ud|r&s{9!DY)RZTjdp;#vMk0GAE}GJWhUULd!uZgEIG2U5ngej7f8U-&(B18C!wk?VqAM!c0jzom?)Qou8{6k5 z#Knb3>FA_YL`3}Mvj49`afFwnks}7^NXZXutPk)qk7;v49vJd}`o^{@F8QeQI zcaUfZNChwK4E=ZSfcgUf=cU5{#wq`xOR~#;1ptC8M*rUh34aX4baHS6UI_3c_y0UD zfbl?DOYk2NII6J!_12&hAUy5(&v^NU;Q!rd5D>2YYXBWL2PYpHaOt`cUpM|WCIn~% z9xg5&_wSDE8|kvs$h{|MCHW)2KjixV)d3!20RTtg!-Hi9&ib&N=FR*q2VgZxb;hv# zJw;JrKo|ZY%W5kO*S4-#`;B2)dtcKb`dzbg=AWgjGr^n3OX8{Pq9ZvggD zfIL|M=;ogTL+FrxTaUk*|IgHovgOMEtvd1lo&eye5=_8G{BG$%p1|Y3PagT-9-89r z@Q;qjp=I;{MIwK9NEH(Cp8^v(v-gi6wfp}dx6=j?|iZJFlbu!B8`Cg2j~{B6^J&lE!r@EFY=0u>09 z=f8w7*!Vs_|1cJ?6Ax8F4{Ns|$#y`n&R!ns@PBaj7Eo1gYZovjpfo5UB_Ie=(jZ8O zl$0na-QBe%q!AF1?(XhR>6Y$JX$0x|*G7-$-22`8{onteF&yKlTix&8YprLl`OG<= z*@y;~EkWEi2-I^0-F(cHdhhQWfamzVOoj3HhNl*;*9LprJy z<#y;E1ONSAZZt%NVL)x^Wh&?UJ9bEp_4E6`B8cQzx6!0-mo9j?6wUTOTMQg%e@^v= z(tn;pUUwU?D1W)8{;mmsZFYwn=LT%bl-4K>iO63y!U|d=K2c}i9%x^hJ3+zt`^`|^ z;eGorhxr6T{NDuytjWL6(*Jgt{dv^eB@B&{`ityty@2L4Jp#=FAA1Us@V^v1tYW7p z0HW+bA<9s|zpk+tG>szfHXWm)qWFP{;k+@$*Z1z{fB-Ujdg-@jX>~eG*J?Ant*r=D z&tRosPG+oSCR`};^+lbsL%%Px9A39xz_>cfr!D&*hZsKXz#F#3IySzn|KXUnj3>Q% zN;R!kH{Jrr#f!+mO2bS29_5B)?T?iziVgskKBSX$IQx!(bYa%%-WF@}6bMyw4*_^E z3GCZrRoKv(9~3C@+l;IKQVsq>9Yueig3y}wkJv06*`YMf#pLqKHjq?<6nQhLB*k>z z>-TMW<)p!!E`zK2F0~1Co?T`XW$Hne$CKC zEy_C;E06y6^HI}SaO(Vvw4C}L*h{xB1qI?hIPaC=f0c4-aBkjSUBD+L2R+RHCBjQi z9xUsM)ki6G}r3HFD z`nP{01#FN%MGj#5e?vs#Zsx+ie?G-H0Kl=me#54e6)51sl9Ru!r@yd9S`q!z-)IbT zqk3uIo^XGF)CIrra#ld~jP|2FW}u7j~IXtL)TL=kngP;aKfZthC8Ca(VB5SL7(4! z4+Gw7;_Vj=R>7eAqx#hw$+V1&A3F_q_MvY^0ZQZJewNs)l)X%6)b0qKf5re(k_RBi#Y*KPU&2dYgA&k5LYcD!U=9?r+l{nZq5_yovk{~D)&L{ z`)!~E88uO$y84#~q5S?sMcKEqi(iNQpOX)|v~(bc89_ZLH(P1Dwb7Xk6_ZNBVK)C_ zphWw?93xJO2QYq!!wBQyQ;W%R-TDG4oA0e#bw3ORG#0eXGTfm5&?%47`;RD98kn zIC4Y;o3%=tSzqz?WhL&BJa4KEHQ?o1AG{$X9exq_oHn0nW!kt*`XLWtwTmey z_FpI36yRJ-!$1v`PS;P0$ErSnx2iWz1G&*J&b~3E^IaA2!==-X*V;I5bMJ?YEsp#$ z>Y1GqHT|$<$=muA;#2%8y79>WCrrccDOFr}qA3+(0#co%mZLHgV_uv1QFR|I%*0CM zxAHxjiO;#idBBX-lmEUlIN_RqVts69x?OR7rg|z9tBESkbckf!)N!sE6pB~4vBGOs zcKjDUYNS6Tx4eMs^m!bd>++Uo=d6k9ck)ZTkxB}TMK5;4c};VXHdL=DGP%G$3dY1& ztM@l9dDcCbXFm5CwTt$?+F;>YGiO1adbM=lm8TZ13F>}ZIPIGJc0Q2D#QrTR=j?T( zk_@t&8qAf?k9q+iRiyle*h`YJab2wioag&rAXmbyD0(W5Gl8;=Gco!{lGD6Avlu1^ zD2x=PiOuhEaH3=r?X~(EL{BSKoq0b9Ob40~HXmD`EM_)id+K_W)d)VF|J-+QVA!Y> zoyWU1ok<@QrRi(2%bE?$t}_kRNViVQ8~UGj6S*rvtYEzMy2SyfYkq8Iye{XuvX8=- zIfI#fF3ekJ8#~XaJ#H+F#+EYI0iREwmR?8WUD!SBE40av_*uboew>(1!v%>;kmdJ- zVC{T~Nv?8RC*}3B^(NfC&n|g^>0TW5z`UIbCiC6OQ(<&E_V9btn|p1U>aky#A0sbp z1Pon&gG4NBxSZ_-PM$?0-*JTH+&A3Ny-QRL3~0!$so5ly>1PU!O3F=-bBUT!2opsU zF53^b-*g^DR|VFo74RBccT+Ytf%Uyr2TSkar=W!QL-SMThuxWoO}y3A5thom-oo=$ zl^zJjpkCEKJkauG2FqD!qBT}5(Bv7+-Zk*`7CMc6i5lAQBAGJiK6C>$Ao33 z?KNuI=)nn)&$eweNw0JKNAPGBm?6%%->=F(y!!s};g*zpNLPP6d8|5EU))vBTj*x9 zH6GKIW?KzUG8L2}O9uqCeD4IR&+B*UX;6Li?9C1FYrOKstmeprpTd@-448q@UN5pE(b#GP{P zCEB$1Y2}M=WTSVEdHC~D!scHvzQED_c$b@W%*A~vH0rzKJy@B0@=~#*Vi+}491!P> z5zX#HrKAltG=^;cMZg-xsd#4`=fV%PKbw)3HVQx8|k7VeLU7(UeOrIUJ_#F*4T zFD*wKd#Xo07GV}r$>sHVl^(% zE|PL7YES3lR3{#QP_H^PCt(9 z!VqjNibbe&1(-Bkw;-OzI^b`5Ql_tYj6D9Wx z)ArODOiJ2cR#1nlPvrg`S6?%+NjIMXs9`#T8qrOc{S;;TLO zTkSNhqj4s9?xwQnlpb^x2)G}huA>ThYH=4D33KCNK)CT0gv7Lqp~FqH`^7{lwS3Q;zl?&IW+^V=_^sbdX?7k6wx^^JHc5{Z z=J2x!3SvGo1*Uiw8@Ou!;}o^NUXb6~%a)+9E)_UGOwGBL6w;nX=A@ zdkG@%#gXSeXf_J7QUD7`=P`_rDAY*m{dEvFEWW?^jfL!HWRUdp1|S724-5iNjR-7k z8^CFn_ca4f2m-8Kja7Hpg^FLTtKC0&tEKUm240r03||osqZyjF`%W(WZrR(a1+Tg} zV04_L(qrpirdDe`eHnD0HP3*5E}i7FdX8smxqw{A$B^>>TFInC~1g$ej5*MXF_a*tngg76Mf#FPi;Y(d>uWUUPrpt3S`$Jxp1K7nI{ zT5>&5`lh~tcm4Bc%6Ul~fg9c{G8U^B<37MuGg3I_!c1QgKwS!KCVGd?V6P}cMd`pu z8UM|T>J7On=CeD%t(dfeYPGVHOFVDuJ&-$ns>Mly+t~5Y=AX7Y{e&t6wUB`(Hqc0D zQw4UIwml#q4ZdLk8sI89RR%>=s2gTQ1gck3Me}4XJ|y56zzZv7;E!k_yMeNDG{B7} zzn?dD<|Mq`kwT}A!U5#!#T3`Tl^SzIKyYu-Z+{djj-Q5#<3rJ}qC1C09>^o=b#F_A zvaV`J%tlvhJVW3yiM0%6Nx361zTrYe{QdAt`iu>HeU+I~4$jZ!?Cs%UR0KyRYQ}dl z#Dx-MuDQb>V!_Fy^8zZFACVZ@Elq~RMg;_)hb67Z9lNPib1nZGR#SOd^}h8k69Lx|drZ5z0~^i3|<&VU>un3|8Z{<+GpWym=Uj85}(- zEtqLnOzK}UgZ6eGnZdIj*3hT1EwF?OkYvdkZoE}(R}p1JC=&QaNvXJ(-yy9 z^-?+1&3U{mL&^WCg>E7#a9XA}(26}>G|1-%$A^U`{LJQ_nrETwNk9?Ico0Aw{5D$F5PAUzQN%uxR@~H48FY2xz*Uvyp z&0uZG^5bJgh2pei!cR^6ngfDm{4cF*3_K7&C93rIfu_W*Ax`3+wss>MZl5(c04VL| z@c85ppOME9cfD=I?31}=+S1ZzZ<}Z+V1ti+v2pWfZ7pJNesk(Xr!W|h@1KU%mX}s9 zh%X>@)!8vwjhC%=I3_#@Tt-9EFAN*K7h^#*^|+EKv|`-X7k^OY`B3sp>5V{HwzJ@` zV_xZXmw?a>9^`b{U7yLtQWEY-0uP2cssK8)u*vaI$}J29#9Wb81^FJPiAO`9Zv6a7~Wz zJNCBEzJW28!GUb{;Wkq5xmR_)oqZlk%Ff(FIIh*|uHlpzgSluV;X+BD_OS?9SwYZb`^ejVo-)J`E~~bqw`LP=9;j0bF`q&tSj_BMf|K z@#_Ph*(P3VPzO=ML$}LSI6gk8Zl6dSt`SEtfN8PK!=feQ)!KyGqC4KfhmNr%NbCfV zE(R`%fZlvk{$qqaKg1Q)&9A5F5}fY{SB`3mZAIWCh(k*r-@2c8qmbNoB0o^^&Cww9 zsQ7|*0TCl8wx;6?wU2ikHRjnI2+f<{%=uMdHzmIs;kxU{b$J0}UXS^i25Nb)#E2zg z?RH1|P9ITNe8uDU7GWW@P*>w)>iyP@3No2f8blXiYn>`4y#6U3B6;r43)pW`9+78F zAg;Z+2}T-{)uX=;HTp6_;P7CIxHUK;q$jmrtFp%0UQ@wcxz@fze|oQbvDC-nXIuzP zk>*ZjKuK zPoF5;WUjHmbKn=3Ze9tY7IY3Jyk39!j1EIJ?+(+s2{4$GX&2Y3l59@g;d2+nOd`Ej zntcN_*Bc~6Z%SVP3}GY|ZsxdD)6LHFUA~)}r_*jtq9+awf6Rr+HaFHHi}h2@hhq~8 zkU+uq5e_d@@0F&FK-2yEJpOJWES*fo6=}E5?4g!Qs4HIr9oGi0(+q3} zpuZsE(2LROu?kzzp$t@?a!sXO8bpvZanH;&w$hIiW*Iv~VbA&q-Q1Zs_LP2+fqJKl z-aVYLSDRF*c8cUJvU$UcUki9iYi+|j;(p3 zEU!}0JW{pg2fpmJ4S|^bx^1C1{%_R^p}`e&rXkD}KES>zi7M~TKe<}m6~uwquLUYr zoH7j9s;nZQU<^ukQy*)~MHG4wu3L6T-N6UYt<>k|t%2KgHUFUEYGQ8l-Z!d8IFOo5 zGa7gnUAuJgm}G@3lTPrRK^lQ~Om7S!7ZiThCPmVL?&l{dRki`_oXy2-ON?50?E9`= z^RWgMlZRhS>0(QOk%u|fLl=4c0%n}WO18KLcl7wttIAw+HrY3i74J`?bIWdqR%n)L zXP4X+vRKVKAfuh|2Wa8o%YzEw3QIZD2CnnacfM23>>vf9lu14jJB%min8461lw?e3 zy`LYlg3cE4oqM3gyN+m)Hc3xugic7GqD~+mq9k>1teMz^KY-}IxDba}CrMjuS5aGV zOmLeXQ%>M(xcv3ett@+-BU|s!lBg!e9LUb@E2x3W3*tJ@n3y!_{8W9!zB@6n7GrO? zyV5AldKQ#W00sA3?uIP{3&qGcy~1w_PG5{Ar4rPJ9d@29J^x^-S`Askb`bYQg3jg; zHx-5YxTFD2l^@dqdpDnEEajex9Cy4V#uR$B`9G}SiT}G5oKbP9n|KML3vNTM( za|W)_!qn;=M-$_TW%0BrQ_$0l(CRza&dtNG1*%6jTn2%I?fki{>2?c_M=$+%?&C*w zR-qM3V{8Wg%NlotGv09AEgkZ|QVLr&s~SLUET(V)J4Me~R8TR@0Xq9vJ`;vJ;tu-~YBMKFyvG zB{06rI>Lo$k<6oTulFD*Ns3pLzyB3YM}%wAr?oMgy&xTX^`{p0GfEEw$AhR#fJa6= z+*16ZceSidV)ReR=w4uSG$84u-V=H&T{w1M673x`6vjAr8d;KYzd++IhG#gkH_h4& z?Jga*wy4RIc3H63$W|p(>^&QT$yp4K2?PFJqZlI%S^O{UVIq%f%C zKL`*2O^rS*a35SF0GBZAcuTT($iU_U(t>X5JCyS;`|=%;{FzfLmnOJQ(RqXB&!Aum zwB$n!-+12xo!%JSU!4|kV-v@#dTE_%5Z~SMBqYwy%tZAunwJUX&I8MBI&e@@NN;a#@Q=e|v(c9z+3zum;{=16fJTJJd;*-07s`$=>_T-P? zXNq@XlBM}+!lQMpSMo&aV|Hi+u4FkXV$dk*^cm8QJf*~bU%dKsG8|gIv`?LF2B~(3 z*l2J0AtG3iv=!^979s9}xQ4)}9jtz3o;?Q@(iCxEn=}UgK*9^JR_&_Av#+C%<0^T! znLY5{QDdt&V#?9|`&}&2WbFvJOLq%fo1nMR%l#vcfBK8dQ=Z}&6k2>mfz)do57bGU zh}w~e{U8UK2m`=nZ7%|Uz;L8-DNjk1k9P1uKB;IsDh$hrmMch$>E&IxX~rWdm%3oo zc>diA<9*eT3cjLmR7j@$SwFV+d7WhYgz2Z}KiL7CBN=X?fi@-D>dIImjfByhpAhu& z-p_*VL&=MQc#b7&=TCV#&}ag9^gUc=Cc%h|BDn^v-Z2(4ly=mhl2;CIGK?$tRf*_( zfyu;{e#73fFKpteWmP-+jrEcXSSZ-E|601k;2zY+BL9T{XNro%4LV^(p(-j&(X=VQ zczRg?$cvzfeTMK>L^0d~0Ur5j&yPn$niuiz;OHP644jQPOtM6qlpqRXlD%7rU48+x zhpx?E3@)&a18*5r;b$T6mNmS>!Rcvf`2Kot|GQxZR${<^I1m;DZ7s?I%ZwMAz)WC{ z6Qk_^%tqi)ff}!dY4tr459QWp!!eZU`_A(usXyhm+q#QckUd61aTcKI8T^lKml=L_%oYQm#yb`d zdJ1XYjHgVIw2s1B`UvaX0W^cco><0K5H1pNLTB{ChHObk4c#+Osr_EHG+?ebIx31A z)WhYh?n`V+Ur?@&R={ZQE4g#Wc(EN4$IL5r8^&Ut`meQ|8B+9j8q3?5G#b*87SiC^MrDUG@mwre-jS-Wi(MH@Pz5{cY2@x zvZ5lZ5XT+&6*7@L!IGY~&}N7$hk*QVMwds1=fRV~l;iJn28=n;Y8TVd2Uq@?^1?(& zaTLwpm1>k2yvCkQ;qZNi0AZy>R@+z8L6h*n%CpclMpN$mb5beRT+-Mj4Hfu6(2b(+ z8Gc_wo&@#T_xw5iGB&S?Wgfv7WGJuG1!1jxi1$)301aCE^^VRl@7jbiQ&qLpPtZFP$&K zr2LQ+jnrS9aYAj*h;F!%yG{&JV?JNj${*iTNz3bMYA}AMkSZdtZ<#&cruCXQ+cQX>ROu}TdT!xzt z{aD>ba*C8H5i9=kP3Y>iP0y8CSjHQ5q?~eIauFm9tx1>252{I@8zKx_N}|Lb41;hQ zJ;kslx#uK!Pr(IXfIFRv#^OW8H6(`|j--Ce|%4Z-2>~Zns0#ymw!rqnySklrUUc^X2 z0pv?SVKMx#aFdxm)BO?|`^MaqpSJKYAJs`}RvOG?KNjvOtYfQl**VxKCkbh(!YzC# zzyQEFi-V-nH*cFqh3_in;Y(Fcw6F)hAXoHgC-hFNoBqmSNl!;{&0SSCyN&dKkSq3M zw$Jw$2J6C^fvKjN=^C0P2)H*8py%*W*yfK;OA`d<-RA!WG62J^levQ(g57KN-IjjX zUs(*1KOfDPbEDY?!qSvt8S!hnFy@HGE^O~Vy5MT^(mVBl+2%dt08i8VbyR=F2WIwq zhBK`Pj$lmD#vzSL%XN`s=-k$dv_9|QSyc*F5CIe?eKl8V8@)dbkJ86DT*HU!dLi#t zyWBoxF(?P*u2$FbH7`QTGQY+Flc`8C>OShu_0{Mzx!=aYsx z=q`gLMO3$1C^B=D%bK=sNt{C+H^7MlT!tAEy8Waa=@DmOl2o?(3)wB!9Zo-+8~RbV zwXI+_sjcg0FLORi4gr1}J3?6;VfK>7J4l(7EXAw!jW0@#o>F%v@Ek71%K08rCUZqV zBONecAz7Ot9}BOkaJXwd`S~mPTHuAhv&Er{I&d4G6B zThj&CtnYWwWdp4*gKyCQ5Bv`+46M(8R`>vp`f+UNC85KNgR`sqfi=_u& zW~eggYlC@!_kxje^9|9vEI?^*`*=o1VFKVYY zk);(j6H;L9l2werbx}@2u&e!oli^z{ukGwaO%^O9GUNG&3Azm^CpEs{|G^3Rt8mY1 z(V?UZngL5Jp8gvtD-&CE)W>DfF>N;hsH|MS)VsSACsW1`MDmdX{b#}`!XSVot-I=_ zK##{1!ewrEjLyIA8YU zE$DLenM%Cr*ydan5h7Fh`tY=Sbsq3dWQ-vO7Z~x}9)_a0n&pnr_fb~d2O`k{i#Y^K@ZT77aqb%j8Tm>8G~7B zXx@O>HrJnqBpt;$Nq_F3!AE|iL5D+dLTVygD85;7cyOc&*l_lRtP*p!7OZR@UZUfd zcpTkFk8g=2X`eM4kT3CRc&Gbj!(HjTH;TvJohQz)4+c@JV*%Uowbw)0?;9dVx-`}b zXpC`!YirO#IZSlS2@UlM6JNiLRLNFO5rW1uR#HIYC?wqIbVpLe13^$m=RE+#0O}jm zxt|9*214^X_r6@PM7@zOHQK`@z(?JZDnANDE_=l65RI>;+ljw)tnkCC*DXqi$V%oh` zU?d^_w+3t6Eq^f`){k(J;`zcmyo528zLWUXGGb5wiIpy{2;d{z1*Q?*pnZ}L8l=0$ zN20svCGi!k4SO@;NQ_Tgng;!h(G4o3F}Oqw%XaxS?E-^ZHf{N|DRNnZ8zwFY*6g#0 zJCKMD(yCRxYq0|Ja^_Q0g`LL$hZsqn#^_zo6*uHoZMzAUQP_LU-8eK1zzY{_Go2)%C$bAvl?`IdrMrVy;;z~_!_T*dS@l9-t2 z2wr?dJ;3<~wHi1IgG;EurZklH!Bt%7=53rA*Mc%x&4cgU00XnwjA$!NbDMW0xti^- z!ujqX<#LP{2LkmLr+8RBv8~<+yO?-A53a!AB3e}fT9b@lrHfTljUeLd}{H-X7BCR#bdEkpIb}?ErRgVh)_ZmG=A}YWd5K-z4 z_@7>rc<7ydpibO3dHdM1DnWQaFD;T+iw{?~ny>&G0U$YB(K4?E!rsJ1zJzA#DM^K& zqfzWfZQDNtd>JfAjfI7d0YT@r>ALuy!}P5R#+RFfJmxbiZGEnI-MXLb{0i=QE&(%M zaEw*Vv0|v2#_Jv22;at_A-r#SK{F;tZ7AQU%2SO*86&6(9?v3#33mma_*7T^;67b_ zk;sbc)0MD>pfp7&x4Ni>{5SiwK{^TYQwSpx8A8v4ZFVB`JxEO5S)i#Z6x6kJXn0cq z)MWIfJ@0IdhBRxzmo!2^n-Fzp`^_Tt>*_Zds6?SP@!}4 z&J&wkq6-QyU&X#=R0+SR-PojQv9#TJ)xv;0t+3gUCACRIZ5!@16S^&yj{(SRGwY5b znUWmCSyIGXBCEy?88vb8I|nw$ImG-YsU`IWr)12Qm_l#_`|3}2(I*B{((uEDm>085it_S`nLN{bt4f7?qMsy7E&*VCK|n{pUNK< zkvm_K9us5u;rs&{gV-@Du%Vfpn@>=%^zw+F9x7G7waNW0$%t~O`#~o023Y6*YLv0m zyAYFP&*Q`J_v?Am2Sr#inZd(s%eM=6R_So8#r)K^ULG)@FW6$P{)3H)o^8L68$$R&o$(-B6V!HU=c}tw9#iFQY)$h$vEk_4>ddJh@S@@od*q##eJe< zjNr8~@SdM|`xs<+=)-#t20oQ39r!w1s4Mk3W9luvgnAv#QE+TZ)Wy;ydkU(UMRGC0 zwY>dL>*PC7v34+}c%RTu46<&qO@Be*t|X9rXm|R;JMjCN8o%KjCBE6uW^-x}W}i@I zvVxhnIzwGLri5~O=A!XDSf+35IhqYV4Z*-!V*O6ZjbamH+kFD^wfI%(V|{}`xHO*O zOO<>Xp>2xS(Hre!!p9&LvcI0`=L7JQm*dISdqfzdJYB`neT_I6AbpPZ@?)!0vmD_5 zCWGbXdJYICt9aJO^8+jvON zunhCDA}KV@+Ul6^6T7W@Hy{}S^x67q*|Pr?RKqb55L?GOsu`r;0@N1g&p(hN7EGvz z`8cuTtUk2a71?A*9yhKK;i~WqE+7o-{5bqOF^~R?gPmjcf?^U(03YlHEl!S9UWQw> zg$1IM9HL8CPEhuR4gwd6jKh+$p!`{V z#yzX=>wg7(3!(GvmH!Zgun#{EN_D^jX@dr|cfZ!A09^jznM<~Olv~3uK}azPr2Y@$ zdl5>?=sHl%0=SYQXvXyl&#SwA`8FNOs0PblUS4$Y@&Q7#=DQtg@FmRJfvo8R zHUW66r#0!OS*tJbC+yMY+GFLqmnjDBorZ5(~>!u;UTR1)`+fR@~gcr?<> zg$mj)e0!}Kah@v0+l-DS$1HB5&a*D59g6XcA4LK*OJOwZHP*D%@aH;n|0x%N&PuN+ z3@35fu_Kg~r!l1%_SWsDLj9^Jr$|Zk6{gJ00HYbJLY;-<$2;1Qs|ODX1*~I3Mwz%@ zK?XsfU=bp3wX!mJ>Ce<6VRz z0K=kGuT}2&s5B=uM9$e!sXZO=s$+5-E#;gS2L zUm&)U&)8XzSO$Z0IQ^xc=h``>DX)t`HA$dls2fH~ljX{jX82Z`(Qe0VTofaRplRVd zK8ShK9@n9O?YeY^47tS2@cZNW2;B;UB%_x#z0J9S`65r}HrrXtN!SRR)od)f4gjD5 zj%c_QUQ9iVK>)U~8m7A6ubN&I*N^Hl4=GX|*vK5o>uLWHvG^8%Oh&g5k7o8XJ$dZ!paBqcrY;NA1h%i zT@C{+e-L%G_A_v~B15C7O?BcxCJMxzEi^jU1JJ5@L-+Kb))`9&WFKR<{6ZsN(2#fIT8{`Fne=ruw2tuE#_036f5yKP4Zmv8>avu#32i-jn& zPJS(Q!t5;^5f=xXgUEPZggk#o@UVGr`y$cya zv7K*CZ?twVVaZTiMd^4Af`)~P?@A6 zR_}LdvhRBAcwgF602#DMv*O20R~d~ul-FGgg_R|15GVEofv#tNigwf(lj{GD4~MH0 zL8E$#O9p8Ehaefx<-VG{m{o?^rLr;HqqNczD*V)VV4mUg(TMHLq&JN z*MotqLgmFgK%e!aR^u6FHZe6;pZZXme*snTF3m4pK$u>t)=d@lu1pQlz>Kj=ES>`lqES>8!H(w#QsaW{)4>`=e$ZYiN<+WmXOE9M};$ zuWuX)`Wi{Jd7T#AJ0%ys+a_=OVzu!oQ-C#ko3pp{%V+H8K_KmDl4L=)HIhpH%Bn^x z;fs7;(7`H@wlBN1ZqaoU>m%r<&r|HY~ryG%_y&z;qC?YQ?M+}E4@ z=$k~{tug1%aLO>WNm%_Ffh=peoFhHn}zRG=EkwcKY zYHlFkmeJYPej>{~*fYJETg(T z%u-n$bhJ>V`F&x+R(mT2afLDm=S&K8xi%||Lv5_~07iY_I%x|^H&jJeht3ro03fCc^94VkUxCDF6`__%aBJF%&;G0}_;9VdvrLb%Hh+$J6Qp1I98 zaGX63t8)S3aFG0)^V$D?84tk3xJMpM71_Ng%!xC?&a-S)lCG)iYd?q{8||lG_FV!= z&Cr@6jYCA~w1N~iduh2@0_>Goyb7}vcg_eGMoRG7<4>jxa4mI+deTob$mdwha43sC zM;Q+jiq)|Bibvdp6+-_^MxoNfxRpB}&>j5Egt8Vt4vSt4zk8RqW;NM~b^z5BP9nQk zCq)=Cc6#294N<XyyCtzLU4auPN$auVub|UlQ6HjsGRqM?e+MQbK!Z2~; ze10RZ`TfeUYnLv9q@lP{FneNxOYytZbH^6Td)9c=@k+6-s;E4l3|{Gi%)*K4xrxEK zDiELy($ujvMbDzXo(||{5RAhI+g8m0gyg{<$wM>Ut_7ySxN;{Dhfa?i_7L_MU z*Fe_zw$Jl)QRo*SMkWXWa@GaYI)Zc_Kky;38UT^ARp~PkfM^I}3m*V|m@_+s1Q(Az zVq#z>1Hp5abJXad@=44c)!G1pC^90ungucFMEB^7QI6nH+bFipECJPl0HGyMW2o%x z_10_S8J~!@!AQvtYTL{DKs`i0Ak#9x4Vbq>(&N>dg9`Ar088fP(xgg{^x)3w{-lr~ z3;ho4%zu>L@e|T53vf0c8?RBR8GF? z$2>5MLM|_^11bkWgI)D9{QrTZ+o|QxbUY6e{lJBQSbu*Cb70PnWOvDHRx@#}UE|Rw z=oEyn^KX1N<(uYl)wsFTAGRdL&|7L4N^#VvMF`!*2$=uUupJ-^<{HbHVl3Iz{#bh| z_yYa`xnzhpJbO=!DArzs5phEFNg~Ve;^4{0Nn$mbexH=Qcmln3?#D z3)A zywOS$^@tKSm*agoj#uU6bS+@852k@LJQ-cY`N!{p3TiaaTQ)6hAQ6l&Ar{~#G0)dJ zJ@E3LyM5uobaUuMcg%RsFQ5c@Ess;ybX|zz?6o3*rDbrg`@R;OWSGM>!gA8!tfisn zlto4CB@c=I2Dd|J2T$Lp2|EgI4>S60QEh`riv5wTK4gJEg>>kLRs#QtBYiIHUblr5 zW2!f2xw-LtSTxg&K6PAdlL+TDkWs>YIj>(hKtu0OqC&GyWj7KTJDek}7m!N(P*j&y z$9Uujzzd)I={ILW1qzx7Nia4ZIxwbIWZ{VtffwA;SPqLyVaI2hclP|=U-Zj@D zg!{wuQvSjM5okbet4{zrMqD|+vRuYP;cN^pVzw-lDY-Xcz6G=Gnz4sp*e1V|3bQ%_ z2Z#@0!Kn8Eh?LyU5%%U;=uli;?EpFO@9GvAAA#%KYZgNIEN{G5$^H8$tJ%&AN!Mx* zvxFeUOW59r!JGK>C^ol>T~o(#YiHmU5vu=DB?1ymW8w+@7W@Xv-iX=18tM#u_v{JU z)7N$oR1a0g<=Pq-#~}#4seB;xjXn~&n$^Lv2^obl#bvHg;g%nalb$qEDE=OXbtx0< zDztB&X`du{+EHL^|In`dZ~;{vN7Fbt1+r`5hsQm_&y!GBfvW3P^#j z!IK0b_fKv`jhlm1I)qzK{&evru5>^be}!M*5&*YeFP4Rt1xa+GF;hlAkbeB)S-$q? z>ETU*#naD>%B{w_GZhZo3d*9Tdhbqr1pbWV(JyhKh)7915xv3k2}$touYU=Khw0Wp z9D!IYwT^KcEq)ADGHzTXdYb>*=dFp~v3&5ehf!s7D*`B!SpFr$32m27OrArk$N!A9*C=oAoGs=(W|cGNr8j%D8}lUA`U%xbLnx)Eq&{({l8*#Csl)sw>u zS)>dtIXUv0AyY3ea76CXc@z4VlZ}Pnb;yKHE1Rt@UoPT_4C9j@o&wFL@SELz1EKz) z?!Flk^+e3aG-;TKYso`}9-jD{MLJr-F(B#4bU=X>*YfW{PUe%MPZW^i}EH z-x)Y^-k2g5TDOKG>2hBapn$<*ekT9qB3q$fde?;13dW6y#`yK-xNdCtH3M)HkrTE2 z%B~eInaYo4lzgc3NU*|x?ZGcmr!_U`!l|;=zZ=f5$!2L7NqY@Bjf~jw!~o*y0(5+K zEf5!-!85Wdxphm>r(Nj*XHpg`#0-q9-X!8>iw(Wy=|4budN7 z9$yF_3J%%!W86-9XCLvtn2?IW`GvJrV>C-Mg#VjVAhxuBXQtN22m zE|cG($4HUh5wpacsF=}V?$WUU>h19b2DdJRz(fCwsELy{4E2v9m)Cm0{l(+!jtjJ| zTLbnB;~zQo@3*M~e&p6M_@1MCM1qK~LNwvC+`~l)$49&EZ!~pskMAvasvZb`8d$Sr z3Jgg%lT2_bZYUPUXUZjf-zN%32z2tcI`o>&?a)1>NKXHrQig<}4^Vo3Xj%DFFx%#= zQd%@b`fXgZ*p@f%+k7*6j~N5as7ON1Mp#<7qQYf-K{R)`TkJt`#3TFgq8Gzk`j^uZ z^VWps-RqRZj*e|sD{r<(T?%Xao988Y?1ry^QzqDwRp`nmev#%HbkcpFF=km1yYXKYC6y5zhg05B9&6cXIv;k6)Y5`lF&N`EM&7D35G*QDqOP zO`_i~09C7kptqoXTpMPLmiYe{(l|4RF!P<8E?4(TI2m2;?$^`KQfg+RM!PF$&lC-G z?_D`P=aSH-$Gv4-2@LKyQ5?*RBory!l_$GV1?5nv*s5UgS`F$dVm1CP9T>*X`=$Y= z00A>ywJ$&4LP3OwpS#uRHd%6X#Bq|z|C|K4h>VyNFnp_FWwXX9EEk+rm;3Q>F?sfH z-M|XLj{koJ!Q08Rz+uA+aV!ptHJr=PVU3`$mAeBpx+qtcCY?ROH^bYf9#90S(F4IW zc=1G67|e83eqrYkQZ6sb007I|!X7~Lj$AWT9K6X6>P!2`2-RH2&;##o-nSxth6tiG!pcHqE7(zt70g&iv)$oZjw z(9PvgPYa8nlGd+f-e0d{V!|BQC4?=52hJ%$<8^X-f?=;vHlbEzu$;T@bEnb22|-VM zG3Od+rE>(=`?Jg^g>E6H*5TvuFwMUxTtPm+PXJ=)ALo8KA*6A<-~owyhGRxCs^Ks_hfu~&vSW)bVh!#7~-(r-M} zXhebjy~c&F3k9NXO(02AMEO;=XwaEQ^wubs&20UKvoIgev>wSrRK&++xLl5+!rH(p zKqP0!@$Wsghse$q6gxeHuHKaFce9?i@(|j>?kPD+JsmsA)poirFv#e$G7g6d7z9LV z{v__~I?W^i$%oL|tM^M$LDdUYD&NvE1*bpFc&=Cc;;h!7qf2Q6*9~-che1i(C7P!T zzXw{4i>g?xE!a!~dx-w#IH~MdwlJc%#e^~{QM?ZR67=<8{=%j=A8=J3xYXKZCigSB zqO3M8zPu0uzgN#6P?mR#)F$Ne85H_cfp?rC$q@A@H{En^^RTN!9A&g@7sCUH(H^7C z@*{Z5)LjHT4s)3!yb>dlhylBySKK;Xg*r0UVFJvorF*yI4Rs>HKpPPgZp{V){;zHw zr#rwj7A`hP3eyCjrr=AmW*fwVREyVtc?KL{0(5&a|+0qq}&SIwuB#5Sw58Dg6ywo$1! zJ3mvHFUdpyNPNAZ+q)y+khc!3=ZD1OOCGe{lwAXSP86U@g;FXnwSK$D>2^Z&^_Mm= zK>^GH2y_41`0Zg;lNzug0NyAo_l;`3o8y5<_)QwALE(7JQxAb?ph$oU!)e>bEQzpg zn3YAa0~yb0|KR}?00Jl8apHpH5%1!p9ruDg!=;2%C}DRcXedukerTH*KNR40#_NGu!eCS^1*}t7dh)-x!s;amdOmYUvgOl& zXL&c9FMnZ+ESwJg@wkMsMHta=lj;S41(cBFgaw?|J$=0e0$|r&yz%pdUo7E)_Hc-` zdqE(|XLM;PH7lRjKvlZCg}Og?OI5&|htOv<$Z9*KHQeE?&m5|I2JCleLbgV8vvWrY zwYf+x#Td_u*lfyDHL!>#^bqgD#7ooRvzh}6QWLg`{RKUMVg)UHBn-BflfCy?>?3eEll@2lx&U!Y_a}60oBE$=l&eQojYXV{NxbRV;nLRYm^-IFD|*y2L}Oo7Ii@hDet_HawII&|%o9405z&}@@8dF;roYwz z*QvM7;83#pb-&a{SgaP&odM&{F(_^Os}$$#-sZ;(=SP=JK|(ERHf(th*wu?q3?%Uh z{@_<~p7`9-0de$PQN!x6?T01NtTz=*xUJHbC$8J0faFpgLY*LAHues`Nxfav5Nw0x zp7uY!4SBx$sAfeyR{nkt+qzcfiusUpdAgJv=(==Mtw^Z^()htH9<7GH|m=trx72B;rK= zEYS&L!jaL^RHEC<57-)-zFz!DHrXB85n>PZaWbZHHWs; zMU-)rG&i9=7Z(xnt-cEiXsJd9#*LNaFgaD!g1Oc{Ix3a4M9D5b6;CU9HD4v7nFA-O z&EE3NUCG4VX8Rc6hutlECU}@elK@&qqJF=YfQ7H}Q3PoFc5kxzj!?!QzUK}#VzlfG-x{x1*Xg$+D zhb^wZt_Hj6o=MBB&Xe8R;{=8gl2Da7?&!gDKfaEHx^&qxGq2Pld zdHiCMHT7jB6W6U?_FD&EX74B)p#_l*p02U(9So)Qx_sS@7Pio@?9ck#R=W3kt!wJV zx^mg2=)tp{gz>BVG8l;TI-z9G$#s4kp+`nDO2+~GZ1mO$1=r9C7_T{>CE0{&7rVuP z1JcAOcO1gfU@ebYyj8+bU{ss;(dZyCs;%@RqxIWu`A^;$ARpGR<jbvWiQ1^ zij8h3BTS0T2$SIZW0cx8WP%jRF}u|l#29(Vin&YBL3k0xcTOoLXCO2E$DH9UTlROp zy9;@>II!CG>?8>dkxMYaD9c-`blPid5NMS$vwtQ;BNEEvXcwNGsen7Yu2bco!G3>dbTJqW z^ENi^5?2R1T78s>I?bxNF8;EIdWSj1$ISMToXReXVyzi^_42N`Z!#m(8N^m5@_YvO zyDq{;Yd>j(0~5kN(Z9R$fxd#zh|wY;SLzpg-aZ~OdxcxuwSJ1COUUWI{Mq=?CH-;T z_fIc@`4m~a>v>^gEulR(&RF=ak{8TsO|qL|U0+U&<7ST4V>cNWC6&GM(zE>^Jwv>+M3Lw6NXaGqWq7^6$72U7HD?@H zbioTO@5XXt6UZ2rR#qexYn{s1j5-?nKxbYnCpBAC$fJaqhCcQD2_@5up-0wW5R}5T zQH{=%eciIJDiap7Hx$B1VVcson7OG@p6{)YGc?3sr=go6iO3F`YE3LoDbpFrK8YWS zyP)3O;hTD>j@TY-hth1#3uJ&#*thbfO)fr)Qo4w@lbM&Vz*DPL#Mp8R7~l6^t5T?* zynSxY3tXtO_onnRp*Dg8HNM(lM{^<`jAcEY(sQ=syx>@*`7z2&d;ur4th*-i{=hV4 zQHR~OC{%H;Qe`%jl$~w>AV(KqokjMjpv8Lp!7%xb$c}GcIW%M~L+SMH&q#QuOLiM@ zAH@?-Amy}nXACV6bFmJ!x*78mefpk`Nqf2%uW{Hi3StcI-JKy<{65?7z?$_&F(Z>m zyD@Uu&(l4~H1?w<5PX|UN(Kr#M4t1A&&cM2BZuemdcBIEmbWZ!F_!#Ma~5X)6m_7L z*stO#L=h28n(|GoZ6gl#dZ)v6KVImdGQ7y*{##{DmFpj*(UsY?i=d@%75Y^%O(h`PTrnTc47XpwlrPT8;|GQ)3W13msjspf;-+mShJU7?BM-0GdM(J2|;7F zv+TWH<{%iCS0c@(nNlFCO~;TM7P&PzXQNejd{^Y6OD6D`^EzaHts{eA0wT2T57w$xw@ZF_ zt|NOYjT#-fGyCB?8W9+cWFbL;ambq4w4zsjU%KM)Ai{GK2Ds4cOxFTb;!kU)>MoGS$dEE~Df%9X z0$W3a4y3Y1E8AGiW0f<>BQr%SDR8EQ^FwI&^3Y9{42oGDpJCmt+BDPcoz)4h!=2bb zZ9A)lSbHc+bg@5^n$e$jsnyNzH}D#-mfC2Y#vapborP2HKqQbDid%`F2~%7p{T=wk z_$5oEjYC4W8IACSx%=s(_k#1+42*ujCTmwm>1Rj3Rr2T8uZFta%UK%lGbn>pc zqf@{9>>dv_2qfpQNxrN0XlQQvV_a$*sa+J^nlm4!cJMqqkI8*=C9s+_?|R77ki+_@G*23EJd#Mj*Y|Wyhg*my`dGD%Gir@ zG;6ZeU_r;@^bfdS9nX+45MsJFD|13&S0uukUhbv~07c@U?6J~HF~{nlUSXHi4v#r$ zvf1ejX(J=O7d+|I>%OiMJRU&Nlx6K4{-M-x8p8 zEO1WV>~E@WxSO6Px4`~;bY4At1Y7cb4<|zI?oB7D=UrXMt8!Sph*uFimCjp=%nm`% z%B>~#d~k{bz@{U4f%k#Wd|NPGXYehPrma`67LrSVNV|L}Xopwz`Zhk>{0Rve0W<`V?g95J+{#|p8iW*-ni^-HUwpj~ zuCMHv)m`3Xk*R#z}l@za0?r>iRITQyZpV2UOhvF%Nt@%ZZ6UTLWfJ_*k4x**kbj~wNvDunc< zqZV88SWg^1!%ea1v!AUEW#D%ln28MADjg76O$*CPnaImzm6WRWpW>#G>r{Xs(LjsN zD*WOqyPsJc5A^U0dpRI*_DY_JXqFROPq;%X7OS~Y5M2;hbfF(ePO@CR#Z)x5lH~Y& z99EAz@|npk@S8DHE{AH;cL4j63KFZ|qrAh#_eYn!61iLwL;efa7lHV8xMKq$jPKCT z6L@0rYT{Zu6nvc@e~XW4lqMP)30dy3hhlwAt~18a-<+o~^qcAnA!=q5lHy&+*btw)PAM@oEp6{tG~eZ5y6jp^|gXb;wO_M?suTY@XV-pFPWE3^ij zn3H`^#EmrTIJbz*@RXA5b?mzOOD5T$0w61_`(7*ko8OpBw6u=%j(R7@ZfHnumt#Zw z_ghPYPoJj7m$c+DTzu!|ez`53!PHjN#WG`$?u8Xso7&msU}TaMXxmVWYk3XaDMD+r zg?TS3(y6aQ-@HWNjhh}}?p4h0elNfgM^($U)&70(&krT?%mbqw!`PDI93clm;!@&PFt#N%eWQjnmxV5uk%O|2f4yR|4EZdX2H5@fM6UCCmqsJLEKf#zLPsL%?sbj0z z!f;x!XM3+9#oq3OrmxIgkaE@ze(J4mvW3uDHJ^uS0#J(DCouMVf7 zXSBeWJ6wH#ibti0%2SZ9n|@h=L+jB47jjo)90n@qca4ap#D~N#PSB4e=^&Ln!xQGB zHqvz>RJ_>?&x<#zBkeCrftrNdn*cH|N>Nr^&-b2E+r9tTj^Wr5aFj$!IXt7gj0eu1 z?VleO(QH?|gEn`L7gs|pEj9-|gSWj@oG=Q=-Um|DQa?T5vnv`?FxwvWqUdTsum<=n$ z$^FjEBWXbi+8=JR?_b&K=O!T49zXh|{G}Nk1ZoDh$b-@)ZOA=6&USKPo;C*-5r&4m zMh`(zV~upEcQqI-4RhWJDx2Esnx9!wsg(#*r#w~uwP_fLQ+e<$PH*%!~pQ2 z#B_;usC>r{w<2j(gq{SOYMz_)PmF+pCB6S>y#1@OO6k+w>*hFRQzgXVS63}%p7a_X zVY;~_yGBEl;4LWGgtk4&2@SBsff?qMXvinxKwfwV+GTK2{2CP%z&})gCx5&QoU%lt zc3k$5FE*S|K=`H!B^u~64r9u=`z~sV%xD5H7g1B6^SK^X-jE3&uFwxKfWlygY57~| z){j8A=t!(ZoEwDIQilH-&Bt}H33Mg&^BX5~m!Co1zu!l7evJ}|`PZlahaE8{Nn~uf)4nBh5-+# z*vMixfWx2dG<-iL@wfhHsa{~+#qk+V{j-U#e>KtL zXM=MWyHSO{{JxqOx5<8A8}Nh8r+2h&&T~fo9?PffAX3~L6nW>*o(5k2Pp1c7hN`k~ z@~+i~mtS8rAt;WEt*`T{iF`7f%2$iGuP+I_H!O8du3k0eU7yYB!Z?gwmz}SQu67H( zcP(!}-n6zv@?M;UUPV>Aj=Aq`PFz&|K)1HXzaV(rq<72=y{ENEk%HW^uOtuNKF-5N zwijQ=pPDvvlB+gm>UzP#tBC~Q1-hQu-j{o!$Dv+FP_Nwy?^XocA_=pKgl?a!CW^-d zA-$jL$>mbV1;O=^Zr(bMAY1_b43j~#n2!SaZQtDBKzE~;;u3mF*R1-p%a=bi2q4DR zFPN_iZhM}us$NJgxXYJcpE{N?9Wb&oG4!lAT}XMuqAD-8dYDgsoL+@r85})PCpg0= zB50=Qta)6VEO@D=JRry{p6_wx3Ve%w?{m>}M?ktV}+FUu|E?^jidG1wgPof_T#z{J}GN zc^=T4!@!$C#mdxqG*t{8lq_z@UQcn?VOCP!x<>4%UNAJBr)(WAGoSQTFKop`a2}I1 zU8T4z+~!l%g&u^H_l4OW)(?1}#9g)HjBnJgC#xzeM+qQyn2%$;VZ|Fg9ica0+>rIY z`V5?E-CcP&Mz*041T{C%`nuYR<((N2fSKfWO0gk03tr2(hShT(FE=effF{UXUoHzC zLD4~&M@_nCa{0M~ykfFu9$SKM!mrrQB^$?%^!cx6VeK#wXho*{3z+qUOTv==(eXRW7W)?6ke-7qI zbWuAHE#6I614BE~H>WrBPU`DFXOY=5>kJAkLR~70?zfbfxz>hM#2#v^xJ3xul~2G{L|w7?=~8hLGvFM z7>Pcv4*IXx@XuHD_oKfW2R#3>v>ph?kAo|5FoC^?|PVt3kl8{{4>8V#&rGWBj)+`KPAf0aFUf zz>TO!T+swy9a;j^m-tCjqsaBvu;3v_v72|=!l<{$Ua@OJ`DLTY$E&kYvBo~oGbG%4 zV%wXfW)HC4$?g}G&_b7QGl@V?b`}#N1DVlcx+@b-BI)>i66xvb*#PqoeD1eR=9WB( zrw1%}C}10;1>JrC@997yq4BUPqYQ79BL>my7CDxGyIxN2e_U_(KioP)cKd41^|AiM zK<(ujMZ=OMYBx4JQ?2KDi=-P{bpLq_ zrD-KFRQY`~RrTs^rekIyTc+pTLw0DuS5vu=Si)`3vb^^(@^f?LM0RDP-~yX$XMVtC z9k-{R-W8YF&Z$JVSmtHPnyUH(~f1yVNjwUL2iH3BTM%+8t8EW$A$o9^sFhCYE4=-ri&j_A18d~2SXb!;C zf?ggKG=yeJZiilkw_nR74^bS7*%SF4i}vxd4j6@@pDcgLal1IqOQwcPhPNE*5()|; z)#@9VnQNak${%_*f;TNYBvyA714f!4w?#qM7w5=}DMc9X#j)|U_tnV{Ed!8Y^GwcQ z6D~E(`6@42rZMMWh1V^~M_*Y}{(aASigy~jxlXs6$5k7_d#sQUded*0YHwO}B)zt%xmYdq=#GJ>QiFSEUm-`;q>>1#1ziM{( zNaoE%_qLiacGo7L>T><2x0jQd!oWbe(#xc-9>#g>=ed{U>r#c#Txg58&tNmqF~`)?#Lyt8v;Q?~98 zWNpd8w(D|B<`dlVb5btlmbv$!x}zlRNgtrv#Aa8}`8c+H32HdQ)S>5cput{8P5A+M zcS5Am3dut5AzYji1E-O&ul~jZ)&1T&d_JMw0bW=q=iL8bFi$WVO5>G{3_pZ^p=zgp5l5Wz9KDEGzF4AJOL|Ln(oeqK zLN~B)@T9mQN0*OXklEv1tuVL55HJ#iW0)l{xBcG@JX)fle{RYbb*@9x;cenELG1-e zox)H<&f|2D)lQ#ZU`Lc&qf1!UB72sZgRa`#)R4Udp_{sxMpu?N6U0eI=1b8>a zLu{eCDCuStk2X+p7b!D|miea}6)pFYFt;^uycCB(npa^R7e9c%%b(B8T7t~M+)_JH zlov@`sa`qUJH$*z=UQmFNeJ^<{r(ieHO$+}RCPfS zdFdSCmXZEyVZT%GMK3ny=`AYt_0s_@;jRE!tgXv!;0yyM~pUc9|_# z(kzefyDlw=Th$*Qeh;l2%@8r=JDojRV_@{UE{h+f)7mxdwsmHkz2t?TwqGPePwPXj zzA3#~SgK<|iJY`U#AqSA*VhI*nWqksQgBK;dAC)5dNA}A+{b^hi)U>`)cr|=p5N4>0#nq|g#DJvU{YT*I*xRS1UEEp_ z+UyA881A6_^jCOmav3YH74ol2=Xp&UdN0DKg`?wTw)nx1>j>kR=gzfD{Zty6s8~;^ zYY7RSi#ICjlU6@i31Z;Zz8o;TrMfKP_A%`IvI%x6Q?iBI=&i2YyI&bGwXW_gMxZ|r zMN@lkcft_bmlBpz(B9Uauhfv1hJHbifzxFxOywWA&r?<_0_AvlSeV;vXkjO+?`&*$ zpwU{q;~%F!HMY*gC+pN;mCXhg z*=+huqB|HE=4&(rj7{z`!N7=hd(Ce;mjoA+aYLQoHspHK9N@-Pdlt`E?fWu-p|7f7 zEaL$=e6`l&^3JrWl_=^BMQg43?;XCi%M%rJpKA=<$>^tCs1k6;(SVcL$G)021zNp49 zp}i??0J`_-`o+{s^Um+5C;bL$`<`Vsp1#|Y4G8H>AFtY4a5S;MX(MZ&4{jTFGE7)LhAESp~1MNyyRI6ggb+-mK>4lNz21;lc8wMTTA)2T^9(Xk|3|i6|%@hn*itPIan|KqT}Lx z)II$CYTxG%M zyubKr=DN`6Y7XrNxV>M{DBkpjdAlU2Hg+g8Z^kS<*GjyeUVscWA)Fy9_g9WIoA3sM z1>=qYWcTL+xO}JybdHzdeQ3C-Q0oLPr$%u-0HQI2%~@{JV`awdDBXAf&4+nki_2Tc ztL@C|h0;9$K>oSB!5i&IrG4<%>Ipsif57<*UI?<;hmGTqEp}zNzS#a#Bb>UMgFfPu zD&{F5?lTIIvS+41;MR63wA#PX8nxusg7`J++m|;GTlmZVXMv4EWykX4r3{*QujAJv zq1hGt3c*buJ~rNkO$IG*Cw@NLKJ$sn|Bl4+X#t2DTC9O6hvyw7b+T`gsu4=o)#x`| zXy+<6<#rel&SkHhme-Byf@Hc^wDx*c;P6zhcg>HUcB<8y0h)w@iVWzu%K-a;J3dt^ zrSbCgTQUkCDhA7I)Ks~jkY7B|xcG$Oftw=lhk2ToX+nw3;SzR(=UKt~0z=0c0%PWC zyP7KX zY(-Ug+s-a_@@-kxD@KJfc@zwpBVopPMyG1n9Jgd!e{J>!F=Zn@}C^80O18l8-Su2}cx%RC&E?IPl;`%m&8(5ii{Uph#g!i7M6wY;9JOX7 zE9oCi(g3;jvdvmO#Z}6FT}P!u_akqCZ8v&yEATnEQCTN$j^`f1#@|$f0`dLww{Gy#=hio<;ud_t3(+o$FV6`Gr zn;>#r*s*Etp5E+K|iIVa{X#r^irFtc^ zil=x}T`ygPSUvB~y>_s@xQXeH1kmN46{1vPWG;<=<}rZ&iZU9pi#n+6 zn_D^c-XX4n=kATiu31&m@eS%j_p-6Ac89Xhi2F=(D#F}R=Sc8)lit$p+ z%plaanhUIHn*y7R?r+qCnRXL~k1^sjsjS)|Iy~|jfVtSh?7%Bc#=MDPCwZnFjjzTE zJa3tk(+=VCYZ%Kd;9wazL^+eeWy2lQUS>t^)ok@m2*i>*H;wkMx%q!^GvB*#6t||g zs}&p&hX2KW#2@EVNA)8@9;kBf)DN=wDH1Xn${ zV-`_)SJq~1az5LJK2NF%R@S19Kwl&&dSWO$>&)`evTloP56@ym8BuAukmJZs-gha7H zu{@g7qh1~jCcalV*&SJON%@VkpoOrgM>Sf4TeJes_e$;T&`|;hZ6p+j81h-FtqGv@ zy(Y7jhmM#{KQ3zrQ}tgu`Ke{4{8>JZ%!#umX)A`)eO~ta&g*Kz0-nJ7p zN}Qp__zm}O?zz+#Bl|nKKZx1O^G+yY+b+z5rtVUD)?WCDI-ZW@Z6EyD-U#xH4`n2q zo>VmvC8P}odg{4Jf($8E{`FTdiT-FL?M1#P%7UN?F62ffXj+x!p0S7OhOQjLjujgA zjs+7*rM<5#Mi1tLJicF#D|xa}LxfAD$hqD{&e(C1VMct1ejeI~xF=VYpRaSkfg&Uy z3E1d+bbapjE!?xc$~f!LZ|^Yh=Fcqh)#NZBZLGbAjJDLV_2qeBw!B64ednqJw?S{IC~XcYCtlx5?l9d_0SV?>2Z#gX z>Hu?H<9^XQg1xD4N9cGW>YrFAv%ww0aq4~`5G^I(ZA)%td_?|?RPDsyxKS@K;$8od zzLCD@0*5h*8-N8oS*YU6b6Cke>m{_8@_Yl0u}Ywa(w1+6&8HE!Kp+NEfM3P^&ab_x z`N%e@6hAfbFCA3x5zI=eZnjw7{w0_D+(*DT65V+6N|y+SrfL;yx+R_7ht2ur8xZq4 zG2U@D^HIb#6$`|v<3c{edY$&*^xL3%q#!`f*#MOx5giNvY=0`UWk{Zhi_bYSYMDPL zj2SAHbW;rLLAt_gZ^84YK`KEGp>@=H0f6wYPs61@2To0@NF|$R|MbrB0{=GMAo!4+@0$_kohr8u5+>m{rZCs~TJtxgJ-Dwsbzvx}duc zlgyvt^7KpqF+bokD=MIM{m4WzzE71yl{ST8@4G(dm1jxsc60=)Y+S!})509f13Jlv z3Xo+f_+YeBh$CcjJyS-4xnG6*2vOX4B;Xpg!dl+ykH>Z7y8z^Dy zPwtkYbxtf}y4Q~4zBKrw{+Bq&@;0Vpq3+!=Q{lnhlAlJYy{%dHBCC;QEP)8WUhQhy z)-mhV^uz`^eif9e=nc!&Vvf7R%4>Qs+x=$D7l3#z(=!;QoSF6++Dz`=jIE`Obk95x z&t@~`m&)5NncDAF{755yYQEg2uEkm-hIj=;F^>dLaAp6J1eMzNqmxx{Ue+e9nVsT{ zA>+ZHZ5J#ltWIROFXiTnEAw^Z&}oCKNdMWf6Hz97W%oV2kzW%%5vy9hkXMG{vnMk= z8+ifC>o=>Gso0N}fxDGahb&u=+3_#WUVnQj=3a#4%`tQ$k1($@`l(RI4GHS8*)|%h zBJWG&TrXYWO@RR#i0R70;o1@S(@eEe#)A@q(4Vl2$q}!)voSv%0~G7 zXh`ZacKWhv-7i#zf~=e(TM4Azb4TNgM8FOlaTBNlssitOPM(~Y=fF8#rm<@6y^*=` z)H7`CyxFx=pMFH}ZzZb(g6Rq*^5G$3m7 zQ*6uQv>X*lUiVZ)SNVmF(BZ~sCY~~hB0%O&S@3p8x8q@a0@;XHu)+MZfh#}) z10UpXvyNMT&7W`DXll`FMFHs6-M2P8xn$jKpJ8O4L0knC`FXswu~G&+P%+q8c(Y;i z-V8zl-#D}@{lnF9WI;bjt=8hno~Ke~#GOvP6uA*xwGLOEGV&F~Zu19k_481Fz;AZO z&rNfGaT&Ik)0;qIo_{=UNXMc!Xvu{GM%xK%x;;=*TBr8tql@{4&kqJ5tu6f3yIQ{p z<}RMfg%_xJ)&3GP62E0lPWMJIw+@ON!!zY*X+>s&EN^|7Hn41Yq{UuUO_wM^599Y% zUxFalj^tAAbTk` z+};TDZ%QbWL6&stZF?YbLE$vAqKxBTr0s9egx9za$#Ytj6vV9)BAl=D$PtN3K>EPI zK1WhhrKWMA=L}JZ$8OsL>{Z@cSfcFPtgg7JuBbL3&<;p>(_)_%NtvpVXpdxT3U?Se zoG3sA4`7{|A62EmJoYuhr>E`q_k7Ud=72)0)X)q36sr#J#pD;*WJ|`RMPo<=TllD{@qDG7OC!^N_YSG5}MXB(15@W%nG{_7;j)yfdW4oU3WUXB@a~4 z!Sf*OHO!}gfP*;`K@(!m_R~QbF=|Fs49M3%yl0vL=p+)?^1f+C_dF0&sS(w#yemzh zU*F89BC}YQYRO~!Joiet-y%qT-sr^&bbryeN6!#AwAaDix?(LaQ85@`w=ZPnjkjPOqw(*mhf%YpwL#qeh+ zm8^QU(FDT*<#$pr)Ox-WCzmNQP8o7op`K}lofMFyxig2f^P_WAwKAA>($Y$1eH?=Yao7XTQ^`;wRW$P;y*3Iu_ghx1n=Z?(CkT82==8{@UEE)ZeE{<)>SomM3&@{38P}ik zHy=G;N67d86}(!$L^;P>M#!rW#gr|@e{P1IF>Q$kv^VYrBjj7~wtLnt-?2zEmYry6e5UyVkR!Iv$!t4fiH{}anI|WyB_k{1A z0ZfH{kJ$8jpB>lCjS{MT%rqF>1aK%Rqo$*zvU~mGpGG%(Ge_GaYb=UtDmc?NaawNL zTNHUR{c_VLcn`{(6)b35ajlb7*KYt%1Cp9Zqx)Z=5dpE4g;3>1-}RKOZEJj;PvJ0( z71f}9j2kv8Et5f077#ggYD`T(0lcQxNc5U*;Z#)N`A@xmoRqX)x=coBvPm5?wf5d% zoCC1tc@!{-5^^FTi}?0)eLhC&eFdnxO&7>N;HP#;-iI&tx?pB!g0QYG|1L zUaOnlM*LJ%+5X7z{&e7jT~q%Hse7~(Mhj&u=F+tmUmh)Qc>tigdU?1(J^o!KXXs2^$k6ig zmfbDdFOtJV_MKav?!14>0>@uWcr~uxQ&1R&&h%Hli!OrFQA=k=6M)io{=u89Yjx-+ z^ry_2GPRrZ+C<&`#hCzr3_w{L1s7539c{dl(T$Auhiz88Gmn%{gTkacYs~5s{ zYrK@AibaCgF}v7$J@U(^3m@&)X8|dHkT3t5@;6nR*s&5{*#jf8t7P`2TxOlEQ?D!( z1F!eFK0og_)&XRBt)*8oi^^o!Sv}x0;lo=qqqUq_MU3Nf?O*qSmEiX z?n*4^oNo%D0^;%6NaC&r@nqzHmfUWdJ792Dr8sApMNO-6i;FOFm_K<@hQeHN^gx` zx!5!uZW!&Xz3@==*;v{I@IjrC;y1caobiLxo=z=8%V)L|^c0G^&_I0du=@jLuI5^p zDOU{#Y1x3P5Sh)SjuLL{qI$J^OoB`%lAD{T+0*n?$dwsOR%KSc(s=ba!vmE-9MiY* z5`{3C_o(V`cx%=%M*v`Mf&v%*GupD>Kl%SjE5yY7z=#(AqFVJ0B3#6oD6XQpfXBi! z8GT^A#ZOanjDo)qHt$2w`OdTF({hX6D>04UCq@*6uJgUHHGBBM7g0xE|MaQ0viTEr z;xS}rU5^$Xw-ukU%zywVTWO)>fT<3BSxi9eEr*mA`M}c zQ_swcSL11zhJLlvNX@%e;Zih;3YMR}?!hzwYUWAnSA5qYGjp!2ybZju*qH%sh~;eD zfLhK0Lw^d^eIC(K1J95`eu=H*aFrBAlSOu5iINSF2xeC6gP+-67$iU1x8;$diaM_1 zc0El2r0n9WX%AqRRwL({^^W7y)k#a86FQ_za?l9gfpe{9V8uc?;^dZaO83_HMZnd< z4fUwsiQ&VlKQVcq!FCEcij+(tjEitJ+j};E+m(I)-RW-6^BMgBV0mXL6Lpzd?UW1| zV%0Jq*NhR~vKY7r$FNhsVVLO37rmtH%YSmb+5uhs1`@31kL|Qy4`e!a9O{=CHqSb} z^2d0}jd_8VZ?8Q@5*I9jr7k=S5i8p1zx1njj|@t7vS=lwHoVt&M4kg=NJhL<_c5k` zyW)@zewyOIYt+Mjl91CF8SNtAugO^;o`Xdk?H~2dvB<*GNH;)^5bJT1@pO|K*vgW{ zFW%}{YVW}m4H;b~6Ey(*#%(5m(cE-wgu=;3Jmz`BZmhY>05OJ`6!z}?O;hqyh&uX8 zl^tpfy5$Iv>H#ES80q)MhinwU+w#~m>G>Vn`UNt7Gf)x!|IR>_Z-XIu2{41uqq@96 zGzCak64f2w4-(iO`4!`)vTPgNGB6PU=5raKa~XkFWhsCFEkT#?xI4|2jifW^Yx4il$~&0+)XK+J;%|>$ z0aAIi!W+c)U^iNshs45F_fR~e(a!RxVBUEbEg#F!2oFda#m`F+&e2=PtglZg1+rZ$ zH~XI~pP9)>9BOixiNU)57cj_yAT_v4I{3XdW_QU%8jY9TW!VSFjF#Z)x9w}TqS6=_ zKcB`Lv`)s^4olkYHl|x2xpQf7#alvN>yM#FMYjp4zf{;SV$f@-A0O~x=4GH@DgokD z_&r!kt#Z*Eq;`tsSMDEwk(+qaeKbHo13{ecGki?|V7iff%fbL`ShV@taw1+C z8Nm~b@51@;AP`WVtGp**$SPiID4hB;Ru-w;o@G&UBMXNH)`g|p7P~KdapiL&+8)PR`PulzZEkuk$x>2vQMh#X5QaIE8889{RFoV$BVMkmbt zD>+&!jV6fiW>_2hNmnG4!_>eZ46D&VK3af;@hx3%o*1XbBiGDK&+2mHGq*v_g6hZ@ zWo*^Ubu$)HR6G|>!F6VR@SC8=ye~CMWTQih?DKmk;t4E0@KD6`Wy=cNpm26$Q&RW&=5U>zI?E zw}vW44%q_fpA@#H!zsbr-P0@EO+H6*PVWOtqs6ib>kslA?SZ7?tmjX4i?+qEXziNv zKA!ito@AgGx+~Zv>$y#gexC>>-tJh@vc{kd-}Maf0rrP1P;Z%zwSGBC`d+S|s2c>a zLm?xQrcIX%5h3;;gJubnAc6!|S{nggOI{ZvGNBApYq(K zR#(4Ahac6CUAV~priem$^~PP6c^Tg&BmZphA;wP;Vik&a6OdET8*JeJ`ZKb~6Je!f zaFfp3@6--KQ_BQ$X=t-Q#~}-W5S_4@*2w$>ieY*XDgZvcSPLg>6+_VP{NkPHkJ?8Y z;vTmrNfQCIQyk(q?bJAen4V!(4c@OR=a+XJAdCxv(76C)$ap^!R~gwvX#P=U?qOow zyV!}|9G-$Xo*}3v&(wBTJXc7$W9Lbb{WS&#*={X-zxNYYXjjyeLk~Z#UDv8HFD6WTk6jo?18e`mIFLqcBJvp>=(TEK4-m z!A&Lw`h5}Y5C8$@Hr5y0&gmXJMOBOIrm^WNPxpA~yi-h}JYtZL-OGFR&jBPx{jK@G z$B(c_h=c`iQWgiHIp4a__ai)B~ZG4VTM0xq2IiotJA7mX< z&rW6r2oV#dpMU^C2nU{*aud!|g_=fKg zFo@kNRI%fO!g0l#j93K?vC?%a-XHU$ZSP5&+#&SJ%FHea0W<*j7TO@pM%u7lRpW)d z(P>gtN9fGk`WDU>DOn%L@lqtp<^XiuILoEsgZ-*G(K@?ExERY)okB=ab zd!P07-J7DvZyx~s>@WI9yKSk8D7c;jDzl`TC`jOjBJlrB|73XVV%Y+6!aEK5tw1RT zqs*mm58C3@)E5Ol}>@!bUYY$Jmo8ob;BR~nIali4a!Y!*HquudvhD&m>{(Q089=yue9N;0N(N+=3lk7h-v+52 z0tvD%_$BOq5yY*Mg=txjcpf@b)lYnQ7faYZ2eb{pLYgK7eayQP@WSH`uXQWUMIld= zf!pE)f8riLm%0TRE3y0s%Tv1rUK=TqEL92(Nq8B?;s|?1u%W~0Xe*>ns7(~ z&vB?+_8w&+$FyFEUT{v|Q%Cy^rJY&5a;h1JE0u&jQr3{-wM^WmC`xy>lwY+4R3`5Q zeE3yd0OB(07R9cw`WlEk6;O^ErF?w;9xa~hw2Ys$(DZH2ZEI3Ffabm1!Cgc&S@^n# zhfWvq3K(tur6~Y&dmQ^&T}p<5-@>mlzxh@x-3u%gPY`-qkkVGtausFjgQ`-UYa@spsqXKY4SHleQ`1X#aW zjUa`8A}H!UZN>(6aaBPsV)TG1Em-%t?F9)YFeAx!dW&)W;;9Mvf7sH=%z5361FrSSy$&@2{n90u@}Wbnld~VEhK-6 zqt;DpQ=7L;GZIj16gQm>TX%{NWFZD?88UsIyOCV%lX=@ed2Kjud)Oat2&8Fyl+N_S zUyt!GcT#hK?*P1wxiJChRLHiN^0~&SOVQVR-~MOUm^jz#DpjODz?bqw6_HMeVQ>&(L|> z&ilUC_5Sr-GuJcsGtWK7{kwnP@Aor#>y~;zIXKZ;+f`oM)iL0}pz5Q*LL>K{I3YK*zM^IZx?${gvW?eAS7fxHAhmmb;;W2r8ntgW;QC z!qDTf!$r+biCmop17{1b7X{i*bju;X$VaDOu(u|L?-iug8kdV^X~bAYMge3{>nyxw zP@4SLPJrd1dnCrL1)xC&3pC*k)O_-G8)nUPGFeCTMrW+SAmT=G$cjM_nqzd>7iOGF z?}?660Xtc@x%q{l46qoeBD-hOZcT?}W;R%8Jf5srul8^0fO}_k#$75gn}EX8FSeJ_ z>0-|_0IlS`Kebp+*HPOS8F^k=$!|EJz%pEaRPh`$gW4Mj%ft8MC5)mz?J#&uMlhrV zH@bf?*O#&*l*o3RqRm_E>Mm$^coRD*MNF}2D}5g08zs;y36vOndF%Qq1-ZM*4XuIb}tLP>xEQaP^q z5=dGn-#^O31DRdeY-}Y^cOWiI3n>x0jE9687q_d_1Ys&eIr+^_xb)mExd9tN zE42BG*Zoh@>fxYiu-wZ>F4MJStr@d(aTAf7zSSLdXR0iBeeCm=R%_h$VBjRO0oZIV zJg*xo`OM$8K@A~)wrE6++cct*_1@?RFKF4mwa2!R_w4wgZ*WACnhbl(ZR9(9bd5Q$ z63HCw4JHL}&i|~~JOZDRQ&+J+iiWEWHP1y535D9n$QEHl_TqmD}xs+)tFJY)F)vV|Qp=_V@T&vrcHK*2$ zk#4PWVWs_9ASXO_;T4Cs9$>=kL>><(^vBL-l&E#uMJ8de&9z|f-D{ANeY*BaR*_KM zm!TWk?|7oHa&uT{8xos}E}MP3@~rsS!f&}A$}6HcfzBbw0%ASIT@NW;e<$yoYs0}W zh?UKdg3<+hULSpi&a3x$>#U6TpW+f^ z-OpAT(joA0L-|qXta!=(!{YLGFc0&kY+1}oN8gTXyG5y+q+^!ha+K)f@>pD2db*nD z4B_^Cg}WZF?dAbsk3!Sy0gXURDI>ek(6jk7PR1ulWBk(PxEC=mUmo*GQ++()yq7G> zrT;p3JyO2&cI#BTG|TD|3*PgZ$2TPmnnFc-BaQRy0K0??P!Q-}D6{Slqc1E6Y@|14 zB@&7GZx)GV6V#m#Me}{dV~y<;Jh_tj~FZh``Ecto-JhSlN1h>qZsK zs-l#OFds(<>U=giEn{!_dqj&i z{)Jk5V61Btb@*VQO#3Db%BxN?ZK|4twi@)jY%<><5)u_OHriI7=>d-X$Bc8g?IbA4 zS$BnhhvaLr5A*RYmP$_hIPu$3-7{ZX$=UQa9$fZ;;-#F+s|dGQ^k93=dhcyY+H-Z* za|&~g${k)`OeL@fScAc_DQt4}y845))s+YBn;HDEXfqf1M%DbYiE}k49&6 zpLTzuu0@1R)2XpqbgT-J@qj{NEjWDWW0VNV<_z0pvU^eni8~z>ZSNavDJ4^WFS(~G zv*)Eh+bideu5{p%>Ln`k$K?C6Au1bT`u8uFO5Rkrwi9M?HI@z;OT^TmQ>U}hzRF;y zAh2p7<=j$IX$cII`kQMlU;71(9D_sm>8a_d;-$7VZk)DNc9;d7SoKXwR{HvC zmUCS_-CwICmvS-ISJU>5cQO_OHi12rl#29c=9Bd46vGxtaG>JYF)9kRNa9nmEhux4=3#wx7{hG_X zaZW8Kd0By#3jAy>a2>698rak{`?`8Xtt=EnMIqvLrJE37Eh#!@97oXm5H}C&59cx4 zisl3t#$AE)0-3MHfObQFOF`+pqvq72%-~e=|5i@559d#cRf`8lsv&%Azt`t zRt?bRo+Re*1A3Y3+5CyJ_vczprVV=3cK@WGWX0HuunyQmUX&;I!=;^DO&a9QS1tNG zYN%~>h^3h$$k?2_Gl3nmjkYrRg&(bQyoq!?)xBvidvtEz#dx35;AD(EZ-1Y%9$)cs zL9w*$ff^BPM=09NelffEvRW!TbHUE(3H2IprVO7QE#sO@WpKz{kQ~kE&0AqLc!P=c zLc@Op|6MyT>My)nPV~TABjA^PrtM4?vlKX5D(fsQap>f!3;9Sv@d-6mmy|Ki+xwQ( zmUjpN&Q231?mFK;)>Jf-zpSb9a^Ulj0hah7L7puLPXOe*3GRYC>5_nU_nRlPWO~zz zOA;}b=%~z95%1=Wb|r(5J!DesJ%6XR5@7pIl87my*_{FrC~Z8#Ac##4ZzT=kXnwta=c<2@9nC#pzQ2pJu268i zN7(LqT*fbL3n#_ioG2o2)H+yR(y66kEiMGC&^SxGz~Iu9B;--EA9NE8HX0MXPe=6x z9-%p~p5iv;q>Z}qN|pfj%A{K{xCI29;WJLS8F&Mq?RG7%o1~|CaGI7~chXC#(nN`h z2_>pd=dkACcuA|@NwVWl;w&?VwVI^=>4?$aP9a^Cy|yqB^YC z1Z=rMIrg`U3UmS9h*Qb-$dNO4fDlh#{5Q*MdL{>Spbv`#e=GKLfV#B7Fdk zG?f5D^@TN}%VP(PMrm{(OKw8VRX;h=z{Bj=0oz9~&6H12XINi~FEDp;pgW{eWQn#sfa2=7p&t8)^lB|D-(G-0jLt@1)4pK1VZB_i z+r2WrV4RlnaM~g z&*L~!DB)QWz?5-}B{(8pg)_e^V3XPjQIItAHS408U%F)vg}_`1&iVXBCy`6x^9C>I zAyy`pegstWSgVJ^*#DbpnfBf4lPW(00&IFd{+2;UEI+vLmeWP%}2)Kyux=3qb6>_~O5F7}rc=3<66t|hV z%PasCR74Esq&G$Eb~WFTDMfiR0-ApuzM1^$UGA(UA$}r8sMeh zLWurhB=GdNtO@XNJGQ44>rO_{+)Mll0WwNWcY6t~G(Vt^ei#6R5K})DQvKoZ!_0!y zzMruQ%5Lzd;jXa6TK01Pgfsf#Dqr6wIR5G$Lw-3C)(MK4_Iu;cew&V@{1tx3#rTII z!P8r)kWV4M`1GK=ra(IW+vHrM|4)FG`JwLtD>=i$8|#}-=i~vAiJjOgC+Vqdj5R-{ zD&suUMfO}x8L*)WE?g%Q5{9(o7bMD
/* ASSIGNMENT 2 */ +--Please write responses between the QUERY # and END QUERY blocks +/* SECTION 2 */ + +-- COALESCE +/* 1. Our favourite manager wants a detailed long list of products, but is afraid of tables! +We tell them, no problem! We can produce a list with all of the appropriate details. + +Using the following syntax you create our super cool and not at all needy manager a list: + +SELECT +product_name || ', ' || product_size|| ' (' || product_qty_type || ')' +FROM product + + +But wait! The product table has some bad data (a few NULL values). +Find the NULLs and then using COALESCE, replace the NULL with a blank for the first column with +nulls, and 'unit' for the second column with nulls. + +**HINT**: keep the syntax the same, but edited the correct components with the string. +The `||` values concatenate the columns into strings. +Edit the appropriate columns -- you're making two edits -- and the NULL rows will be fixed. +All the other rows will remain the same. */ +--QUERY 1 +SELECT product_name || ', ' || +coalesce(PRODUCT_SIZE, ' ') || +' (' || coalesce(PRODUCT_QTY_TYPE, 'UNIT') || ')' AS Product_Description +FROM product; +--END QUERY + + +--Windowed Functions +/* 1. Write a query that selects from the customer_purchases table and numbers each customer’s +visits to the farmer’s market (labeling each market date with a different number). +Each customer’s first visit is labeled 1, second visit is labeled 2, etc. + +You can either display all rows in the customer_purchases table, with the counter changing on +each new market date for each customer, or select only the unique market dates per customer +(without purchase details) and number those visits. +HINT: One of these approaches uses ROW_NUMBER() and one uses DENSE_RANK(). +Filter the visits to dates before April 29, 2022. */ +--QUERY 2 +SELECT customer_id, market_date, +ROW_NUMBER() OVER (PARTITION BY customer_id +ORDER BY market_date) AS visit_number +FROM customer_purchases +WHERE market_date < '2022-04-29'; +--I Chose Row Number as I think this better illustrates how many visits a customer made even if they made more than one visit on the same day. +--END QUERY + + +/* 2. Reverse the numbering of the query so each customer’s most recent visit is labeled 1, +then write another query that uses this one as a subquery (or temp table) and filters the results to +only the customer’s most recent visit. +HINT: Do not use the previous visit dates filter. */ +--QUERY 3 +SELECT * FROM (SELECT customer_id, market_date, +ROW_NUMBER() OVER (PARTITION BY customer_id +ORDER BY market_date DESC) AS visit_number +FROM customer_purchases) sub +WHERE visit_number = 1 +ORDER BY market_date DESC; +--END QUERY + + +/* 3. Using a COUNT() window function, include a value along with each row of the +customer_purchases table that indicates how many different times that customer has purchased that product_id. + +You can make this a running count by including an ORDER BY within the PARTITION BY if desired. +Filter the visits to dates before April 29, 2022. */ +--QUERY 4 +SELECT customer_id, product_id, +COUNT(*) AS purchase_count +FROM customer_purchases +WHERE market_date < '2022-04-29' +GROUP BY customer_id, product_id; +--END QUERY + + +-- String manipulations +/* 1. Some product names in the product table have descriptions like "Jar" or "Organic". +These are separated from the product name with a hyphen. +Create a column using SUBSTR (and a couple of other commands) that captures these, but is otherwise NULL. +Remove any trailing or leading whitespaces. Don't just use a case statement for each product! + +| product_name | description | +|----------------------------|-------------| +| Habanero Peppers - Organic | Organic | + +Hint: you might need to use INSTR(product_name,'-') to find the hyphens. INSTR will help split the column. */ +--QUERY 5 +SELECT product_name, +CASE WHEN INSTR(product_name, '-') > 0 THEN +TRIM(SUBSTR(product_name, INSTR(product_name, '-') + 1)) +ELSE NULL +END AS description +FROM product; +--END QUERY + + +/* 2. Filter the query to show any product_size value that contain a number with REGEXP. */ +--QUERY 6 +SELECT product_id, product_name, product_size +FROM product +WHERE product_size REGEXP '[0-9]' +--END QUERY + + +-- UNION +/* 1. Using a UNION, write a query that displays the market dates with the highest and lowest total sales. + +HINT: There are a possibly a few ways to do this query, but if you're struggling, try the following: +1) Create a CTE/Temp Table to find sales values grouped dates; +2) Create another CTE/Temp table with a rank windowed function on the previous query to create +"best day" and "worst day"; +3) Query the second temp table twice, once for the best day, once for the worst day, +with a UNION binding them. */ +--QUERY 7 +WITH sales_by_date AS (SELECT cp.market_date, +ROUND(SUM(cp.quantity * vi.original_price),2) AS total_sales +FROM customer_purchases cp +JOIN vendor_inventory vi +ON cp.product_id = vi.product_id +GROUP BY cp.market_date), ranked_sales AS ( +SELECT market_date, total_sales, +RANK() OVER (ORDER BY total_sales DESC) AS best_rank, +RANK() OVER (ORDER BY total_sales ASC) AS worst_rank +FROM sales_by_date) +SELECT market_date, total_sales, 'Highest Sales Day' AS category +FROM ranked_sales +WHERE best_rank = 1 +UNION +SELECT market_date, total_sales, 'Lowest Sales Day' AS category +FROM ranked_sales +WHERE worst_rank = 1; +--END QUERY + + + +/* SECTION 3 */ + + +-- Cross Join +/*1. Suppose every vendor in the `vendor_inventory` table had 5 of each of their products to sell to **every** +customer on record. How much money would each vendor make per product? +Show this by vendor_name and product name, rather than using the IDs. + +HINT: Be sure you select only relevant columns and rows. +Remember, CROSS JOIN will explode your table rows, so CROSS JOIN should likely be a subquery. +Think a bit about the row counts: how many distinct vendors, product names are there (x)? +How many customers are there (y). +Before your final group by you should have the product of those two queries (x*y). */ +--QUERY 8 +WITH customer_count AS (SELECT COUNT(*) AS total_customers +FROM customer) +SELECT v.vendor_name, p.product_name, ROUND(cc.total_customers * 5 * vi.original_price, 2) AS total_revenue +FROM vendor_inventory vi +JOIN product p +ON vi.product_id = p.product_id +JOIN vendor v +ON vi.vendor_id = v.vendor_id +CROSS JOIN customer_count cc +GROUP BY v.vendor_name, p.product_name; +--END QUERY + + +-- INSERT +/*1. Create a new table "product_units". +This table will contain only products where the `product_qty_type = 'unit'`. +It should use all of the columns from the product table, as well as a new column for the `CURRENT_TIMESTAMP`. +Name the timestamp column `snapshot_timestamp`. */ +--QUERY 9 +CREATE TABLE product_units AS +SELECT p.*, +CURRENT_TIMESTAMP AS snapshot_timestamp +FROM product p +WHERE p.product_qty_type = 'unit' + +--END QUERY + + +/*2. Using `INSERT`, add a new row to the product_units table (with an updated timestamp). +This can be any product you desire (e.g. add another record for Apple Pie). */ +--QUERY 10 +INSERT INTO product_units (product_id, product_name, product_size, product_qty_type, product_category_id, snapshot_timestamp) +VALUES (24, 'Apple Pie','1','unit','3', CURRENT_TIMESTAMP); +--END QUERY + +-- DELETE +/* 1. Delete the older record for whatever product you added. + +HINT: If you don't specify a WHERE clause, you are going to have a bad time.*/ +--QUERY 11 +DELETE FROM product_units +WHERE rowid = (SELECT rowid +FROM product_units +WHERE product_name = 'Apple Pie' +ORDER BY snapshot_timestamp +LIMIT 1); +--END QUERY + + +-- UPDATE +/* 1.We want to add the current_quantity to the product_units table. +First, add a new column, current_quantity to the table using the following syntax. + +ALTER TABLE product_units +ADD current_quantity INT; + +Then, using UPDATE, change the current_quantity equal to the last quantity value from the vendor_inventory details. + +HINT: This one is pretty hard. +First, determine how to get the "last" quantity per product. +Second, coalesce null values to 0 (if you don't have null values, figure out how to rearrange your query so you do.) +Third, SET current_quantity = (...your select statement...), remembering that WHERE can only accommodate one column. +Finally, make sure you have a WHERE statement to update the right row, + you'll need to use product_units.product_id to refer to the correct row within the product_units table. +When you have all of these components, you can run the update statement. */ +--QUERY 12 + + +ALTER TABLE product_units +ADD current_quantity INT; +UPDATE product_units +SET current_quantity = COALESCE((SELECT vi.quantity +FROM vendor_inventory vi +WHERE vi.product_id = product_units.product_id +ORDER BY vi.rowid DESC +LIMIT 1), 0); + +--END QUERY