diff --git a/.gitignore b/.gitignore index ff9bca6..a691fce 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ _site/ !.vscode/settings.json *.userprefs +.idea/ + # Build results [Dd]ebug/ [Dd]ebugPublic/ diff --git a/Assets/BarberApp Screenshot/screenshot-1725444549743.png b/Assets/BarberApp Screenshot/screenshot-1725444549743.png deleted file mode 100644 index b6324ec..0000000 Binary files a/Assets/BarberApp Screenshot/screenshot-1725444549743.png and /dev/null differ diff --git a/Assets/BarberApp Screenshot/screenshot-1725444612350.png b/Assets/BarberApp Screenshot/screenshot-1725444612350.png deleted file mode 100644 index 6463e06..0000000 Binary files a/Assets/BarberApp Screenshot/screenshot-1725444612350.png and /dev/null differ diff --git a/Assets/BarberApp Screenshot/screenshot-1725444624493.png b/Assets/BarberApp Screenshot/screenshot-1725444624493.png deleted file mode 100644 index d2ebf52..0000000 Binary files a/Assets/BarberApp Screenshot/screenshot-1725444624493.png and /dev/null differ diff --git a/Assets/BarberApp Screenshot/screenshot-1725444634662.png b/Assets/BarberApp Screenshot/screenshot-1725444634662.png deleted file mode 100644 index eff3141..0000000 Binary files a/Assets/BarberApp Screenshot/screenshot-1725444634662.png and /dev/null differ diff --git a/Assets/BarberApp Screenshot/screenshot-1725444668286.png b/Assets/BarberApp Screenshot/screenshot-1725444668286.png deleted file mode 100644 index d65a7da..0000000 Binary files a/Assets/BarberApp Screenshot/screenshot-1725444668286.png and /dev/null differ diff --git a/Assets/Images/log-book.ai b/Assets/Images/log-book.ai deleted file mode 100644 index 3008adc..0000000 --- a/Assets/Images/log-book.ai +++ /dev/null @@ -1,2235 +0,0 @@ -%PDF-1.6 % -1 0 obj <>/OCGs[26 0 R 27 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - application/pdf - - - log-book - - - 2024-09-04T16:42:04+02:00 - 2024-09-04T16:42:04+02:00 - 2024-09-04T16:42:04+02:00 - Adobe Illustrator 28.4 (Windows) - - - - 256 - 208 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA0AEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FVks0US85XVF8WNMryZYwFyIA82UYmRoBLp/MdhHtHylPsKD7zmozdvYI/Tcvx5uXD QzPPZAS+Z7k/3UKIP8olj/xrmsy+0WQ/TED37/qcmPZ8epQkmuam/wDu7iPBQB/CuYOTtjUy/ir3 AN0dJjHRDve3j/bnkb5sf65iT1eaXOcj8S2jFAcgFFmZvtEn55QZE82wCmsiq5ZHT7LFfkaZOM5R 5GkEA80VDq2oxH4Z2I8GPIfjXMzF2nqIcpn47/e0y02OXRNbLzIrMEu0CV/3YvT6Rm80ftACayiv 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 - - - - uuid:63889a75-1210-48e2-9d21-6112a87a6fd1 - xmp.did:ca92f6cd-6d06-cf4a-a77e-7afd8f0260af - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - uuid:15f767d1-3c2c-43cb-9d54-048c1592e0d7 - xmp.did:138905ab-1b52-4b4d-bd8c-44006fe99878 - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - - - - saved - xmp.iid:e4be7257-ed95-3a4a-bc5d-cf45929a2bf6 - 2021-02-16T22:29:57+07:00 - Adobe Illustrator 25.0 (Windows) - / - - - saved - xmp.iid:ca92f6cd-6d06-cf4a-a77e-7afd8f0260af - 2024-09-04T16:42:02+02:00 - Adobe Illustrator 28.4 (Windows) - / - - - - Print - AIRobin - Document - False - True - 1 - - 522.915344 - 500.000000 - Pixels - - - - - Rubik-Bold - Rubik Bold - Bold - Unknown - Version 2.106;PS 2.000;hotconv 1.0.70;makeotf.lib2.5.58329 - False - MyriadPro-Regular.otf - - - - - - Cyan - Magenta - Yellow - Black - - - - - - Gruppo campioni predefinito - 0 - - - - White - RGB - PROCESS - 255 - 255 - 255 - - - Black - RGB - PROCESS - 39 - 37 - 37 - - - CMYK Red - RGB - PROCESS - 204 - 34 - 41 - - - CMYK Yellow - RGB - PROCESS - 255 - 241 - 45 - - - CMYK Green - RGB - PROCESS - 51 - 164 - 87 - - - CMYK Cyan - RGB - PROCESS - 0 - 172 - 236 - - - CMYK Blue - RGB - PROCESS - 51 - 52 - 142 - - - CMYK Magenta - RGB - PROCESS - 202 - 0 - 136 - - - C=15 M=100 Y=90 K=10 - RGB - PROCESS - 163 - 36 - 48 - - - C=0 M=90 Y=85 K=0 - RGB - PROCESS - 207 - 67 - 57 - - - C=0 M=80 Y=95 K=0 - RGB - PROCESS - 211 - 91 - 48 - - - C=0 M=50 Y=100 K=0 - RGB - PROCESS - 224 - 146 - 47 - - - C=0 M=35 Y=85 K=0 - RGB - PROCESS - 232 - 174 - 74 - - - C=5 M=0 Y=90 K=0 - RGB - PROCESS - 245 - 236 - 74 - - - C=20 M=0 Y=100 K=0 - RGB - PROCESS - 216 - 222 - 63 - - - C=50 M=0 Y=100 K=0 - RGB - PROCESS - 159 - 197 - 77 - - - C=75 M=0 Y=100 K=0 - RGB - PROCESS - 111 - 179 - 83 - - - C=85 M=10 Y=100 K=10 - RGB - PROCESS - 81 - 146 - 75 - - - C=90 M=30 Y=95 K=30 - RGB - PROCESS - 57 - 103 - 61 - - - C=75 M=0 Y=75 K=0 - RGB - PROCESS - 108 - 180 - 118 - - - C=80 M=10 Y=45 K=0 - RGB - PROCESS - 91 - 166 - 156 - - - C=70 M=15 Y=0 K=0 - RGB - PROCESS - 101 - 168 - 223 - - - C=85 M=50 Y=0 K=0 - RGB - PROCESS - 70 - 117 - 184 - - - C=100 M=95 Y=5 K=0 - RGB - PROCESS - 50 - 59 - 140 - - - C=100 M=100 Y=25 K=25 - RGB - PROCESS - 42 - 39 - 96 - - - C=75 M=100 Y=0 K=0 - RGB - PROCESS - 90 - 48 - 141 - - - C=50 M=100 Y=0 K=0 - RGB - PROCESS - 125 - 43 - 139 - - - C=35 M=100 Y=35 K=10 - RGB - PROCESS - 136 - 36 - 97 - - - C=10 M=100 Y=50 K=0 - RGB - PROCESS - 187 - 33 - 91 - - - C=0 M=95 Y=20 K=0 - RGB - PROCESS - 204 - 46 - 120 - - - C=25 M=25 Y=40 K=0 - RGB - PROCESS - 189 - 179 - 155 - - - C=40 M=45 Y=50 K=5 - RGB - PROCESS - 148 - 132 - 120 - - - C=50 M=50 Y=60 K=25 - RGB - PROCESS - 110 - 102 - 89 - - - C=55 M=60 Y=65 K=40 - RGB - PROCESS - 86 - 76 - 68 - - - C=25 M=40 Y=65 K=0 - RGB - PROCESS - 184 - 153 - 110 - - - C=30 M=50 Y=75 K=10 - RGB - PROCESS - 156 - 123 - 83 - - - C=35 M=60 Y=80 K=25 - RGB - PROCESS - 127 - 94 - 64 - - - C=40 M=65 Y=90 K=35 - RGB - PROCESS - 107 - 78 - 47 - - - C=40 M=70 Y=100 K=50 - RGB - PROCESS - 88 - 59 - 28 - - - C=50 M=70 Y=80 K=70 - RGB - PROCESS - 57 - 40 - 28 - - - - - - Grays - 1 - - - - C=0 M=0 Y=0 K=100 - RGB - PROCESS - 39 - 37 - 37 - - - C=0 M=0 Y=0 K=90 - RGB - PROCESS - 67 - 66 - 68 - - - C=0 M=0 Y=0 K=80 - RGB - PROCESS - 89 - 89 - 91 - - - C=0 M=0 Y=0 K=70 - RGB - PROCESS - 109 - 110 - 112 - - - C=0 M=0 Y=0 K=60 - RGB - PROCESS - 128 - 129 - 131 - - - C=0 M=0 Y=0 K=50 - RGB - PROCESS - 146 - 148 - 150 - - - C=0 M=0 Y=0 K=40 - RGB - PROCESS - 166 - 168 - 170 - - - C=0 M=0 Y=0 K=30 - RGB - PROCESS - 187 - 188 - 191 - - - C=0 M=0 Y=0 K=20 - RGB - PROCESS - 208 - 209 - 211 - - - C=0 M=0 Y=0 K=10 - RGB - PROCESS - 230 - 230 - 231 - - - C=0 M=0 Y=0 K=5 - RGB - PROCESS - 241 - 241 - 242 - - - - - - Brights - 1 - - - - C=0 M=100 Y=100 K=0 - RGB - PROCESS - 204 - 34 - 41 - - - C=0 M=75 Y=100 K=0 - RGB - PROCESS - 213 - 101 - 44 - - - C=0 M=10 Y=95 K=0 - RGB - PROCESS - 249 - 221 - 58 - - - C=85 M=10 Y=100 K=0 - RGB - PROCESS - 89 - 160 - 82 - - - C=100 M=90 Y=0 K=0 - RGB - PROCESS - 48 - 66 - 150 - - - C=60 M=90 Y=0 K=0 - RGB - PROCESS - 113 - 65 - 148 - - - - - - - Adobe PDF library 17.00 - - - - - - - - - - - - - - - - - - - - - - - - - -endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>/XObject<>>>/Thumb 51 0 R/TrimBox[0.0 0.0 522.915 500.0]/Type/Page/PieceInfo<>>> endobj 29 0 obj <>stream -H̗dIſߧ9?: *2и+ң¼Y]U0= ( UnFFFs"އw?OW߽G6yPkb5\*sF=Xq,sd'G1 8J ŢJnŅ!N6 ?x>jLB.-6i%bGr,u<5B/[e%i-\&Αr mKѾė-³jkuTc[_ǘ~݃#gjYBI-\CK{-6V_uBCϱ5%P5|R"?>bGo8s#fh,Jq6+iq-R:SLԉ=%Q*w0ȡbP֌-U!e 7q`[H6",9&[yjOHʼn =??޽ӧ~|CįO3y?wc9GX#ƿ /2gV9`!ZC?}m/;m!UM uo"oƾbMf9BO>d/P0=Q҉lᠳVyOpvPK\0ĥõ&|+vG_>7Ꚁ˱' -'k#j.$(iخ_@ cZcoZga'nqAwh8ciwNjbM߼vi"ѭ\ -7xk9vU .Ro$* f!Im`I-Aۉ&urEzD'JtI/6Uѵxx -@߽VQR^F_1\RҺ S(n QekMbJ5 {uRI$mvR.G)yB_E` ȌN4yȍ;=9⸍Kk2TF,*"gEA*dC,(S.m-QsW$CH-֤#(Q,ުLQTYSmɍLUp)M'ң\MjQNh+/_Bה M}LsSKך9nQMhaFQniA:g2Q/4d1Q8Z  hT5zE݈jb,Oy`Q%|& - *s+l۴(%OZImS%0M$u)rI t*f#ȣxRcJ߮r̒NZl"vA,"`m>Ƣ@?_O xK]`p} /+[%K^7%)'X EsIg#)PwzQNwU/xSARsh#IJl)OyFD乤;.VF&/Ö+VKCbHJr.n4׽=+Sf/W;+i1>IW?Rŵ]q'&Qiꯤ^M7?'.^%4|zp歃 -}pN 1Y ca1Q_huƀa&+O>c|ڭ# U7תk-"}^ڔSz'?I"CÒoxT&q550I kV^ 0 oBWً9'uFRKYT A٧B069,B5R;f>H5o/5ʕI^5܋G"JiĚv!LBh"%ʂ$ Q2.$-q쁿 ` -jmUAV`Rʉ4jCDiGkmךGGMq*ug @QBF],ԸD L!}ΓÄ rAjj&*@pr㶢E/E|p"EпwY=33լ{yy|@/Vk;2jQ ~8 чr(gmEh!G?ϧwt$2X;A -{J9fm~gIEuD?o/bںf:%{9jtJijW_y^~ym=EIU8MsD4Cr2u>qQxd)`Q1$`!&16.qHYFCp -(5y7 I[IǸ=I ̫2K`ܿkŹ aW<1G#. :%8s(~y\A>"ƈd$ =ΦT;Kĩ3g6SF$.GvܚC cPc?x1yΕqxJPL46h^j b7$K;JuΏaHIE4 d^٩E:žEsƣ\=!"RGcXa\XA\cp|@ -q V -bp1!\f eFqQ0զZRkhg+u:etRki@{V ]I~S<%1Gn%Q]38VtXx=ߔ̧uO=rzzx#FD>-KO:?}'ږ~~E 5!ۧ~33?H>4)O\@c߼?|l3v  N0$Uk`T p]ZƤIFR?PɍBΟNZޛ|oT$(=lX?]!W3\1'# %B30v1Ԛߦg K"BK7W#DLU˃y)B)qZȉȚ:m2'+Q lU)̶u6t2ZXMt`-ED]Fn\˫DvU|=H>PNeJIF \9/.n۳${Hb0փB%JkT)YKI{ROk#y7T9i@;>gDYHb`8-0K.?bK',#pF>ɐ3 `NPœz c/|rq*|R dYv,v2uZLp!4HtnUP 73 r;QTD6߈Lwp,B/"|E47&ԓ[J|G -;XFoƪu -MZ'IZ%r\o6Z@ܵMGQ-9g鄞 *l ư+WP9Ūi/F4[&Uhm'ͨ]q=O@u#RFී7{Sw?$rTftƂu34!r$Rp+94x(d)Kz cq%#SW}p`Vݣk4Go -zlJv9 Mla -,2it`6#3x~OZ BUq懒$/Gl&Aɒ2EDX4{N-j j !&\j@K6 *͓UgeC"ҧ ?BqN_[4(dz=j}A TnjD΄|(ТA(ؒݎS$Bu,,"I/uܾoׇYs8KM"=FXI~8:Z>܇%f!X2gH:\G sMfl(OnIg[OUqCr.\]"QsϕY[X(ʋ m#RA@4EoX먾)a/ io׍5Q%jN!جK*pyp,- 5ms Gj+bn ? @y>Υ'GaD&t*"[ VcY͐Jd&kkv r]ٍ0G~+4Hۥ$B(GqLFYR+ģ}8M,uN~_dy D4 -g_ZBRͷ7e kXד̷FXY.g9X3AT(+dz -P_3jMp/fM^7]-Y^xb{9@IA5+0W"IC9~` fM^7&G&/ɑ2>T4 JV ؽ-&KBVO= =҄' TaumM7mY Rͨ7=KWkG:̾drt0&sM~!I`_b>`bU꨸S|h>-zMJ1xהF4do;$xf,uJ)E,ƈ0t"`ib6wiV=>O)~}J* -5VcV3Ҳ:n-07& 7n@]9 @ J_P5 pzSϤTv/FQ|A`[1_]AiȐ &_#CHᤩӮ;vlpB!HZ܌n@!27#Lg4֓Ȇ欲\.t{Bmz>kրHT(/{T`UgKQ}О4A H9*>:"m{81pq{[n8S -endstream endobj 30 0 obj <> endobj 51 0 obj <>stream -8;Z\74*KX<%(qNLB05>tFL=`0>U#_3jq+[n\X"kPgR&F#)/:_]3XZ#I7uf,^H#L*YpEH9BS -%6=1O7)+WUIKU$L9+1amOT0ohfmrD'YHEgDUXp%KE1sTV6,E=)4hog.9Dt@Z,6KpK -I"&\kF&#lJli2p$*>CFRa?SQ43g@4R+'"6WRf[Or*-]GQnLL(bH?pnRQF$pRmB\D: -T*C^7d$"Ij?W[;-L9:O'X;5Z*L&EuaiJ\hKZG7(16A>VRelqJPdhmNOLPbsi]so:s -,@ad`i2bLojZp-XhY- -I?dgOKFgnI""2@4==I@2U&!QI4[Y\`b-gG2-+H:JW.`Ge$s8"1QP`#>&/+skCDI)< ->S%>q4X5]fjr==4nW-h@(>GpRe2Tl.&67*_Xc@BY"<7Pm;D$OFo^6`8&-Ku2Ytck4 -4G/^t6a7E77>lu0%T8988E$#DZJ62:^G1)A1V6C,^q]sEWf/JkAOf'm)7"atJ"pUL -.t1Y3JFuY'TWXGl>uLRW@>*:^$lX])cOmdnT[e!6Snq\4E2!Ur*!+l-,8#S/5jOq1 -%\pZUGPIXOGc>"smmFOOm=%hem.]7?gU.`Hc[&,?NW:%$*<)V[#jPe<`jWB7Jq,%Y -klTH6U8T@W-c#eiOs>]CGiuc7(CcT2dp_*Mju"2i+q-;$jc@E-<"u -lDjTP\L1$+a?%[pY(S]5KLPrC3abr.Hgd"YqgE4J'SAWq.jriY;=aJVGIZk]((Mp_I..)igYNad/:Lhlp8.*;gcsCXf0968!<<'!!!*'! -!ruZqNk,~> -endstream endobj 9 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <>stream -%!PS-Adobe-3.0 -%%Creator: Adobe Illustrator(R) 24.0 -%%AI8_CreatorVersion: 28.4.0 -%%For: (Giuseppe Scorrano) () -%%Title: (5116390.ai) -%%CreationDate: 9/4/2024 4:42 PM -%%Canvassize: 16383 -%%BoundingBox: 126 -461 640 -46 -%%HiResBoundingBox: 126.244468968476 -460.438810326981 639.416883846971 -46.3261229680847 -%%DocumentProcessColors: Cyan Magenta Yellow Black -%AI5_FileFormat 14.0 -%AI12_BuildNumber: 82 -%AI3_ColorUsage: Color -%AI7_ImageSettings: 0 -%%RGBProcessColor: 0 0 0 ([Registration]) -%AI3_Cropmarks: 125 -500 647.915343915343 0 -%AI3_TemplateBox: 375.5 -250.5 375.5 -250.5 -%AI3_TileBox: -9.54232804232834 -556 782.457671957673 56 -%AI3_DocumentPreview: None -%AI5_ArtSize: 14400 14400 -%AI5_RulerUnits: 6 -%AI24_LargeCanvasScale: 1 -%AI9_ColorModel: 1 -%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 -%AI5_TargetResolution: 800 -%AI5_NumLayers: 2 -%AI17_Begin_Content_if_version_gt:24 4 -%AI10_OpenToVie: -96 -18.3968253968251 1.89 0 8145.39682539683 8212.04232804233 1616 940 18 0 0 1966 87 0 0 0 1 1 0 1 1 0 1 -%AI17_Alternate_Content -%AI9_OpenToView: -96 -18.3968253968251 1.89 1616 940 18 0 0 1966 87 0 0 0 1 1 0 1 1 0 1 -%AI17_End_Versioned_Content -%AI5_OpenViewLayers: 77 -%AI17_Begin_Content_if_version_gt:24 4 -%AI17_Alternate_Content -%AI17_End_Versioned_Content -%%PageOrigin:69 -646 -%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 -%AI9_Flatten: 1 -%AI12_CMSettings: 00.MS -%%EndComments - -endstream endobj 13 0 obj <>stream -%AI24_ZStandard_Data(/XD^~ -/f6JC!8qCny9ۛ!yeo:_QH1 ? -= ˲XŲ,Ea_nHb -D_04dq 0ǢPd5V&G8E0h86YĊR*rI -{Aeۮb* !% 8І(Kf"\HmOD)rٝ* efe'%2C&>!cMjmٚyl jڑdWNL;d _R/SvtQO(T[vzF׽*61,*bq(dS0E7SJdG$ƁɓKơP%5sQ$HG^Ƒǣğq&ZТPPZZD3U*hAe05BUe0! -" $TrEZ+uY(mbA]q!rDR]$I%Nq!&" -)q F0_gMczlͯ|4N{{]O*C-\1c31!f -DKUԻ#m_5*giYB(!Ђl͗V'VⅩ\UVW/,MJ)E-(2ҌCm Sq(ƁbE]T*V \B,-b1eQdY\nNRHY%ALXd(Y8b/TJ"b;CC8DgeJfhfeQX7Wٗq,rXZf&T e-JX3+#I^ВP紥DaH(*H|r8X HYD e@]qz)DU555Lբbh$\|Qqͧ/\FHҬCQJ%ZYQ- >k!)Rq@0!0tÄ -P'ҷ}-0+!cy ktϧ=A,2RkkF3|Q0lKۭyوK.T:_/OoSruȓ+W|B#b"(e´HH"J)uJ* -E(*R+NaRXa)BQDAURASL) -)dII &`K,!cA"@,8($6PH40 - ݠ!SZ#]!czx32dL }*T;d 1,M(s<DDABC m" ѐC&TXNTxЀ  xp3<,"D(`m"hx`@A <2PpxDCQ0!z霶iz.?z=c/ڭѦO-O);6e:gR_YѫK{FWiR}Q6 UtԻF[4cQ=yT͸zM";zVU*}y֦tx%:7W<9A/^M>2IW!۵[qѪ2ҿGF=*fڍoMfKfk{:2Fu[]zk:V=j!RӺg2kk?*31"ɺyݦV%1KZj{g;weLX7͵m>7>c+E%<.^?We\\a)2E%<雳R딕No_GY)QϩnYw f׉E;C}KզP*앬PNwkR--z.ctM/\ڸHAIu},(ZV^1H,ޗBҕV.s\uk x8q@C 0$H<`"" #Dńq@$ A`pD0d -ـ! $`bAЀl@1=#M3?ӵr}lo2m0pxD`⪮7t2/)\yZܺJ3SdRYUId.*Yl1],E -#5'B10`A 3Rs[xo۝jiKd+.,TrZSr:14ǣK7˗e=d|g>4*;4L5.qbLHýL iȢlaG$Q -XYEêHhPR)SRbG-`Gz*ɬ/VIhC͌BkH* u!'q뎩$ -RDž\vEEO08EQ6aOa@N_\V(hYXsBq/ Ųwft,K9q1}ev*I}}h{StZKt̽]d1by&Ƒ(\vE+7;.(6Y<^^$NƑ(B@U b -ȖEIVH"AyAHI-J Ʊzߗ'W+wV1+OdZUu(qU*7 iegufѢ VXxUHPT]!L2]*pI2KRh8@Ev<.(ŠbEEBŋB8+6t_2(G_OZtْ)MvfG S͓Vd}QhuZk3>kSּ[Wݩ6[**c뤼,SL᝵w!WovnxަoR&\լDugXS%^UޚG馋z ޞM*[X..]vDޚ -O_U9:.::K]5XdߺsګkE;6ݭ/tP]x_C³;}oet<}5kfy3H?m,,'-d{wpiѩz:g}CS򝊸tnCJC:g1oQʃNNwT='鿪+2ڌ*]f^g2ŭ=yGB$ɋz~Z}OJtꮥDec׻}On%;+V,#+*\1YST{w*KӽB_g'dt5ş{ZG{n띛1{~QE=5ۣ#bv}μm&hعDCe^L9;3j24CilpOARYR;PO\g&}T؛V\h ٧̼9yW13VTz)4NNݨ^-YC::cҲk5:[0;A2`By &HDT qpAbA XA"BC&"`Đ^sVYGAB֤4E.TR;hK/b90Z);HZ9h+ -mo:o#:Ds c۵5QS'=[߁;%Yqw)mO:02/ CBblw֌d~hCH}tȁvDI4͓Y?ta;2UmYPO$_nUٜѦr&-4y[I=g<ѳѥZr*H5XݦLx7{Yy?U6U3L3 < wiśqS}~+3ϡϊҾ .MwҢC,if=Zf?;;he>"=ގjC::.;p24xo.V[xBD:ƒ1x(yGrN)y~,Ͳgs|=xU#NZY]njwWֶ~aU -]U&-+Tc]թ_嫥+*O0P0tz|Jc:7\&+sxzx\L:;uYxmsXxwU{z#ڳY{/:uR⮍d:TóStQʸyjf%*Z}J=eӮ;˻T.S-%-n}L># -e]M)7٣K³G7զ}w&яs|LU'3kOn+qNV!m4Jz^4\ζ3./ ?4oZ ܳTfyo*.Z6=<>ͼϸu)KvZbNFۥzMW:o -תgu4Ze1+S*;[GĢ[*խyOGVU-U-9o殟oiLK:j|o/ٝ|NR4j[ghT̥[RED-uWLW!7,z&ܼnT4fO՞i-Zum]Һj#-ޒ\cTDw%n]FEzUtG|owwyt,[ˊ|=DV/miF}\:WBCX{E-niׯVr]MVի]LѕuoUiwխvvYݤVJG* BC x@ArJǴ{tLV*Z[6<=]sN9YfQ:roS*.=YKOՖ|ViS}%T53;IDHxK:- hYnoNe{ռ2#2=B[=nZ%JIkˈ_ڗZ^\$y蔝4wlt]z3Sv2 zB;-=gDBHM=WdoiX&S]LEۛ[׮iU:pv+q/+ -yveY6Z婞ΌKEuR<$[)Ѵ*YgZј kesG{eKr* 3s)Z8ᄩ?Q28wA@ TQ~橽SSS{Jjv^G-'}Uoł@WܺSkĺ[CwT4 !E5QmޝKeIJP~\:iqʬlg[4XTR,%=E',ՃFѵkH>ˉ[Zgx6gDt2[;ZT06ZR7OhmK~u,Q.Mv  3Ze1 BT&AS0   }b~jBpH.FCtSD@f#B$`|BLbי-DZ #/Oj_@ ڒCnMoˏd~ ic&~Ծ-)? -EhoZ E<2:SNdaJ~MeRݍiLCc.FKާn] -~AG];Tם΍1 tq[ RQFsSRA,<ɔ GBSŏMI5y)`.@JYHU`#DFKeeJ> 2乶*煛W3Me?~gg2$)"9Uc;u2{`#Wղ"=nJ0tHbGߑA>[s=*ڦK6v\XnQƢQuB|VBeDyV! 9#A5z*YzcCSI bD\[:/V?/MX_AVz)Hw7ڲn>!ǐv}M)_‹̽"B#t*11Xxj?Ηs -rNA -KpUuQefQۍ/e? -{-(.za98 FLp4:mWXdn0\|"¯UY 5pC\Z'I%SQGJ9#J )YgI1i$7J*@]$URRe,~T%Ze -Da o3 Q|l2pʞ ތ -\iKjfБMq -SsrpTy-G N'h -ZXm(VqT,ȣTZ>t1_ֽͰW㮔=]{8\K1E˃IXAgafcu:I9̸ekmD3GV-S5 -Xn]@iQƙi(dYlSDYqqY9<5R*udd0?EM7)*riE$ȩDBJeI G3O Ia('= cx\Yce8դ6!v- je -A YDTJ[/M8An15xuBrpQuw]GR6(.A$ Р`W)(]HE` ϊ>lBbmCѬy'4|l&TXbP]%E! ЎpAʠ~8|>H=aVqwB: e`0p1/>\qvd2$mN5zб > ٩Mlq\ nWЧ!h #hrg.Tk#B2T=D5rUM gMeE5=>uTl›w.ٽW'GV8s/vo`3PRwQh\@rCwUT({)ziM%\ -VO{S)(?a UKjQ :"E(R=GwjA ;D"NósF (D8lX]&+ 8惕E1  kTP>ulVv5y޼'ZE >kڙu-[sF.ZyWe^JZżAoÄTkjI Z0v(a☟nm0wd%.Frnt㯪$^!^Di. =s\խ6k=Hgѝ"dٓ*L<*"ͼTS *D$KMƎEze9@9+JI)oܶxRKcyIkWZCڅ:.G:I4׶}wx 6?6ow[m~ikw5Y&,eC3n,7,soEXY4oSEa8eb%yVq pnvܜη/jEHv&d+L AZBl]l;m.o'JDJ}GR.'a.x$?>e = yߠz}(B~9Bk6#F⠅まRܔ+"= NWc31x>PTE\gP!}\#ǜ -q,Kі'n6ycz"թ,NSz;M@N1+)Lp3ާGPȞ)`3nwY\*17 `a{޶F |]*sʕ.- u+^rq;9ͩ ;OۥE$[;j^dliDFQgKC˝7Hm~G{vA/`aMB-&V܌5ғ>-z$Z^u>?:\ݙ2Y̻ᤲ*{[H&]E8Fn_Vztj$hzfѪ?^!R_瘑P6{`kYȲ*sIjƴxkd6 *5Ǥ3>!x37;vD¼̸]r K4NiY3i<=vggީ<ڟSfc#YIY2[] Z#=Π$ѻLt`FArGTh%3N|g|;@o?jOH(ƃ8s0/ݮyW-tT`5k?8ϭ/(6oce"4P[Ԑw%U" -|h0$^6ez֏SHTLziyv'_IZ`%V, )\͕!Co6_E\\4/fKHG7xI*h±I+\T9Q`.βpn"@EgӛXEϘEUwuz@k ME͗FIEv.>j5TQ\V&a&:=(tQ!(:lxC~b F7w~~6 C8,{/J w~{_l$g*7ohX[rkLhz&ڨgpհ&N#A_NR?so/l-s]IAv}>[pBǧ",w{>Pw?|)S_M+Xlj5~=nA7~Y [ zw1ހBj]~8oxGܮsG)kGꠃc2 -5^f09yCq5ⅻ=]㊐3G׸i~pj\¨#uQZxL]FREeܮ%i\GXPoe5.ڳi5;i.o6W#Uoy(!gcVFٸ6lDQ6g#0}>8c岜z6Ɵn8Hj1M9Z4N0Z fE훿Ci0zeO*jDFtJ^*ue!#qeuL!ВpSyPxA[(.]*$Jkjv} HUH]&g>IcFF\ɥҽ!lDM;l"D LvY%tapqs b+b, -MĨ_13\w׭(eu{ՈW(|/\' -ޜB|d6#;cw2楗T:ϛo@5jcg 1l͵]=3YO6G pJTtJ:T Νpץ_&BCHBu8~x3f&bx)SטZeI9o+/e뼂-Uo6(pW3DTS- {(U2)?Y e@l3(4tZl.$\S]n촯WFz -P Zur&#g4NpQ|@2bsHa^Q|=YC}a(O< ӯ-H#HJFCdOnඳ_LjkmNº B3L>YS1𠖭㒮(d̄8Ev aG~b1p^*%Ü Kb;_+Z/c䖦pwIDE[d {4+뽋SP|JcS`:4)0:n <݃drXU#J1zf40JJ ! (r?'hǪ55oFӓ0C(rr%"n('w->+E:Jj^ }m5P500ppYz g (aAR "?|8A;l:KJa'^G.@hB]nm~ʈMVbpqVe.f̱ 2u!*Ai@c;3- z"6;& -qezB6][Z(CrAosya'dg:iH/}<ЯHQsf5h۽J%>ױ, -LjBU3CGDᠰ[vc(mFj,0gl#Ptiá ,Sv-O`݊Z -`5Ti=rX񈙭"$˞}JAҟS/lrX2Y,ĹP_vF/eà@Lf.F{&!hѹ 1nJ.O퉫.7- iJX $ Ơ#AQʐF됬mMtɟ/ o*y5G108{40Nu(@yyClB*sx<"o${勏aI|(Kvn|iT]WUrsQӇ?nTclcib%[HQH6a(B3r -$s>W,G7gwz4-$hɞ@]ڀ9lr -XlWTD˭X2[4x:b::eDEag/ľ._\a U?Ɔ'!lPBsHQa"ǡ&ϓ,L Yi V~m93NBT$D;^>8X[T[ \jqZ2,:|A}xC}_)~ 9 -9Ye ҁUXU0s^KӲڙ - 6a`'"ue9JP4Z0 S 5k<>D+mm!T/=V:1U/}r5y|\}CO~ '3q mÁ75$I,5Rs3o$HP;} -)_'0 &X%>s05A @v$PVɄ]DX\ۆ2WFgiXM1 lPѿj `V3fza$x2(-#eVA]7F^q%Mh8L67OFY-,Ia{]VauA:|ؔ;M2V, Qa. ?{#y^hp`&z -1˘1.+#0^O&H aIctktc] -Y -Op[%m 2Zm|VG ʁmv߷'t-K-JGE+eUôQ@\ȹFu(ckt7U\2TN[m*7'M!ۧ= =ՌԐZQ0NF[p2"lnD 3n!%0,R --̔h9t%jxV 퉻E2 qdV} @K*c'`<C^!5,*K< -0W -,<ζtfa+!譁F@^I./ ~Ja$ -d_"Ic/$a 3v{Ϯ`Fwj̩TiK/L .p$Qk8HZ} ]p}6SF3azPie\ )2M}Ciaa¬*Lýg!9%cNbAs'͈ ;]4..f=l#((4,&%<[ a?.8[EYZB`ݨ,޽s&%z%`*X5$ƶ[bP HیSAOr97ek7 J7[,Fr2:f}k%$ZS ȢPARh?R7cSpi?4_dۃHշ.Q$iU4T썃X{đ>K@(^tqS"jA"M"~9FZHb_[uD+M>&XFã#w0Y태fȵMcdާ21l9"F?%ؠNpJ>rxnR>"<v;ŰweA߂+\瓼 %y+s2v^5oඃvFS;r]ҫr dDi|.9Z\ʹ+b},NhÙoV5bBtL:Vt:['_N>.+swℏ&_NlGaEwJ)/-a}Hn 3mpDsY nF+± 衱v]c:n_l$ȄJkV -Wؚ bDqo*_+fn6&7$5 %1f{,șT-ÞloO-LqVk>:@X=zW$D||Εuy-Ʌ걡y%~Y xB~ʲ!z~A2jKoA)wqTALJ+S-+DnJ [^;rqS[TPg?jh-`WveY]P]~l՗caԢhUwyY/EJplX@?$}hݩgo{E,\r9N.Zc8оfpmpK'^d̳ȀZbGFl$oA^X6sn KADeC+B9|3/VjQeT!ׁBy"`"XQ& VTu1+(PRLk*kqG 7]RЀy8QCBؘ]?Պ`5*G:Mﰹa' lH3CJ?q^WUڱ@|Z;^ Y>E9G-G_r{XAe8LW0J1\ִhL@WɀiʀopIGHKC`rckmrH9VYFYlFWnB;jaN35UJ 11rt^ƧްieXFνtKV/+7V/#ub{s!Us\^#dx+[-O]:5DVkf*YRWԕ gndq$RWK/[1033C+^1H -or\Hk93{t:<]TMf?+Ԛ6k076 -e0H_FT|[ -ƶ߻6$ij F͋۬/%uTz0Eo'A -8;=FB81yL #zw3YoH.jê% -Rs Ozd_Mg`m[z)NAcE廒:'6fTN=/[db(GBi&uq -PdFbE ]0PuʬJꀽzIF4<ʚ3jN[ HScnŘiY]4:?ؔg`iULlQΈF8Szkmўa`%d& .[wgR׏o^ M+[B7amBwd?ʷ39|UAF(J:Kn-+CeKыGu:5b9̠1lSm#^&"'1^7¦2׃;_fu{'x^ax`ԕر$)  "2W؞,PLlnijn5Y~*9Z&9 ": 5# ;|csҽg((OD"c92sYQNdVK=g೺햢Iʺ ؎3GZ#uK&,!MnD雿ycM_BvH%Oհv•; Q -K;_!ũ4 6/<k:7,Y1́D2Fvd@׉/U%r]pW"?;n`M@98v:*y>Buzh(.]њhEz[.ḈxTLLuji)ujUEid,dp7 uPiqS-Ozǽ b}4U4qpɆNI 4Y陷F+\ܥrݠ)_1Հū To)1ܠTQN rB ^g67P+ -M3&2Q3jIg𖈰 -]΀mA2\CbcA,kYM'.=svOH~}:}ڳmEzG޺ ZR6eiFXg[҉˵ -SMT|v m4Ѡq2TEI$nd5VVu5)2;T `ܘRS/'\j).s>W)F.yLFBҥj-J R ~t#u)FOC=M̬9|Vؔ7ӿe_P0Fz*[S5~*TzaCY<)(;]tAԄz%tKy1*.u>ڼlo+jN+WE+7ER28v %5éx.nz0Cs9[ep7E{j6*:^Nkք8C-魮YR 7>~iN-9->$+XT\ -)HgBG_l7V -Ҝe%;@!>5?J՘#6Ϻ@WI(n4/v%e҃̽^7TT1~.bG:ZZPp\ 1De #zf#,2q>+ wXhf\޶3RycNr/= -Ʋ\O\|$Eb H=(ŒP_V!UX zɅs}c?pQ9^-9*q;qneIcO<r`fS -Ύg.9sG|e[NnT< tr169vͥ[.a *QqRF{VJ -LV\zA':_ܝJW4a؊cI2؝,']44~:먼ޑ|JEL )!pLi؟Jl!PǴ|VɾХk@gF -Ԉܖ^Ժ2&rl Z53tKVՊ4 Z^\nV3"3)f"2\hpJTǸe[S~9 -A93D >->Iz~?ƗD 954JifPC'1 P.a# 6S~x̬LM P"y;cqp%eE?jC'Kg׻.JQRrHݳ0z$Pv[bZ>AvCWZp/G`L? W(nLO|I+AUV#;.IY7eXߓ8azj$\* -qȴWlޚVpbr[K54NRDήD }jz3_߸[`e" q"݃aEB]n9(ֶ&|}z?Lxp|{i>*|ٙCqFG32ܥ $"2H;Փ]-:`C?p{ l - y*G$/KK"  Uis%*`W! d{r]K,zԇw~Nl/ CI]NL-Zd흘]^ԹO=.pr AX_ne'yž= yG:ѺƧ>⯌&\ qm3Km^l3s~ٸf€ -U쓏6BͿ@!9]vk>N .5[ * :֫jo+Ndkr/n,|%fYYƤ0e)o JLj׎kqI+Gp1=z(\Z =&.W8 [M tITpipxX*Vr~׺rD@1+u.>[[sdB7'] U#7Yj@em;eKGQST?M4hxnB s{+0 -sAi)v`fKi*7QB:p$.MV~VV^.Lodi/sRyYIaI6rʍUv_qVA%7NlUHE]S{SR"WԫQr[e7Hwe(y}Io#h - -\#LNWUeIQ11cK -V9+=| -xTu?HmM.|^c #}pn b^<ܦ,<zچaxHTu{-{$D=39Z|KK~`g&x 0ka4pEj.:Y,|n/{CqQ?ݵ+땲)K[a:tQGg߆P>:6^[{&1=&'UèI&NCo͹50݇t5 aP>'¾,%04B뇨!yDO(ӆ)ի -W^B=k/{q4n8%d5:E6؏\ ?zaiysLH*s[SW xVvW} ,Y -3{d?Iӈ~HQ$bc -?5P1T~%Hp Y:5-f =PApH"ߤ?ޤ0b-Wq2>j29%6rV4WJ(8|82+kTG=cxГ"'s"W@`F-*1#sPͬQ|f +BzhO;K% O+6J"u -!;^yn}߸h*PߠD."tQtro,IMryWWz7|4ݦn8]@ Ss+Y/B=4 ʹ#&cp>֮ZגB=Tp-`W U7Ӹ+ddGO840.fOIZXnNcnى7PԣJ i'80-eoJ -黊b 8EqOc]81_Қ/'`RK 2?>ޚމG3|i\" X$)g|S1'&8ԅt5சZMې|Z>TigZHj<[PjT9|nN{j PGiBlGR%Nyv-Kl Dn-2犄<ۯVja BNnSF-'jx`;ά21j5] }obMaN%$v\ ,:b [MCxrz%;+ 9?s=WtӇ8.$H01#@YdZ-@ ǥr@p^!Dq*(g@c(;dL )!Z[:w:X -!>!U. W+.cğنQ8\\G 5p3[ v 7v=ⵘ۴ߑAkې 8 -2oUS(2muBt[%P\z̦XF%[OYDVBhsU|) SOJ1M!lzbz2ɱ޲S%YI^-Y=5f|h4_RnPcMȨAʢ€-Lcm8(l1Dsȴ;$-L+eN+AYu=I6nn}d6]2}nh{ýARc2mWB٠GrE͹ic y,CC3V[MVa¦GrZMBZPo^*k",z'WdlGPcqk{$&I2\$cQ:zM@~®Y|F9/16u2HlGlk} Ho6?8.rOa컾6sA)3AxK$#cLjcӲq 2xZ@UّF8OK^d!5!Ev/NnQziln?o+gS10ÓesWilmT`rL1,2d8tu#J^(٦Ud!Mת!YU>a9UL+[=*LR`1#Uߤg%VBќ@QE XŀB%IOew`~~ YL/W^l)..vGDLU'#KW\rp~+] p~ۉ1)0J%4;yK nB.Y(YC?E8T~~@߀Lt^^Y &(,b,oLDiJ z<'t/1T"o'@wj%Q;˧Ea4mvlTB 0TF`헶H>iK$]C6vhx(иup17[0,[b$QF!vw0x-U1!`FI!2Լh|,5#FZ"fj>%V M>ňY 0?TTD~/S{Ro9;+ĜY,yq; P|y4+%8XdY*򽘯܅4lܰJ84Y1oNF'+(þA)bm -0͠s YLe0X8\S삕({C͔V~Du.rd&)fq FZzM! 9|o0Pu4nHv *#;8O| gă o`9[9*^M=.h= -_(U9cOLp.~[tA-c؉xc a R0XJ1H,D&KLHRv p*Zc@ -jianP«v/Q!p5k#'512 c9 @ %ÐRCr-R- A_ F{́&5@Q*nUg>}jPVÅ"]5ؤrTfi95_e" 0H(vĶ$ -uXSˆ< 6Rlvu1 YG%u¹OF8Sul`$3#DnL E\:xlCh6VPa2zh7ҕ@S wRo5LMkӦ9BEТ4ߒ"EkT9&~wSg=GT$ߣ4MK2p -ǣO^ -6C"i<(̕x>ޏ+%K< wBcT7n)4ݵ٤Z)(F.AgLR>jnrcMV+F@oݷ& H41ɮ8+O0Ïqboͳ -^`O}kTL2vaӄ3ߕ7QF"0V0QGZb{,t%OO s6fMRhP Ozdsa 웤ަ$]:N`AJn#VȦ|]rnQ1EP@jsPڍbUX.y|.yĚm5лZ(BAeQzHQĄh 2Tri54>ՉH[t)R+6 -J/Ay?Jlbg/\IL 4| -ISRrcj02fằq#k" C=QB wjNğ8t4>`p<mb1piƷ.`;6 :V rNjzݧu,7q]d8AªƲZŋضYyed!0EPē&P RF6Ht~7 a%ؗhO 9yC 3M-1 - -:2[2e%f͏L(i.TFYwO=JY=A=]2pC9&ZVs-1*pk4F0(<.ΥyMw>z02]}x0֣qhͤQ%7T0(WuޙI@P,qӟ #yٍG?$=caG]᥺ .ưQ zlo-t,XԇMAYGNPz~]UHs4W%T#xu[D]j;/ׇ1tv ti*CӡIϱ?@6w-v#BzG WR& uiBHIʔTÁ4)U[?#Ud$(~VUWU9pʌjyU*s0LˍOIf­!A(*WH ԩkPLq6$`!j&Re͇K"Ƽ%PM*%&{x6UQM2K9`E-|UjCVAQah%-ߐRAghW]Tq }ĉ0Ӎ3NJgO=!1N=WŸ[ŦW`dHOg\Uu &WڂB/xЄH.gEo)HQJRɐӤkr!ޛʬ3}hJ*QӄYrk$?mEr+!)$"\J ) hԇnʲU\h7>4΢1yѼU$(RK6fA#eXJ4"XUKkڂwu!'> zCYhZrgPZ߈Bd[ׁ?}:E+d.␅BLLBi ;5f[qQ 9D3=M"*di3<cH\pR\÷oBr -{,T˄1$)$f̄*!{1&s#bHF$N;ionȣB֕*M]"ҼZ4:+5Z]K*Ei%mh#(qB?F<&&2i˛Lx(1ϓī^W"KY:OO-r//i >L1z S &r`~ u.0_UZ* hYNGUyI9!%D -%^JY ^*֪2D$.L)o;FڌiXY*;lH*Jc81EYbJ^1.(lI"7]Җ΂ A < )$Ipr!r0y0S.reW73p<@Җb!Ok--5rOpACQÅL=dn( a|{B"r XZB0' Ai^:=İF+ҮZz$Ȯ RJh21*\Mpت1jS -FUܱR3y֪i`ڇKap;v o.vr|CW #ؓ{[]yg"HV$3N)fv3s<ùi\jkarDoiN65y"k -ػ/Pͼ~Wflꇽ 9g~*]Åy9&HD3g݁b3LfQO˚9E48FyB6_)Ȭb7&\N_(ypuP^1:H>ؔ\H(Ԍ}dv97yQDW Hw0Pj}Q'w`?´SeְKx64mr= W y b2 m]KKV/hnN8a1813ƤbvnzrODn"#Pgd*/n2afQD&Gr19LG 53WjWAlB6!Dz~Qp˼w*1La\&ƄV8՟_v BB!4ýBPz(E0L5QOFJ;VE"2/wx]B(d&#FFaG4HlseV -R̻Md!@ .P@ 0( #(Ap0p!N9Vh -唱XA^ -\IhC4mw _nPTR )Zt;ښ# Ai $*tx;> -gchciTÅѰtce>_1!;WzUL&{rr(CeWI\F+ 첟f?cKTI fEODHiSGk4$_,WXU> c3BXpP&LӾ@lm>Cca#֊s RyylXdC, f Cr HXdWP-85 DЄ#!<ŖЬTl"U.U Rr\oʩV%L#M|1PIhBr'fUgngsQy-53EOx**ffk3:s1|ɽN::bH4Wv# 陗)ƦHaih+;Ba,P^ۥJ73Zdv3%a-¹UH>}"jn{\i3y|ʝOaBfCR'hә{()S$w"ZtͫxyU+XbRa4D9aȴ1a#)DAKqӆsZZ% )JꢐoViT%55|$*Sӗ9;I75wnRj ZdRRQ^ *>Q'Rܯɡ|xB.iu8Jœ)[h,hܮP>p idq&JW;_QCs.GME -rI,j/ǔ|ē)^" zd!;fvn݋p:;&-}}#.O!J̓蘃濉&;`T3n5=)b/zxzGw@)-^t<(qWJpX2ؽ*Gv+B9*H74fn:K<v6L<9,Ţflce%-1#R.2F-;8)6{ȏ|scrxPR3ߑRĘ:C"hQ61= Eڇ=.Q(Bw([2b`9s)SQP:)G*`4؋IKɔ0ֵe%2}X -*8oު $ KK8%hxGSQ;c+"IV\L D+:>hᴲ0rP5Ƽ0N1Rb kE#w !o~z9v)|C"(zucVBE"QjP#In2KJ0(LErW‡Si.ppߐ$tHMCHTQX?H[3RZLIy4R-Qk0il24kUp"b{"KSԃh:vxy];3k/%\!=wvwzheRNa|05>M+|co癧U{ -9*k CDSTkIkr2;<6+۬jUgWWgd覎Tێ 2Z -51ځ[8tR'3Æjf:%DE6 -+([ḣ2&ʈ1,srJ5'HӠE_1mf+Tjͅ*(Y"qNRL2կ}_$ڡ:wtT Pu q>&.zrrM-b"|DD3c#T{Jn)IGJSwHԨZ,HBRx (ϻ:`(fa#A`6W ~ ߞ -Ea9P:9"(j*bFH AX Eecf=ACbŰ`TPЄ1bp$хiQ}Ekh KU#s5y9(S$w & r. -L}F*@^$"7C`C5p&r!Ӧ)!9ֵf -B#w;ijTGȠqa]E48 mCU"eHx|YZEA@jG,cƃ.hso"666>Q(j .q/yT&Am -YA;E`,h -đHѩ(P,%/HH)D'("XD2\:M/Ⱖ>ȋLɄn&Lx)@B|QzbL-AY-%OybU<PB`/ִ,HjsS`ř!B?U*#2Lb)kFW4ÒAD3U&J9tgC.CQih֚#""iba+_hdnlȨ~䦕cbV,p 1l\QLEl24݁|"$XZ! I<;(Qfy|zcj O(΀,%379 Mt|$'&j wI+UA \t`'y:ﰊ'Mn1*:؉VAղ'4+#g) De$t 70:-d}6#aR'aʢ 逊l˜a>\S6ӪV򠈞=tZa'-%{,̎㘥vi։’EM+6hklQQ?VI]QŲ*> TBWrghƴ RBQV F,9fG3(c ]K22ia^;().x?Jz -ES5^iXιX/0H'jFTǦEb$ -) - f ruE3& q:t?T⨅CTbDcJZj$VRd ˝]M*nPLA5‚ZJ?g6 g6go7RFO!6:Džy4B vxk^rku ^s,*?׸h}d,,2( oZSҼ_cFߺr~B 0^ V3,lmH &*_óJ&?@`Ha6W3ƨyÜ8[0Zٲɓ@U'EֽҗY9u,LFIS6L P7pwxW)׏BXa&g9:[v :\VQ[ GOiqJDS{ ,iӂ%cXLqqDIҁɪ(1Af`nSZ&wk#_[xk_#Y8r/]Q]SuO2^l&'d+m_[w7ݘp^gRqTMoвthڏll~/U;hɋˤl"g -?O ɖ LKtd"zTx v`V (N:XaDG}/duk`2,f&>xq`/D\^3o - ,#|8V0:a-! -@̗\9MO-1CA)3kM"c> -֠P1cuE"MvL>kdFb Ԗy H-yЫ;Ӑv#"~qCt(+Xljm P!PШpGD 1iekHhP>i bi.\tS {sCeF+tֽKccof+ʮRGx')C*Z' ^})ݷ :ݭWplu9!qr>P?Ud#2롬(>M/xLis!%LY@Z;+EpfLզxI)+{(1 ɯeu -4z$k5RPTJ\x⑖z-qY(,GF,҇f2<9ZQ BB{uB?KCL'`hT= ) 2[;ByߏmJKv)v_)8L>w , -/%ǙsOCC#><1(vP7#r.%Iüb^Wkt.6;$F'?6\;)mZa fxM# *zFB4l? -86U$]Z~0Mbe&`;dxl+0٣ڊ& .%ձi-B"jD^Bo5SLvnGgEùof|CN͖@Ȑ`L4*L34R$nЀQx)#.BlMq5&_q֩R3Wp7Q^snYp - aU0R#!@:a~ yP _4kW@Rʦhe+(*3%^#攮E$X+E,_t8qUD70hjD͉.?\^b\M"vx֦bv(&l89Ḱ$_{,w`I(|%[h\C$= jXrXW}n^`]a# -aq¬_é:KOגD_FlM,e4qHuS `cXkSeNU(C\H-X@ZP7xՆ ;D.%'41'T/;#b:cբr5&fcM}I -*s-/؃pN!C3DD%9AKF"/Cb -WF}ɐ)ܣ:8o.Yٱ >jRg5ЬQ㧖X5>q!OpGBW᠁z9]_ Nh5 "0%F_\y,L@" UA*bT^2&}h#]Zߡ%>s%tis a@ -MOhh*YGۯ@-5%./ sHO9/b'<#xϝ_ vKpCQRMJy}c\@,.eSQ;+l7YGEC8#E؂Fiq_ʪ.htN#4aĦe^,q\y"kNpfcN @(ґsZ$zV}Is]ID` P~ `3Z]i}JF%KO®޵5F>Et?NI(M"O8ŵ'$Ջ)ASu ${vpc\-á*rH~ҊGI -MӉAVֵ;z{L (^݁ :5/@yGN^/]F@RA˹pDlNqLdeFϸ2"(6A%9G"mҗk (k)Av? bxe~ʧMf*jƌ -`8[+|B{JɃ-BYL~[UR/'a TkQ`EnwG"o$f6eB0K%)AT<=|H.VMφ7 Ea4!Sea}. -9w4"wE-'/[PPO燷xCǰzt%Dω*=!zѠgfp/nE,m@_Ue*!8$/J2Râ&hb&&5/-&, i;x#zuaJ1-z$ -Uv;cȞUXlHNp7 q6 -]/G626Iyv`wZ-Mc8R̲?S! (-8:,)ǼMG!-9hlǿr.pP,c Iqe#ۿȧ1ɟܞw9dE$~.^0SeܖY !B(Wk%a6-4tZ7K9$8F"aH7k0eS9+NG'Z_~$_!K"6 -09LH<[poDQ A 8Nj:)ft٫>.6j !58XuȪIW2?ԋM=K>@ly[&Dȍy{%-ŧM;$2zepj6ȁP!uhqwkO,_?>[P޶NK2&y( |x]%ϑFSg*HM v%4jMRTp] e>ڬ'ک;aJ_.)|nc g/[KlHJ041)D\XjjHdAм +հ8)Z#@݁΍Lzr ̊ -Z S'nU'쇧@DJs|{Wb:Rt(8l7/bD,+n .1>v IZ`}Ryi;^y1_Gˈb'Pi~ayd -ԛGorA:!X&uVhyMaADObu4v<5+ -OiÖ#Te~_#+= NȌcُ% !(Y%+,}i0orp@6>pH*ďR}+Rn1<&j"M>ɯ{ eҸwD(QW"}LĤ -W&P7R!Y -׈Y ̉V"8 iQaWRu'e/ H@gJc#k=uPn)HNHҧI,IDVY7?y\cqJ1Z=cl0~0x?\훘 f"[8~+4K"q߈gV]. 8W}q"l@27 Vf!IG#ѷA/`3x'$9$S9xʠCl@f# TK8v==_1ȳie9'ޝN{|nĻ;IEe#غ:[]5?Vn&KS޲ԚrtaB}q(mK%V|ϟMb.C '71?Րrv@lN̳L/xzM+*c`CkjK,=e<#IC# - 93bcY죷%]DQ1nu3|_1p\ͮAt5,"UMN Ksb!]*Y42ޝ'<]i)ᕅc\=!ng=_gD" Qoƞjȕ8S#+Xhe"e$~|oO~:= -p[_.t#i$z5uV?j͎dULsʼP}j!o9PJ>CC[*x*A͝0d 'e&WuE{]@[@JhQgDF0ȄHA4];0=qV1iɀPxN5sIx]Ѣ%hd&l ַw?2T1uLCI5 6hQ{\C~5Vt!uF`y%h.$zfcW}ߕb_lxqH|kvx;A2*&VpmIq/3u ]q{;_fQK-l,!.dMW~# $z(Y=>/hbߴSj T+ernjO L4qA9?pe-M8/fJ(3c~WĪ\yiX% -F#ß Y5"ݾ']hͻ"-ӈ -mE%j:Rp3iF vzQ$3uA>٧5xh7ܕM s|P . D/?6u/ J:Sx -]a!h,EC0瀉K -JyK=>*<"|d$*u1e>N9RC -0(aXaXB{|4ÄZy -ގ;*leX9J$įewS ?ώ^0ft7 E\-lKE~g2w 'p9#7:cAǁRs]7x?%ZhY$J^5tڼ8Œ_`p 4G9#nٻMl˧mSVLp:D`JءK(v(EbS]u#I@%_}-. a+f ;97Q8dAFP0UkY-lgeT+O*?ҧ %'ҲԴ=-taaXg˷JPcaZ1K%5JowyQ 䐍MFz*Y|,*oMAME4h\IX.gd3k de0I ҽx$U2hKZeO!oerX/p`]HɌ>DJjl{P,[kl&yyr, ˹H;Q -d)LoD5; o+q$M[.`ipX3]DF =!/(87qif_+j-}~Anŝ;j W-SfcDT1Ϗ)Fa1HN} X*@!;7"Үe}}\ p0>Nğ‰.gB Z6_+宆aw;] [Si-GJ. -R@2W7S71Q$o#5 Oj,pBGZyvKǍw{Y 2+r4H-C fqJT lm жX` 1v DүRZ.޲{xWbO.N{7fw2saԫJx߲n!;x6slhaa`{$kI)"J;/`"{cwnhՕxs.P.=wdY$oE{܇d9?4?hA0mt4w^/2!u ְU#2Ò{_> ƾxrMC+63`|Qʌ"MprA|Nlۿ" -lR6dJޛFB"Z^0y-v/n]D/K/U5Cj&IY/+DSuUbF\&tZ'dXu(@RuьIO|1& 4m,pjpzJKjA6hT)RoڻxS]*B)ǖ``L%3ټB?iA+aN06S˓j\AQK -z6z$⿈J @XB L}LCRnddK;&3;}r,%OQ~EҡS}8x k}us5YzDe܁`VNk$}VgD"NOC^6 -O u'XZq2U'^\h31C|ّO Jo r.X6)qZfo0Pp0d9@scf\`Tʎ#)fjf8s{0/& -C/SA<;C 'a[:%HQLHRA f,OgJDVr~\)>hɗZ2@Qԯ -~ (0NJgqj^4AH sdރ% 0DCY*)-X EPv~eFj]S9l;Ԛݯ/WmA7wCfShX* lWfmll5zhY{|5 ZOf5\5Xv_6̀7zV?U}+WzvΒ,nF0νe5G; ?slf#"Mg]YM&yV5IVS%|+B2p":UӒLՔ?g`֥=37/H~z2}uXTڊ S'|uWE U䷶/w(h P q]\r ˕n1FχꈉL9ӸDFo,p?QK< o3 )m`*33̊!^A;a/d].p{xPk.$+>րs<΋8^M;OMAyESykC:mZ$n6 \G ]ig{@X,Sܜfu+fjՁW95UVL~&qvX$ #NuǀZt!pvn}ܙLq*WuY Ap -@Uqê!rn WP|Tyy7{X7G`|j/4kƨ -S y|J*;p'8yxr4_l6ɣK Cuwޙ]H nZ'.zrHb `hn3qt @wVJ+~%۱}j5P`~Z» <x.,nP'/z+ȭ}agk3n7c4Q?ugY$YV] -RuWq$`oI1(E!%$b6&%&唜envrԶvv fY`9XbMTDkb4U%C 9OJ /OF8mm 89:z2S7p)EFJr^!mf8ŀbe( -!c 4h,Zz1-pڔHj flb3Mx䳬݉H$up18d찇Ǩ %lP 63f:i -Ɠ`*`V=t)D+e|>'& <>IRZWK$A? -q ľq#dD#(A nVM2blЕܴ1gޚQ2^Wǯe8t7rUݕШHF,}ajuA&&#] N#QqÑLw@ls0% b -ḁQ{<)xD /<?ex{ -ay`2 BolZfAEh)΃JB >j'p#B <[secc£)aFD‹'4wM"ȕB - DTpzHgՃ\^1R 0Q+EBǿaʀJ‗S' Bu r% 8'mK;0qsHCe3`|. [OC7ep7DHꑈ; -deӀ '.< x?yskp&~P[#dXl)}"~Χ/Ufɣ> \F {B۔7&5] b:WJ7>j|`,AS^b4Jy3]HUA:RF?tUFG`K(Y]^¯vfA}U1j -Tn E l^gŤua'3It](cvG^ԔM*1S}n%Jh۸(},q:8\SՐ@tۊXQcf)R9E[x[G)y4{J!) -U@tgwE mmpM—~jCr/`g9[w0f&6[#3AѰ\F9eie)u#~ZGxL325lYcҍ 8e=c*#i~-m4bHp; n<6 -rgϰ(4jt`g/7#b oPv?_FLV)אBrf\P$$àjD=67L{\.Sb<&&!ѩ 0#,'[̈NS}1p2Z'1$  XTQq`=7YXf, } 63Daqq.kk -AI!P`S'7Tia;٘ J0>`i"q5 %P:}Rd|Lqzm\ᤪd IJI&^}=f),?{kl85EA -(ObjA%큵'ٯp_{o5}Ǒօ&?jVYtDY+eh]r`G͂p=@ೆSSc|6Yҧ7@ox@;?8O -$Z>Y f>j*Yp&8ؠZ{DY/ C6vֈ/5I۽Ɖ53M㞖dɞ̎t*)&;YQp@.qDJz2dlkHJ^[좡 @ Rz5*_Zi-l4TIp&XEFqswy'| - -pL p xLך<-+ɁFG*  ^$+ClʘU " - V;1& -ް*q/*@lT #GUn -P?ۄQ͘Ԗ?'"n'cz5(ط?鍥].aro ӊ6O@[ -`dѕ]ʰB2}"}qhv;cbF1ϔɔǍB"C!2M -qDT)'J"y,?|8,oaڟØLr`žwD*b3|ֺkExQ~= 2 }zt3emp1U'k+2iQM2dNpB{2ZI*蒯é.+kl=ͬK+"gtl7@Ȕ҅nv}sga>BѰ-Y- H'ڜIi2 $6ߡN)HDX᳘}ērֵzH_l2vߍ)"k8_Ugڛ7?JĸJӑB乼&|kx^YziS|1왂F_,SI۞6aMT=B(Z%%]={7(- nkLrÜD˹Nv1uN>JO5~qX-8i:5ov-pHVuW&}v+{:?y --6/ؑs.c _MUrU_`~N[yP7C"",w>ףTS6+]Zwlg% 3VEXsz߽U N2k:>&f*h|8mwI{[O{Eе -: _OX+[NNpfQmRiD_ɔ$[VJPܴ H>?D5)DɔO8F{2'7'ra7t9y51î׊jF5 [eEԳouI<̀ -(0?uKbmG2'O%PhLmA,_»X+džC*W ,G缻8*GK[Zn2Y)S4#؇dAt".,VLɻr" pܑ϶ٰɄ/Y,,ZtxZMo9J`H}{iϙ&l-51Μ?C=YPg檭N"H8@` u166UM.=s@dVYp1|@+F _աdҙas^Ro6+чtO ;L 0nu -*\cH'yḿEC(dvnit $AiXR Df:,LU(P95܎6*ܱSE#yՎG -_ڪ11јF'.7_ [=ȵ9g3#(0IjB0ۊ9 ̢>#:^|&T ZR.>G!$^i[e0^#H -o:\7| 5,~Ե{wrgEavXڀ$e)4n8s<:q*isb?nEv8I Cqz)TH~2 9G='p卑L*?27 -F8 %3Jp -  RA}`9m^ycBmjsŅrR{.)M9Uf|dҸɸ0ߚ"6EZF.$ڻ^/i;~ݔ - 2<ސ;APV_AJ c޹ cL P*$֑\B3p` u{mC_o+evGCx9!9m -3zy -k {Jyډ0 -5\$1%ߝNP]OJs jY Czx"4) \oN#kjSWKnV"zxБ升2֠ƳVaW{7;7p:F&5C,2g>AqJvW+NSYIW[ԹS>V|MYtTcsA6;Y2(uatWHVg -LȻV%o%58Rc'uQ,RCOG*=JaA:ZbLF;zi `UW8Oa,LnRZza,:vLdB4j8Vy{d);zJ|JS#A 9GG.|<V{4E1GqWIVnJ"‹UEa,HrL=wfs}.T[㍲qvQ TM \*[6{MzVMPZ+'UyOHSD Ck_CD }RE+\]\ - JUS|)*=\HCXěYGJ\cq S4fEhU-|g8q\<;l5bNb> 7ϝij h$MͣCps5[DSc]=B)@"H%\SÊDˡ[pe2|^Pptiud(HH=gtTi5'l S;B5'-9WݫS/5pt3HTuP˫Y҅f1HtW2M*E[<3i'""]c ,hiDm\ֈEط4m%n +UmUu/=T*S}VCcm uOnf_'v 8 m]$Z?PúYF%0/BrGG~* aFemDІԎ$ΒxڐU3e::$!A #vŸYB: eBѢoX۰פÆ+*Vq u(c-L߄1$ -;WC0‚1|nXczYA!X5]=-=! -C^ĝvX?y߉>}DLAI/@DX?oKI| R'/)nv0lbNg 7bT^H| O` 0qNz041iwcTX迌)dS}^E}!oDT_LY"y.O鬌o*!ҹ:br1ؚ*5Iݼܸ]9nDY?ōul7K1w:SJƷ 7Bҝ ݨc.oG1 0+W]g -M#8 -k"txң8jW :J%-cn+* SDu7TZF6FhIhdhˍF)nbFhٯ3TtFu}3&<2w;װDnѮHE#%Gj9oKU1;Y]'ckf 7ނ-MAL1\ OM U\V''ƾ} xnnry2O.ɶHa -ڑ;\bPu:Ύ~s">$GA|u8؂U^gȅhhJޜͣ~=|tӇ O-'x:BzԵ.+%3[i -6ы"exaH+7IvB7yh,{߁XP̈nj{<Żk/DQy5Ӭ*R{Py'@Gxc/NF}Em̿0Omg{dp:=$bC5fڹ-4wnjb6}qO'tA?5Rk:HTVvKrJ;'%OՀ$(fd%_JHnrzr=!W D\1c tx5.Q{*:'q% $č(b6 -ݏ[]oյ5`Mhhn'EUq=?ʊh{ Z9|֕;#Xީ0#SFzs!zuլja pgbMiՑzіD9;HF-Ȉ -P TV8{yGZdTMjw`_"yu: Y=IIykEj82m/L;c*iϒL뺿Q~okݑ,kJJ 7uN&vu`~}#o{\ϰ)^:t4OT\`c#|VC>iYhON!Q -?Bj.֍)>QĀVǕO co\??w"IՋAsB%* `vгNu,Ls',hD{ j/\Vzg@%*Jޕ RrUq-uCh|"$? wSq,qvdFJ(ǸOjϐvgҎkȧ4E):G j&ayK>EDׂ?3 Xh8߾"},zOdz>y*0*P}Z0~8. -.txW[˜jPf/b7Kc&q_oſ`³CO" į}\"3-l;EnKeewf6o3wiŻĎ6ʏ5yMDTd -mZ.+Ku#^ig`櫥=)[˘xG!iNSe9^@M!΍ղ\yF?ZV?jʮĦ? cz&٢X@U4 -}ŞFZj7UbHSm{=JX%XV1u'2!fjW$L `ݥ0J`@RəA{;(嶖 x-uFVqwjQ©l(Q)&3b (;V HQL2h9y\F2.Sͷ4)KˁUe -NF*%j)Af\Д($Aix G ;yD>@\=/ *v,xV4W7ZVxۯbt|+ɍqbT>dc2p4L? ^,P#9r~ÿhE -ՅRzntMjAgX`4hA=Q$3Ӏ2@|!T4HtH8poxZ>CjpGvqjb*!vO<̇bjatd뮈rˁ>Uxz5R MBBJZxe|ip.C+ SAY襢Ou $D[#qI KJ @R;KQW]ڭ"]kق8qæR=T/0lbJaulXE)YRguvc0`8}C]_'uOͮ=_vx/e"Vk)T t`w3^'?ռ5]oRDR#'3X1,0GbBY¨sn7 , 2/]ZKxKyDAr4žzoo!m4%MVBJ/F5\MꕾMp//IT[Bw.5y8)~{S-aw{o)ʥY뾼AN7v:*ۣ[:/n[**HR]T|NRyk$[yKIST KEFfD횧w=93  gx)@ ߽jH1b(8R['-k |!puD;VHg1ceBqFI]SbĩubY޵@{"A"Q݂,AxN3o`'h8(KC#ycom"fO&& -F_mh -U&"R-S.Y|y:Kb)iDawwN -TîTτKwRؿJclto/(RGxKedRcȚ{TӮ b  +~KÒdH›jҖg@J/8p, -ӏ;]lzv`wOd&.Zzݴ)M++3tW eFZ(j#-_5HpM! QbъYg7 +~S.>!tgQ >9['WR:DiRާ< qÈd?L؆-Iynik0އ}y'1Hjz6=e}$*$Lٚ\BecN>rTgdߟҪa}IHG"0H;v-2m⣗=M/4cU60M@p4_GX ^PCW|T40sNl3GKĭtbF&E[x#u*4^n2/ IQf%]gp)H2"n "Z b Dg鏊_8x:"?2I1 -+TV\(cEPA5 5p?2PHkʧ;-ŕv=ͼRe\B^RvLPP,.CdSν?j5>8_g < x>710ҟ휚۸aj@mE⽩Q6a{UGY!VӌċGVgzAMdain -޴l3բ PibPꙶs}Z?V2* ٷ- -<hIlD"π6jI]v-{H, *h -Vj!EWQ)Y#{o7e'me뾆l/r%Yafm%(y:zţs$<[t"!t紎*3r~Jr%|c[$+\ZuTc)-y|9@JT8ݟRnD1Ԭ>8:UԵ]h٨āMě,S4qt -vԩS?C|<9)s:`ISJH{N_Ԃ[,rT4|NsZN+gk0R^*ɩ bw,{밼#_4ɤxؔ{ɮt:WoSND:nzC|dlܤc|˸S3_&J/:zmt|M$>8 >Lj1bFӱ -endstream endobj 14 0 obj <>stream - Y>I\rA퐎kZrOoql1 L<7F)q8JemN)#8b}ic08艴17C&7JKDqduG0&$4 O9l<`6Fcn_}3Ѷ6qVZ،ۙF5c@ 7Ocgx?ǓCGIFbz  Dվ!UU!^ 91  8F_k &f+c! K9}a>Gї7 ۺ >X'^sz{90R80PYXgp#Zn(ؓRƍ\'!C:^T>}]lzzC-QJ:O5U(Wq*uwxj4>Rq;"<*Tb[|/7cp*bM1ѨK+0ͼ~Ύ2P=!V|B9tOC 9"OԂMN|~o(a*%|e:)/G$ Wb]!̏4Rol22PΓiJt D'AOtXĒmwmC&턇aVlׯ}"noı)𔾐RFtX5iyC^1' <I?G -_ՆHmR|bp̐*ȠciyCʼneYvϏe|L"{H1U 2hid0  H(@pDPX~qmZy* Vz`xe( f/m}u0 &ErIWB/BK61odt@Վʎy`C^j"iRMaWf\Q4Ɣ0ڐ)'rT(#VOMNJYlhAS+_\$#$T>އ<u3l$UR[& *Z -d🉒˳l(ᩎ沨<[<";+kBIMpD+|&C!~, +u\v4Eo"eyS%D>G:u (` iV,N< H乓I|H?&$gꏃ*j]UUq/Q[7K?3J2;X1dB}Xwr%b8<)1X*fd*(2OCrtO>`ZE"&"F^*ĎTm,.3;I)N7/XBg?}șP}󙑬pY\$f53[3QhFQ]Wb=DJ6{y2EY'&!:npUJkE>6:}l9{^!Q3ڬQ1ri?**Hj" -$9Lba0XDjVŊnSq{)EۈD,RXU ()?J(PÊ*ƎLP!U*ڜFtJ R'x( -czXմgj%Vln4A"\]ң)1>oCĂ^i'1i.ݡt +M,8$D )-0ɼ:zJh#ڪRkC^"֕{T> nƷk[ H54!ԖùuD`)߃=X>Ua=U[s<Ȭ>jf5A#MDKؓ+hR5õ5kVagmȹDRΎP:R+ZiHEKi  FASbDoa%AȒ:ՉFMd?!;ImO"ͅ{,2 -:9YD*N?"圓3/8EZk:-G޹ʺAY" Vͫ(Ϸc%4N$qYDkwb HTx73]#ZU*3v#$=SDKe&[(3DT4Э(5/n )[U!@t7":(RqXJ*bp1d$=*[փh t(M̩fS;;~3_E'8螴gF6B춏qmPm~+#Pq"ܸɋ;x3:m[bө)UlMUT%RŝH+>4"qF꣤؃bSOGAә!Sǩj;٫+[Z:K8 :hjI#ig;hKhKkcbRi傍 Gjdz:8a&,ND 'Ѻ?ZEKpdZ.Nvuy&ӆ=gҠ˕6eyKF;z'τn+K;իV[^CV3ћH!#GGLlF$B9) -rTU('#Jΐ-EcQ![MVt%՛QDATt_y:̲ -a^.NLA#VGaRl&/8B)ٝ!UlVAM5h=Û=R^1i1C(.NфHH]&q=S8ZQIՓ: !1\~x&ʡ`$"MR1 @g ?%mE{6z(Ҕ%t -hw篆KAND -F}K8!1bJypQG0X$6u쮍U*AsXi=ѾD2rL^E &ɴ0p?2)| I:WJuD\a:y{dq)n7XwW~S0:- -EEmr@GKi+SvYv4漥? s.L=F.ۜ;+vJ1/0d`  8S@:N!R1*@NKУ7~\um -T[.E48AY8%AM @U} LxPwc"ׂڀ>aimTd$MgoeBj3J^r XV-gߙAQڌk-(2V":bH;)2 \DEixt$2e*5PdKB=2@74'{vQ&!? 2\?5hD,;{hd6H>M))*`vl%$uPgx2}90 "`۰mc@4K)U \1x3pݭQ:cwߪoNѧ&0$[]6E2}5Я= ",4!uN#פ}+WhV)c_G9\l {YĀ|6f2PiT`k^}$$b$nf@|XF+(4V坯U=h]8ҘX$RBF(k -e6X 4RFC DCA[pP' /PmȒb9@1k?iK Y1`i<5k=@Plp&5@ٲ3@>ῂ f@h,w@ -;n .k&L#YTlq_J[;eU ɻ$c)BT"8@2XGy9>2>疥s[!e&sBR?@Hv}fFݨ2}Ļܲ4r3hA]{% ٞƐ $G{B{.?x0#B&̼l5 qoZeqNT )~J/=K3LsV!a66K`F;, (=隬r6 -8jQr.J1QT|hԼ͡h?I JC E ޲- h)W=Ai!c?˥ݕVv|2H?࿧J5^s|GJ\_gi6~j nC2 -RʲteH 'NʆJ[zK -YM!~#B5QFZ$>LZyʋ-e2 -L,|gC с&(,hw8Q-#~IC:+6 !%u4.4r=TQo CȥGgfNIcA,̴}?x%7KWk7`4D SÉ%K -5(d!`b?M *#^Q]`A|JGa4NF` -Nol6;&a9QlND: _[h㦎PR~3 wYvpQBhBPwWNHzk8qԬv\GbzBH֟)ŰꏱڟJ\?rv8}p%`ͿMʆu~8u_>=.R)2߱R( 22𿷱W _l2&H9}27 :X.~u! -B^oܖM7]mB:/:IB -"oc]Wژ=&7f~Cp$B!t׬$ً1]nˍ2I|h؁Q$;y?%&_=D1XD\ԫRqֲ 7 }7Yz߶@Kۅ|O^"ެ|Ϭ@>zVR5Aw{Yc,\,MO&B$&c.KxPXc%9{􄬿5UAF.:YoHfat\ -.eS- MADx:̀W=JuKO3͜-t-8ߴS:!Z?LMi*M -<+Zg C(CAg'>s7Om} LxKh=յ4 m,|z m.^dDHA\AWxd UJUEPW\Qäm4!*ܣ.=s1pq8eЍ;xTR/ S)X-2Z3FwڐA\GNgN>[4H(*״6Vܣe> L;P,kJ -]ChDv}ө^؈{ePHw%-o"ntgEC6`m?0Cَ ~u *orÀiAuIN L dZn#3T\ AnS˱3xCPc۰֪㖾 T_ wIז>.yaۯqq)3ѿ(Yҥl恸.Ln&`ҙUs*{IKgIP/z Rџu(͖}ŚLXoB՚4/)=2WֽtX8Eg0$Ԫ Ai.2S?مSŲjC? 8) - -`wSjΟ/` SQY[NYEPXooZmfRWv_}aL7MQĥbG6qU&daYc0ЂvY0 K1_BI;t.&!;*kLZp& "|Wpo57dP7B~wpv̝R{#mq!4Bc+ޔ㿕z_P > FE3$ F~8{? _?By/,G)uۅ ?8I虖hRYCj8vqʺؠ _pmSܛLEt?HLm3]s{#N -o#YZYvoɱo;d@4=z2ڇ8@Xfߌhr'Us?UivƜB 9{ޣWo,=t`GvB{9?8VM}mՐ5IQL!i+o@KQͯpSMЕUK$uwa=,A~M'Id)ASN ,QUQ*sk8eF 2|+)@UP*CUl Ew6??YF9B f<ˍjgg GSmhЈ'&7|, ߫YNL n˳x©,; X+#/ir09CLw}'E_?q?ƟIk=4(Яw!qAIz8;-I34gqR$?]L;Ml+TOe -ev8-w~aB_OGyrLhre8Smr%֫o>lT܏̯/u88 -˖RBz_ZG~#2`Wqf]> 0O {ZC"X~M[R`l1.Rnlc-"()<A@ȎۋK&9k#?i B\תNRu%Hl4{+g"_>H!_7(,= 3B~ rPE?(B5~v\~y35Ɍ 7m zo(=MuoK-wRuD7Qh>oO*~s Ј)6!c{z5b Ugғp& `'{DSОR|HMU|>_x>3tBf_; G -VjYjvɒ:GL N)Ccз_X" 8\jvh1_U\w8M>HKKhgE{v]9ZS 1Đ W ,n# ڏ̒/ bfGO2g' I”P ^ЋN^{hc +3=ς I -}R.-rBҲPT@U97!a#HL0@ɰ1*v*dFց{v;l̠H>y\v8` 5Tl{R׵v#Xf3e ]ٽn둭`Şݻ`]elADa6Z gR~V!(^2ȮzR t i%:}2OIt~'\~i}˯f ;.t_JT}#%xXHF b_?%"=&<;>}ڱ}C5@Vl֙{L=aI=wL8^~?Q ^, ŚGy=UP[Q&tOjf#LJevl!$Gto**(eP/!} xw܃ -CW -[$S21>Yt8&>[+2/kvݷnc@]r"#ʝbĚ7Ȫ}q`Q~[e#J 'GԖ?X{h@Cܻ}]Ud͢OxD?s*=f#0ڌş{Ҧt÷;vpgy~QɄݢ{ќG ٔ1{VeppVFe+m. 7S~F{mZ\8r/+k>-JTÔJJ0Z$ɸNbɐO#iHAܫBJkg`dx1 i)Os8cQUze\JYVeo^dv,K[ -x߄?\YiSߩKv}/O/Rl`d/Obp%~M O tW"9OGWO=9ϮBA)!YQP\W -]@'ˮdV+;L'A5cTYd-Γ+qƒ7e\rtNΓ2K>FvYl!qsL5ǃ\[T v -袧%F$ ;^I?Ofbޮ$4,\q:{xL-x'+i4|󀇄^ͥP,5M^Wb7THΡ[AѶKԓ-8B&l;r9;:IBy&HTQZ_vNe 4V[=J$2ҐqٔI}%pNB=̈́IJl -z O(4$|kh_yɖ2+Jm]>Lyl6,]*pTr4 -AyA|&Nv ,p`b |zNJ 'bky U0s.|ð؂J|S `+40t5t* dKC XO`Us=5ۗ=˴HZ8$tk=zS$uA[yh& gTBR%ހg!r|~&eu駉d|>RIL3 J}lm}.qccIMhWU_BK`>\/őӀ3KҀ" B~"C>~LDSK$`97?=+hS2|~HC?퓬O-k=k1amO:VoltT_9J AyrV1$5;˔3l΢YpOXc}!"t7yC]`Z fw r,Y S% R 7'/[Qq i b>jJ V*{ֽki,dFȠzk\ cfC"<b9&!'ˍMَi@RÕ/-RrkIB#i -65G376J&]O?.ByꦖZ EiIӭ-/ŻZElM>dS\;!kuj١瑱&|4x SOD8U9ݤzlzqeiN*.NZ%NGF] i -CUZAEJF'8Mp8V qhL81IR\ȗ*CpxEfRՏy_7L2t}pNEy\,3T;irI^fHމAH89b׍U3m'>RTn>9tm65H0ڬ!+-Ǻ"]/S'WGu,3}o2(to}O%:0T~_0t0ϩ8C) $U0p3hȱѝ\E<62~b(\2a[[bp WCC}Oi?ЛguIucdcovZ{Ck¢3l9DO%zqO<8N|Z?oJ.b⮼q enU7t -L%7Nd!"*I7Pqy">3lovM؏uw@BO7P6mx䴾Sf,&T-?.NnDq [a %bZgbr**WTMLCDR'aM9.!ec^kPHmQV$9$qoSʎ_8{{sw"sv b;6f_drsH8u~srr01}FI!̡/G~o̡X/FtT4W!5OUsGv93q!&tPLERV BQv59,áM'Xw@N9>?@,UfYޔp -Gfr$)Lp%-C'4醴\gk| rgUcBoϙ_Ce7a8Z3dSɤp91XXuh1Eab3V.'W^#½D&͑ -^85{,vIQx 8ʮq oYa)eQ[ vJŊ;v l{J" - ) 0! rT6k~ ڣ6*LsSٳQɅwTZCqz<4Lξ"@1@K:hzfktc֎GhyF*caERm_;С>"Yh32fd2Е*:'!dD]N7µ[ CĊ]j};4cmi;Y0_zc:hN.16wh@HjKCX{LAB3eHS4;P !WnI1?qRt/KP w avUCmP-,hIEV"bABt -JٵV>k -Y/+oO붦AdDZh6!KD7I,7N.}6,"(:ݗz]CzM&(Djy*E`-PtRT}NvFtלc^DtZ:qWnc+@ -C! *=)l  g~ x-%Y|tңF;w?:~&Xǚ{Q5j4!pT81PRiRQJCOK>'d*> _:+ -'CsR3C5.>O^Nskp:9C;Dsڔ=;dc߻W|tN`.)tLN SaܡV5zm -ҕ;u#+0:5.\*};AA<94"U#~@a [];tH#&_)o*TnhtbtN//%u@0U׸'yCحƤn wT8l;t{ţt`{wJF?jg.dsBEn_U4M8ܡNzOL򾜷C<[~HHj 4HvaP'+ؐPJ3v(Ή\oN8Tu+̲:'[74j2TCG 8j XS ̅JCMjXQc"Ԁ:'oaNXm^Aw[Ob.mҫ~B$|6u=JpcNi_B-j8^2ЏrvǖVA$Ƕ! 9ClN`ChEҢCu_7:dvthi:Iwo:@ZݜLlr {!C1pUXtH`w;CGO͉O?աݶRu@Mf㧂4F*UWdC2 }Sjp9]+C){ݤ;[wKF4;'LKnisʂ.@JVC)͙Cs8V5ł:Ħ%{!!I]2'uaRkUĘu0uHZ-@Zԡс ԡ) ̥Y ʝiSN`&ԡ7&%0TSTu6ur6\*˵]D ̦;T=y3KH U9f};ł݁){'?'1%[@Ss1+?mϕ2)bi/Qq\b˟B:)NV]~}8$g w@ڗѰ%45hT4r@>W1 -TQ|It'(}]A1Z ;iG~-"0 Hؑ`-{$T# UW^>?*qBN=-} )PR-14TT %s}"ZWXQRH)[0'!كF"r8$d2TȿQ*W%E{!a -F{\_cAh~ >$Uŝ>AW,iȣ -t# _GT4CJsK>: 8Pm, /IcAƒ˞;XUEci/;\ fT+q,O:R=1FI_J@kVjvRr<2NYN)[[QrtNr/rb<J[*_2h,U_m3&lÙx曄Щ>!A9p&Q:nWh0GL68]{A ;J85`oUpf#\`[0g!)姐a pbfHG^f2/2̇ZkaLe}_g˄>Z͍FpE4P<ǦY;3yթ0D#JaxD~.*62y͂pλ>2%0jkr|ud -Wy'oLJL9Y}L(ig&WAӒfB/㴡Jo×YL  Z*5:2@5u9\O$]C)OF8SGP2CjMnH2R&dަ2$1 (o#6THltJ ]=wNR80pI{8 2ͧ^* Mrdd-O7a erN-1Ćּu1;4:%;~[Kơ0i_NGLDi;]ͯÓ]g4ԕ\\QNvrqC8wVU│MG&`.s,Q1 -87;*1@%xiܰK'/HHjR'dة}6#/D޵[7gژ1CE? -v=\;m:>?ƧZ'+S8BQbJ{N4,P'":+zͭP~uOT:>A -@tYOorD/\:[ p}TEQ}ק+B>䙐XZ>UơEj E ٔjIL2(} jY8|#$bTJLkWh)-h! ~}'f{E1j K[Ov"ՏCŪnb$/~z8rX.8D/x#?˧_eӠ!SGL$]4V6Ce"TJ]6*?~Y!LWqS rI^)[{Q*ӧTcɧKO7R\)k\)=ItԘT, %?6ȵsGObaBt}-*{Y Խ稴L(OZf?EOIsTקT 2OgVTBOY#)+Kh-xXbGs:n&.CO3D$F7t!h9;OMձbJb7|(B L4 -ٯcOCM:Oxc22BQ#{J8>0_'~un)! -V"p@b#ػS*JBH `*feo(` NRn %WMlm(9f)P̞kADͳj:[pK:KT0ܹRU6H!~m6O:!DmRd +jr{(RO .S$QZ3#rbLWE$U!RV@$"]їDA~q ?HF؂ut*FDEYgYyaxoI½a'Q%ڄ<\6%oQMV5M.t@p$"'@Uqa<*VD؄-Tܱ6煪|G7ja5yUm2#6RRXސ8,('6lPo f:Ea)=yQr <-Zu|P@QID*I@HVv( `^Щ)>Ƈ -&Q6CD\ed>`N A\iE-Q{ԉb1EvhK7ULZ/@tȽ'|m8yANC?LT<5kxҙPm'`49V!Eavy'lȔbٔCvUEI`+N(V` &Et3\b7$ W#'Ða~לDCI1|n9y_bWJNpLcؿwb 1gAX,D4Pe5|7xa%ĵՙ`BcӰ)`;ML( 0f*L_*SbAJ12AdtUGez/S(W{ -q/1`)AJF3:iXbxy <B*~ Eu-zhձذS>7*95º!x֜~bkWEW>)5'BΖ&[Oug݂V -%?[ -_\r&N6LTTLʕ?*=Gy1k|2y`%azD*헐(/dxtcĪ|.V'?Hܰ!*Y -+4;fhskDRQ#W[=t7AQ\RSHnvlwSb%NSSrVfc"vZS⊑ sJ, -sCOzS.m5ﻥ3S %T MҟsO CIzDI<-3!@j#RZ[[q=EgPo8Z?u)S*zLQQR *tk<)m 槸RA>541Xj>B?DсE[ũktYNlO@U W:TrߖT)PAQD#iՋ|m+k0&*'@T_dOT4AG0%BTՊRU?oP?DV -+;ۡRne ܭ',-DVlF!UUOSUΚPjYij]?WNA!ržg'TJߐ(KP?+HK((h՜U%ѫ*G_uyɈH.+oY -؎R y{ mWQi/_թWe+ c0+ߩJ{v?25skU+jREri%hV'QT7Xr5;}pQ&jVSEStH]Iyj;yE#{Fb ; XWC*b,L䯻M1O%ϼd,+#O0EȺ<*$ 8Az . eQdmܵSU]YXr`v*BbaZO401N+}MY{RVеNHm&w YaAPYYt\(YicA):d߈F/ ṲJA̧cFWQX\ZD>a0>K^*K@oD}yWtvZ~h0[@Bٔ'cZ:X>QVةx^ap {U~'Jt:k"u>:uZO=L6XR)qǢE]XroX<9T=4=1ِDﱤg+LR ;W*_VZݍe`}\n +ceT@|1 r,j%Sg^)䛏W簰Q*|Xz8|%`9:|U>8LsJ RweR#dG4>gR~ͮC )B%B}JxkIeVp8m&?VwDmj1%,+6hA̕b8~>d)Y X |t/]1a#sK=gOp840"$gYEdM\ z8QG@4-Ny ot%e`%e3V ft\!9p;0#YJp ;7k;.J{B]4 ( \ˤu=j,%+5V PՁ, E{\%GI"!& --hL=ˡR)5c,%'j/E'N h$R|/.DB`TLMor.ny!y#v%dPJ[[(d]Ż=eJy|BFjF$+Q6AA,5TPjT(*fOwfH*<@@AeIRJP#7i6Yΐ Y읹!Bխa}J[߲ PD)_R¦ "Hl.d9u$$ 1yiÁZ>?I$K~lS3,8N/G7Ɋ[ LbeӃ#:'Y?^M*:YL{ P^bTrHd& wNV 7# -Ěo J9Ytg$s l;Ym{7,zVctRHcӇ)u@_ZϭbX vpHo˓UðϮ 5ܔjdw$/xTZ?sz*d|,:F}dx3TryAV~u7x/)!21Oe f{j*dy=dCʞQ,ZqK;Ybნ,-N4NS;vbZG,nh'!#.{&-H:Yxm3wz$XE'p9e'k)6JžD>K'1 -H[t _SLVpkH~&r9{j@}ɢ9$_?7Y -3M /roMDDM)2kdk}4YFT!ЙT+ՂReQdLZF)aQ'CYU8,My't&AY?F R›fi ]kGg$(BYbaK";u(++B,GlqndwQ(= aH&ɬڅ^$i5q5*aQ`PΣ,Q!R6|MRRcL(R[B@z4k'qch|:ecjCK:G>` ( >X^Y=t;'7 O"7L?˝,U QV&n5,SOQa%OQ=G}%Y5k>HYRTOs5Tz*iWeqʑGxCK6 s,g nGʢWNRQ֬,+Vu{d3_ʒ;*J3oe%+1E2ArdʢGQɺ0np+.Zwh`16{{+k}B(5&HE%VmZcP&3:4tYYd eقrpper3nd F ,+LThX!e tew%1I,˨6e Lad P -L!,kCf -&tuXVIz9X.o ˢˢd&3ج}h)11òodɾ@R,q6 ӨyQ/y:6,kDaYQD'yR&D_3&Erv9E=X -C$5Ʋq N=Ẅ́e ?[²jL-qA~dS`"M\`+k@ fME/&̤n]Y]Լ+VvQܮ\ i@\Yyh}dS--WF,òv :7),CZeaY¹ ]"4\A'eq%JoTC'YZ>je _@2A՗[U+mhBFt(@Ҷ,Z_=A H[K!ȶi1*afe(;˩ZZAߨ,ʋ+!A#PG(IkX _"oYOn~g@>,[>+,@-L\w&7\׆35h_.]`-k -:iP>u4]fS%Hˢ̂>L}8e`֎;uL* ̺1۫.~)Lv]d_W`C-A 0K+X =5 -1v+}0k\̷vŵ)}YPQ _$D܅)}evKute'Gf1CʫC,nuE`Vqr7ߵUJյ%5U?,kjwYx$ ;$8%]ɳ%̺gX/!S&3Yx'ZOkԓYtDGpdV4Ȭ8Bfyx0"LKµ,2@dƑ3%8Z\$-d?DY*V2XHFHx2pOŒKX+o^< - -oʬ2齂O$[`r@#DmU8eVSAy@6cTV*8GV5ukq3YM,c_!7-ɶdsy>7ޒ' Y~hOO2K-,!ֶ̂HfVB&rw4еcО3}7dKJLgV9bCWQؙCq*1}";bE]-Vg+HA -aU8mN12!']AANU+dy j;L"NwzHr!ά ʰ0ۙF `vWZlo@e=2 0h]3d3r"TQu$e844kuXC31T? -X|\Ϭ1k? 8c5 Y>2jDڙ6hgY9 %řT2aA}f0rȓQwf ?FhXN+Q]Y9RY 5Ϭ> I2-5/k,*FTBF|fD?2{_ͼ/bWġYK`CЕYUm14]Y"r&#!iF۝_W\_o7+iB-i~K*EsfKXLOXwaFjVME>,^8#~!ÄwZ[tj⤕фhԬq ,%HJb7I,ڿw,HbM+[JjV45K,xq4f1?zLQ47$/Yo{ &3?͚Q*“ ]1(!$' f?¾Ti*7<5kV*15fuɶ*?8/f!-k+e׳gj6ݡ~259k+e 2D5pi)+܊I?:Y @kVeWQ65 PtR&FԿfqZXپUѷli',$ǙMbQP`65K%%\VD$>jVQo)5 -/+;a#S EX?9f1O<+LW1T94fuͥfIZ$IX͒4v6B$zቈWͨY iXf ^=5K0$ {NEgdwe]f^Hy\zYV t+fD: "'O͒Ȝ/ӬK0A~)p;>e6Eati9lRMbQx]J#+jd_n9-VI&~1r:/YJLMsujPP_il - -T6K v{k %\W, _Ea6M"e|T< @Zp, Ġ6Ks5:2#LUnuX5߸ɰl֚+)ϳY]Q,L` ^UN,˼6Q,J<,S50_nXŒs -~2g amVC} pY AvYbY[+ep;oYA2 An`{6K+!v5+UYtXFʤS0}df$R\#U d0BlVX?dʃl٬ * -,},w,潘tW-GƨkN )7tE- $1!N\Z4; VY/9F,)0Y"`yR?7S-"+ᘔV~8 qmV%⏵[!I=fπ0 *bFLUAG@`x3 2PQuvH#Ȭq_Rը!m,B PJ1^pcCacuzU ͢e|Ք^'¡ *9L/JVц| -0µ&,ݻ(5 -UF1R0{,^", YUcYls_RԔ d@%ﶠYo>E9vU,]ێ"1o4KFrPaD@$C˨OY' -b|ѶLh 4 Bh/j (AYY.,"r>KcqP.F,BH#,#1Zft>M\q kگ`G}? -=7tDD^aEo${`vƙra'~O" iïsYb[߆9=Se@jO< !}fLƕ}Dh2~lYC^:J/HO"| -37)Fqmi4{94rj$#o1_6Ja= ӓFJ*N>WMgOKn;GQYCX:-PK175a&{3\H\Qѳn"Sj4D!ĉ ^ IrY Ǔ/vrٕه -S"ayA9dcXgYLۉpz>f0FNU‰l$R6t,YcfmUA_`&n>^-oD{hFzZUC4iFM`vk,qe$LҮH棴щM6xReD tu8dB|eN+;<6WY[`Svs<<pB:~j}Ƌ z f3n$XX)b -5xe1)Z!V島+uC܅ @C@)B@uĐ%&hI*oX)amIHe `ٛtv-!zʎrp(ur5 $ep_ZCrJT$̅p? MXM.rKH%ڱ7]xz v cr^i83#ʆ`J(_0`o+sO%ԭhDoQ6d)foif{J&նFXŠ9YR!7H).6X':r"=>VkN%'^YS[5H#U3EW@A }LZ>IvW|`mU&Q*+hkQ+29QbM4sdG5֯XYUͷTSӏ*>|7&?SI-~F߱+ۅX's Й$E}ZY%<2tri~8_zLuQ'1:*R+rW3u -P>ψA);K: = `G\ <%GGm}l$HXݾIWVa^fb*N2HL*U_eZ viFcȃ TB=E7?'PՒ.8 ,/-n0l#nIaMWy֝ Cގ7hƳ*C.-חF7yބZ\,Pm;8Oqgb8?ij/wI=@E|U#xMQa]M"X,ᅥ9@ze9ڜ#A'1^m/.v>53AN@\2& P qS;b|{(BnJ_SEAWP~ +^VeWapa`DI;AjCopE n_3q}ThJ+I24C ڸt% D{>m<EZdRg[:p,/T5=7#=_0r.kۄXEo+ *ߦV'yMb[J4DE3P& ±BdՇjzNYaJbŹMv9vaLޙz1`}[/P=w/KK;3kq -Hc1ӂW-ͪP3ȵP(ȺQcyy~61hgv Fd,AgAS_ZSS>mp1a3 {s C*A! +} f/9P4!0$R2p1HMæ+|`r -Yݗ{k Cm#eO<ʐwsQC_H#Ui^gzڽJkVV}$. s%] \8f}wt0M*smal*aq  IuB%5)/Jf9%z'F _ -a˖JRDAa ߁IDߒ_ ҖXr%c)BO92\$`M6s,D3b ,`/2+ANN]C,yXVƽcCnBxÑH6*GjD {6pY@] CqEd6 NQr9ĤGAY(l9X" KjM4\Ç*8O,XpK0!U&в@5pgQ%5$* #{F]*_ TrxJp!Z)a,%^bL:XOφ1scDbN aۓTm]# [FBa8}Fkú,7 8Tfė/œdvtrz~79e?VC,,={~NpYBG Z94N芔+t(++bU"Dg(!o~ شw -b`|'[zZo石<o(";*v ^bp)<V3qj]RGYЗ'i - rLOB= -CĚ@bTeq:d꫞"JJ)h)W+WgN \lRb6g|f)~۝%x@ fl8yMq;~uK*\zc24SHF3ewUL@ve1CsYdDϼ;~g橨ꊨrKAuW 咇w +wqGDABP%Q'*`)ޤr9ZA]tE -Evy)~ qC7yLݖ!$V) d َB߲}3J* -74Uq0[wyaOI7)ev̚ bIƼq-SI)~ȒEC>2{#,Mp~`YMK.ZAlQ(8QN?zw/F]|f/ 4_~HND Up(ӚLʕ1#7z۲ - (mtбb*nHGN9r;Pd/K:68 -+F N@4_;bj®3b]]HvɀJ4rv#C?)7?D?. 4S<57{&Nwͪ1i6o4d=wgwVV#ɤS,P@ߟJ)}1 ?rwoh5鵩tJ2 -&URo/62YuUU -Yi(GϾm 4(qu$+r|Rm-gqf,YO/=x59Ւ7ũ(*!R⛰SV9@IkYd)`SjMHT26D- pw\v7dž:-w9 gfh]O|qdK4!@!(? lѼwMa֜&NL=7{ $!,5 fg|b%RdDMdӰ8d+j|EW1lT-;(#,O!tbS܉Zjk.!& ,XgV\FMo)Fip5ر\ %0 (F\ciPEy#vAxF -˻?fuDgG PXl{ yOj|yDJeX8z!y%ۈå`LeS;~%3ݫ.tǝ%C4 sjЏ}n%<Ժdq>#_he& IJ,Zn:9pU -a0|uȄVE -;b,a*ѫz4͔dLp\=RX^r,RP(6SxK7}a+8X>H@)MFk!3Tttᄐh UAڙW{ -0I x0|Ի<pDy]tE9#A38( P -oFيEkLbF q#4C|w<1aS⋘؜9D"Ypj0$ -!?c` y܌Ǣ5 W$r4eZޣƪ ac hPR,B1J#-,%,ht.ٳg2ឈ/xTyaqw?=3meϣ0"tܡI_𘶢[4{Siݿ1kJX! yY13ɿCޱnxUA5N[f~y;3|tp^b([XSLs)ÖeXn&=Bڅ&XBzBJe O)C\B X[sJp``0X&` B`!@T @@3\$|cn]g?K,g(L.-"-LF~bAOt9 B{ZХl?F.p%i%G:ȥ~1`f:fNIi־ GoU}s"#ey:ᎯrGu4pЅM[/i Ӹ9] x/~}NsV<*Ә:.1[rX_-^žIAK)Qƃ&&{ ;UN{+gR}s -̡Pi$ݞͪxQiz[O+ʜFڇhNY]&4k<7Nn4fl]v9 ,l]Gzz* i N,~3Ef9qPC82L9i4@IiV@r:ZN").srJIC% 4]˅9 sC!f1T^JlYNQnnh!^[QrI6 KhP/X9;KMDtF|'kuN$X:\qpih#\ߜTю-rLeTM1n^:4;mB#Y/]L,#8[NgSIu'Q,F -Eq09w@|V .ᬻB(%At ^c Y`?iTmN-*❠9 \iz9 F6n8"=rcn%U2r&r34P\LGj3$ Gi hOd+UJ^L>-F` -jSa 6t6%T IOЇqfz)\s|U?dΟ66M13qRrHmRVkiEJBXZ=nӘ5IғӠeknDwU_ԏJ⽸$2 Va&= Ff -D9uW^mzbӗR]zM)` (nfaT[Paq^jR wlyJ"e]4SSalipq\'}U׫* Vvh2iă ňg.N(?L*4b^F5pv -uSSf;fllo1Lyb_p| ~ -i\k"JfD8 ]P5 o>x&p<'hhZcK)0 <4z?Ӱ\F6|̠Nnq"ctoU /5:df XKND-8"7.*90Ѐ^KwWFN} -V*4rײnh"HJ i9YqsPR]ٚf^it F[Yf[ X۟`r !5Q~A:qD^LNXgY? ݛY*j*rMh9!N4 \;WFUqr->L1:6q.$5)">/_q.ˎPAi %"| Ff9 񩉜Zr0oX `ʨà"KZЊ.q4؍9:hajUDBcʲ5TӘ:iG`0);Irq߉52WOW=c.9mpãQ[p8]'lM~^x^Y48 zօQH"\ȉ==@kcA5cth!v ҅ӊٶ4= -IbtKƦՊf]0[.b4IzU9f>_K(i<yi:\OD44thN'Eba0J62ۼDk Q ƪZ l&Db4@tM mDF0ia(mlze=(ǺlϸQٮ߳cӘ%cʭQM#¾! -WZd ż 1d~*E`y t]'\s|M#fc-tIcZOuNʦ啛n R ^67,mPp,雿/5OnxG <?enU6&f}",^ >@s-?.qmJˁ0bbU40Ĭ 8h"MCyBי(i`a/p7 hw΄MCÇ7HoLi<"%\,lJ8RK@]@sk<L`՟UiIgiL-̘!xi<:hM,8_5Zi Q -QAWGFS,&yTߥlJR !je -X9l@;XВYUc_8klQ!\ -K\40ժjY!n -,D3%Is8y|MCl+tYà1ih0'BÓAqt:T7e,\3\gYR.K3 t;Cub:#\.SuΨ(g~Qe.kQ -lB3p3Ze 1*׌"]3`ff -`e93.,afV6Q-qTc4 n3uf<ȗ />[ƻjq/+fȪB2P6iEw)c2[ad%E'c)(2bU2 ={ ]2Qp.MB2B6GFp},/2lȠCƂBEk_˪ A2PK -1)tzwlh1JLxB9f)GnD1B7eLm |YXcwhKs$׀ˋaGbv1]7HβK?Ѻyli#FCR _ΛZV]b8İeB # 6> w9 [ne@5 0d0XX¸<&6FFubs4m]6G2{FnapFe~)/a 9v1AGw˫F>/W gM"~Y{ 2Bheߛaʎױ`: U1cY13:64W5Rff4 7k7kah 3)g :Kapg" WeYX]>a|C-<< "Тx@#w~?N'`kG[ 3N6 }i^6^fSϼcml/ډ - _20 FE,~O0> unBM.a؊<0eB`x0`P6_/Z_4l/%@GHh_dV_,@y'&HeHE /~/-{h Důz!~Ǧ>/4^LStZwGE;muA$8|^7xQj Jw$MSw7.NlnegkXz]`h]@Ŭ !9 -bՅ R VYM\p5"s6;ͅ)(ŗ!D.Z mG٢fǸ0~pop":ʒl" [O\E.e[[܂lKqo ֳ--,ے͝l)U-", &wd9|b.:i(myٺa mE_3q6t-;[Z;$X-DP-dmMҢ(ii׉$ZNhP߳.Lwr(], 1 gsf˖|4l -yfBjlfѲ.ΨlYNZK6`Tj|KR4 iHEbYR٦bbNٌ>e!9" -bߕWɲ<-We!* EkKFa6e{d @B*&E\rEsm}_>VX|XX4% 'AɶڷÂ< }#&94ٞL6(iϛl[W*[&&?,ɀv 27,*7'D/0=]&X/[$V`6l ɖ.,ϾPXGkNȆ" 1,zܨ&˰PM6r^aexOa 8٨M6;٘R'杹a\fCaVGe-0Bf,#<.ghW?i[+>Am=qFDՆp 9|^eje6]j_ې^]}[{MN\(G4m[qBn -C喖kr-BvI+V[oVhtYngɊs-sz39 -7_Ew:o*V*Ne\ O*LF\W魛ޠN16R[\Qţ@nJS!f~o*-PK֨T(pYS*+l †˃ _Ow_TT -V**0!Ayd-`pn?19­NT)l q^ga<9b;@t7E˲)6Ħ8PS)0qmLP_ -ƏR@R-a)B\B8S%n8Aq'&7ԤeqjFR0F -23GШq%D -q}J>H2y;ԏq0= -V@rIlj\B1 -`>=Xߚ&֢0咭(&EAQ*)&䖋w\9=HՄ495(&h\V7rܭkZ^՜(2M]?Efb9QPbCDt6U' -& -U2tI6_1JW: t6N!WRv' -nD^txý$KJ2L˥Kr2]".F~􃨫rn?GuEbեT7Q ֫cEBD)@nC1qCqu,C!ե\(\S(4`]P48(`;PQP [:"'''#DR}7b%,[!x((h*uAd]|BXvNu\L: >Jmrr9>Q]+m l]^^]׺5/uu`GZ>)ӛd>!h^G;Mv'p:,KE}wx]w.[>|"%~O1'&:E?'^p 2V['^'ҝ'pJZWhDZe khr:HKBw ]x Ƈ6,5b(U=Uvv*)i>pT-ۜ':w,Lb<Ν,D;O,_w4-y"b?o=Q |ׇ;(qlߩ߱HxL Op@Oo/ pqCx }F X=O$lnFGW 5y?ވR( -6GGɟ'4HqQOC7 )]I .c#^K5}'b2LC ?݉D D'Ax>v"#Pv`DND5qW;lvěVī@wJIuBYt:`PΉ@[G:'P l KΉ?ΉPvKoNM%@'S2ڀ7qOVxD㡁4oBR {nBMF^6a&t!cz&(NyDfX^Dˋ&B0HV5&bWcHn^DPK M;/3y=2g"$JDLyWן˄O 3G$2`q -Sz S0L&l&@ q^]/ MQ7^sbCQ@%B%J .^D4-ap8K,Q$=b)^[JJrUVUbzJؒvTB*0rep&S"R)t@(z(+8A 쓸ݶ/$p`hIo$$̩*WJ9K~2+h$DʬLn"!HLkIhtHΗ rؑWB|ru|Uc 'VBзK3U7-G Zg@qkWa_ E_} f[ [f ~T R=݊.vh6?8 į]2.U_ PEW~g[ 2b.v_AG5.Ԙ,oB0"HCo/#;HnlZ `l+jRY r!VN- )Ka3@q6W ⊀-8cud0`icyEb \J[fL LX L,tiݳ)@q,"tdͼY -B6@37`T7 V9L C #Bi`8@Gpq[T hP"x3E~A#oWm*((<~~P#.dEGd@%ԇ~>@H0o>@. +r|Hȉ -| {CON=.eбAT^=,'L=8vzSp90+zW nrVyX*AyPbC"t<) -y(%Cx~ -x8prA@ղ/˻HEKXb8p;  -FRށ~tm;w`Tn` -if'd$;IϮ}ˋ:dnu:tA:*|G pW(Ga<=Aӡ SܷqZn(S9Tw*AʉCJ5%?ΡF9,)Frr G $XչnL&7I09I9〺qWAÒ`*<!{:p@`Q5X %l<* ` J\-=H wY%F0Sk nSH,Cd"V%F`de$ ʡh$au(qھK"}U SD?2!Zr89,k |Ct.D)$Xx]wV;h!$?T@PA$HRt  -\|PH-!6pHp!Ao} -\ꄄ3l0 $imG=7npAwtG[}m߰RϾa? }];"?#28ɨK -10O1( X±X E@+0mJz& -h $K30|C~Gz|T#xy=NyC! } S7G0rq9nP;TA*mL 2O!lU -ihsfqH~ GaȆ@?ll(5\N)P\kװ` v֐/5hCrk%ְ$r` ['_j5ϡl44G0MCdpEЕNEx4, C 4$ARF ڋ=/h8)a w$ȮP &N8V'Av]-fPf̠Ub̐&hfe^q| W2M2HddC >%C'bO"C!OAub)?,Mb=cP)}&xp h6%í^iI@[N$5D`a^`gP*e#F=[Rp8oN€}MT܇pd΅i[I {̑ni a[p*sA䁁R J(R>=?K /vzB}_j}a|N|X{_ _ЦO0/D h1w~jc-Om~|!,^`=y4 5+wֵ:nY'hn/PP*PsP4Bn9Z*{ t:tP-\Ppҽ - {~^H]}߽^{aMQ^y x4|Qv B&`&@ ӅĢ ]Qpx.5@dIZP&ʙ`3^& 2y+Gs a0v֏L=jAf*2R[G&P4`-[j_ՂZLp $Z6K&jjc0Ln !7e_ԡʄRʄ(8{ pAWq 傍=qA>o rd~2a_ Np,vUSK*\[0ĤSN%+>:1J!ɐ 鿶`[ 2sA@BHKi -{Ga sh8? G]""ec(p/k]:!=EP\BcA~ -yDJEKMAhՖLAK7_]~j+ Co aJ ^E2 C  aB0ߧ_0{B({2R !# J4&G^*;ŞJ vf 9 D,0,f[8lսTAF5/x>Xj\a} }|;(aPIN_Pod&z^[=(N(z((Hv`d>u:X:h @ڋ2Ht0t9X7>/f.,կTgI+:k%`Dqv҇,hw48U Кo706 .v/3n@66@j 6G50\5X5h!A_ ̤!5(n\(iQxAe -4x0?r`n1z !l 㖁3и2`A5/u2xS2PmB/Xd or94-wbP1xbpJ43à@! Fe0zrX 4`P  0tl=_=/J^P/ `:> 6~}^ {AIps|k0}/ !*`s$ mjV |A IG[ 0[3ot σJܫ>|^y H/X/^^4G |A$G0/`るy^`^} ܵ^PῑآP̤x=/\6 v:L.urH/"=$졅m HQq -ث jeWGt֐w[KFܻ 䂗~-F/z8!AV&߂-BfnJmAL_*6[pih*ZG N`-bIx.-ЂAd!@ YnS% NK&UU8mdd!$VJ,\]Ă[+%;wJX &Z X0)^(뮠'76ô*v( *^Bk}63P8ګyςb1e^?&%MDՂVI0ҠYz3R x/#Z /U~*%]Ԗ -f]fFJ׎gZ -Ğf@! -: pGޠ 3؜@])KJƢ:)]æկHND -B5q_R*ώ/?ߵe.MFRX=sUIx֑巻."9UL~@PQ,^U:kQh.b4x LR9wC o=A ӤJ' T@ ']  i h]b!\'P<2 o0s9'h Ê܂䍧ȱ;)0Bftү;>:r8Y37HLK - M– p{r:՘:%p[ *%#VGV+#<BגM65<(m,5Ɖ!N|WB7 yQ?9S{FWd@H#M+qi hs -hHF3 | m%hAy -1%r\Ƚh o|w!g*!)-|#…77IvB=1!mhgae1ShbŒc #h; ^pol`:\' E,` c lNCAmWH|SRMA$qKhh]/=)~x/~QҞSr**9S4 ٦ PqM] -+ن[-U>C<ܳ5uY':nzv[włkxR)mrXw ~yk}Wq? Vg.u6nlP_ {PFEb2lhNw\b+r [ɛvxlBt0Cȝurѿ##čS@LnZDc@sy0/>w<{2Z>Xg8i]xڌܳ -pZxPY$i8/5rex-_9s|զL3 'NE?: `̇ۀdKwM1wY=۟;$@R{xgGZaЋyo|As}RcZ5LR<A|e*,V -ɧ!h/M"Lv̠,6I-c2ٜ;m(_(n w%72a*)I̡ HS܁Sx rq(G Nn%ͨ;G;opإx2S%]Hvkp0lypѾvoW0E8tvoXv+oxAU_RT)@4Mpu$'KxTf -a - O-ہqV7mСN"b=cEq+Ln}㫂Ψ ݤՋOmCcړg qS59W<4A@K&ؿ۵̦ϡrU"6|h_It+.rh!5*zùF|C}S6YJNq:0 7:s:@A2zNrN"~tQ~BǂXV`fL-80S=[ -vs`sBmdh1B|wѬ G 6O$JsE][:0z[iMpV-JF,py0⭥ȕR P>BK7)f0ɜa:LZ TQ1|L҈ C7Ge -,6l"%/[r8Ӂ#LǛ9'&d -,j&?\t@VwD޻W_KeӁ61jk -9iI߁IӁV6UmH3EAW\4\|ԅi#.&*o:9уϾec@5,+*Yt` ;?f/Pn:4eLOo f˲VCP:T]>tL{k׶nۡ\#i 38`nʂ(t6KhCt9 Ÿ ꀴl@740tu{f ǣut >}\4f™ u`B$pF"B`biJ_4VxI|m"5й7 Ϗ3]nBq4 X f@ 1Xl+»f/^e}IENCijHıBƵ;g.A(nHl6t̀?P1@r=s72˕FJͺ}d FYY W!:%g1PȶB _V)q2֫ gW#_xaB$(I鈁+(ÙiLJ&TD[<ͣL;(Ӯl/HK3WYۅB;_ i_cx0hj9:NO\^9*o7V2afa|-P5%@ iK{Įfv8֮Y9,1C@@x~,GC 8' R, -2kov -`ɈZe -$W󄹊>Ч -JnT@Na ` fh)k^>) i#J$=HB$ c."R 3\=\OKx(0k!S8qv:|'p+IkAOp\&+,^(OA{^'=Oml#:Taw_ cYrIf% UD2^K@ -McW!usTc(D iAHC< kc1%^f8O9>1Sw#Ƞc[b3U>ǀNLZkGXkDbaX, KFkVoُ1>,.E2PpWΉLS?#MbT!йи(gCB3Vi69&^ysp3˅7 ȀO7*aFPoT$Rtmû@ZLȴ?R0 -yhSUD {k(=|J{ʰ >8Z¾.c`33񲏓U-VNGR1,/ҢnIL7rK.MuAۜ|ܠ/ uA LT;:k%l7-|q`M'{TEPLJO kwjyA -LY!R(JǠ);ia$d2$gbVQYb4[_Af}ufb⪆DҢ&ڝر+bn"\^ů/zHߘc :GҊiqNřZPէض:WT]+^mpđcluYcOvb3IR,!C³+JO1FfpWO)˙}Ghޕ^""JwbtS6EᎺ/ptS#fs/\ng~qe%n/vu3)4eui 7$.˴XJ/3Fz}*LK*U:#QE{SStNt뵮T[ ;ٜv5vi:=y﹈1c_iN!Tb0:A4[1 GDëH%w"n\Rw}-0ƘdPm4F1+M D|U~JT|ѕ[DR)[_]̙TzG*en>ԢTFXbS0:9Ŀݞ$R^.,g{vA+)y[ٿS uJp%Ej`n>g?{zz۟Q8:?N/j__:T;;w.wB0ePg%p̀<( t͔嗐X.p!bhg$щ:Ob.|Ų`wHOgbC4\mQM{bJx˙G»NfγyD>Yk4cƤg IzL*P]GC/OmXjZ#EфqnC¦e:i!T/S᠖^p{GLtX5]%/xD\8kғ1MTguPBSAI;u )V)4=+re( «, pHWfZ&!Jпkp` -dL]j x{o4c6Be(Ӆ*ȁ*Yn7>n-S '}(4~m{AX]_B_jV)rV|W$ X]Ac _Ʋ\Ŧ!xCFk9խ -0F.fvxL/2c=2Q̠JD<2۩ˮPxmo$b e 0#3^add[$3ZfD f 9xYQ`3#_aFJx̔F\fDZ\amD 3`a8$ 0[!0ei%e̫֡|cV0Q4t@8f 5_9fa2A0jj:fn1LLfwOf[`AfNಞHhՙy+BmI3]5C6sh,TYNg(erJs0:L;S,|Q!٩Qn}v~Y4xA8b41읡qJ ڍS$}H)ڳh^bT_hHGHUI6'm -a-iii- ׍jEiF ;ikF 2D;4fZUFϨiZJAڦOݐj -IG]" 7ҧQòBkjrQcgk;[qMZ[ۥUx z|Qs6Saa LJMPltc!ے {w9L|vdřh6#Y\G稡lFF1Dqx[XƦ[YQwl @EBǤ”+ADIblcӾRRnQJd `&ۣvn˖L@p(fW^-j I/j G )Wb+ی|ͦE A٤r/j֛Ma1(1r#ni,kTM`"D<(&FƨdTz, 7l<@ -̚g 2$ٵ?ͳ>D*ߥA{ـP- -endstream endobj 15 0 obj <>stream -=t%0r6F hF+g#; a|6(&DlQ#5(fտH'LlvH6mڸ#ڰ1G-ڨqEimAXm9d5޸6mmQ^kiiںEڸהlPL$-i3ikF L[i[(.wQ^u6+BKgCںQ#A$φFG6FgF hlBӨQl7 %+JEDmCg"s6l5=;5^,&lfC3j tk8$\ :ܰ9 lg+0 -T&V.j0 X;,j46CBKE5;P6!$<(W!bіػVԨSԠ"aEz1CF "#jtpg|D8QrZ$jD"jhl;[kO`ҥ[L'Ck>E >NttEa3ju L]AuSuŵX:Z[wP#\ [jBB|Ku/\;:=p|L]'@xu"pP#t݌E]?&QQcJF}AxO}ow}Qf5@0Qcl5X 5q<(duxCR0x-Ā)'SQ<=^J*q<`s2jH8o&7^[@A 5 -aEOj!C 3iȕQ㉆2}f& j"PC RFrgejڛ7{L&W xO3Yɍp^ceӨ -tfߴcB^PG3 }BK>I 5kjfPg+j2>n#hE*8fSiب@3}Pj_B88+H9P?w0PKM[sEU*}=x Fӧc1aS)B'|0Yt}=}(/!Ng@%ϺL~?;~SL~0hϽ$zN%)k~FV|hQίPר 54ǴPt16%W?XB N=X @y?nl3(j%`&Sl - P#߀3E`I |שx@[(@yx!Cs`Z>݀ Pcc8n;t S9#4ʲ Y{Lp!į PNY3`e+d#pA4I@ !$pI -p Y 0:OClt[Ƅ$QD a jMr Riхn<' ؖd"D: -5JDwq+]UK&|Ѵw^i4EMiM !Vvf؀?d8f ~,>*NHmr:HPUĭ6tQqNCD iH*3PZ $% HI%4U*Aj7 3|Cict0ւPPR 4 Oc\]jd j5AO#qBxAVi ˶&~Ӱk4A - 1s^>v46~8%R[ $n%aJԘjyq48; ٵBiOpןF~=DIxaiБ wi؊4^a4i1D4PоӘ Qi wJ|OpN"PP:pVc?Ev\T eF* i,9ZOpO0(N#Ti0n`U!*໌N#z$T:QP1Ls$ -", -'\3/ -b+ҡHӰN|4gE,t+i((j Kq#uy0pNVq*J}:ҩNd_(g&=((ۋН2!C?4Ӏ \J[4; !TRAϊ+ -2ȝF -zj!FPKZqi l+} -"; RǑZ;KgvSu.\%Ł7t)Nt9#4VUpH xUw$usiX,i,Z[A 8 -P1#%Iti Â}miq,(K`C?!J4재/ւFՂ*s)F&Z'74^@8:8|+@ !a -@G(r@kA&pop %%uDIWHo4$VNCAs/zN#&8.xO^._uM\:s41"-E_Q0\NmThD\:,X\8ڣ8 7K%idث jltWVq\ 7 j~Y}S!9 Ȭ*Ji@q(lZp0UaD8;] )ai<8 7O*1F* 8 auwA`i?4,h[.+ϔWvA4ī/XLRҟ\~34NC<TӐԟFDdܜƬӐ _L9 [Ȅ/إD!r*yƗ MLEqi4xȪC p2b%1RiL֦u}}A!m} R\/h$iUM,F54VF/H*lɔcӍK^PG4ip -`Mc J*ƦzAxM]lq74~gwAplx?Z/ilΦs^?S ix۟|ѝM#Hg5T^4Z^pʦڹi\t78W􂘟4'{H9F4B?Z!?48 Ľ4Hq4!֔`bD+o4x/Өw+1[ ~A ƒ i|!_R/Hӈ8; -Aԡ >eBF)FJS0( -_0bF4 Q$qGiZp!iANc)<\uˣ4]7/N#8, NM6}P07gA%A NGTÑA&X1TiOX)6|p~#*8 ֖ b֋4P%2d9 -~=˖J^]Axb !=iOGM%>\6kl:#ǰ]obg`3]Xܝ~LNc[!XؒFV!3ҕ|Jo&@r\ü>>qӐVq)cӀS_0OM9 s< -w蠆bڈ^Ԉ'6%Bfo[31qQv ]#)P17; H l_=Ii8'+K#NU%:^< J j,醗zHUOn`،}B-c!qBwa0G=ؚ-ԁڊ` hߝFM*oUxU?0#dNxN/ĉ;KVtZwRMxJx rƻdiin PԘ1{r?i$+T ֆXiDP(V4F~,,ѽqf"G4f4~avrd9e1~@y Oc&vt6^<9U b."q&H_JJ\3 vY(, i  - (Ӑl+'p vE(F ;y20'!!mӸ[ yqe@2&%t`wxhG-xӸ) c^#*ȈBE8δ@e00 *fd NcHi$DƧ>PeH vtxb~4L , -ʆ!v{g头-:?g(4nuxȁ([ Z47B';EɃ>q-8d1~vdŻa.5+mv4 Cm{Qh.%s_Q)΅NbϨ+'d>"w΃[: P.Wi(xDN~7eA}R@qP$`Vc꺕F/Tri\`) mdzʰ+J>B~lv7;|N94>r0@[4v'95kOrVNc/0N#ӈ/ҡidT?3iYX3t;³H4d֩s⠺0-m5,f.N#_0YK;RGfG;Y[a904V?%DN# -/Z=`䅣Z:;9uUM+ TijsZQ+kcS dHOAD;?!W}HX} `6ɋw S_+Z"tA4.,JN -R;B{o %_$iL8\z"OlW6l&4s|w֤[qN#TD1 Nqhl+O7"s2izl76ԫ[iWc`0ߗMхeXYSP͝Ksid (drå)A m; )K|P¾W{s=u{T>iQ)i GNómd -⃧@ 6l9|p f-9O2S{ք gq9J -hc\K4HfS,t$aWQL< lzY< I0{3U[ڍFR*H"B͠bF?9ƃ(ZI':.~Z4\27ѨA(4lFĮwA'vix\9wfI߫pqOTIrrAX)q_fpWl]p&0;[[:iKԄ -!_®Lq; =2Gjp)N%f:4vZYbQ4I$(;Y7|U ZiN=L+ZҝfLOyEҿ}EĝQi!l&)"*.ZFhv |`,pX ]F]84]/FAUYa祋XjEV p(6sN#G.cfxuFHu7Rf/N;wpx0dC.s\4ֶ$jPpbӘ,c N#Wzl ۑRazX6ψw*rAid!Z =S|o`g ]jNc_L}صh%uB~N(An}UdyUGGnC)ܠu0@VﴑtlWbV~$j]aSw64F!]7@w#kef74GzWgʜv [Lڈ - ϐ2x4l iN qAsaCw3ڔLe̵0iؖjS~&Y9 JWcNÌ-n`AUРE7G^7@wFq>:+#`.s,iؖ%SE cΐ9 %wzf -ځ9qPoU)~uUI:Pfig4*M9 'v=Ӹ3sm^ji(C>O7Ob&ov2H{{ Z5Оq%_BpFSv)g4Fcϵi#$NahW^&Cyz45ino9[2U+HWu>+O†M^: /9ƴͻ@dʾr4^UƃSy,^M>WuCخwˌNlg0: ;qɸ82 CLw>A2:b>"QH!ZOOR oWG:Ğ ~L: By7[h\DU -$bn\G.y)2pAfӘM_@jXS-t Z\ CLuT4h;f`FRx 7N]ưrxi0ч=Wupu )~up*eh2Ayi8S_|8҄=Nq*tH , EX!e]pWia𝔘ܚaj 4}k;C^CjQ2 bL4;c`A: &̕ܛ r: Pנse~=v5u, oU\!mvziϷ &F-F}0b" -ixtp*h4(MiʞM! -=.UpNl.'olEiGS<+iб[@_N#vsXzrK9CXsGz;R$Ѡ݋~v_f:%xW/5%0d(K\ʕ:+4WgvxPF~JB KN#=΃S]j4pý܁V,gN(in=ANA( ?u^uCjPal; <)dO~2^hGXIqCFTtDvB: 9*r`7iH6S2CuE rZIf -Ӏ 2O]i4DцJ8?XySiؕʮ? : -K46F "RFJy39~ n|6 iYc#F/j4"N`vr>BDU>Rqoֻ)4AsjU^bd@zN70%< !(7z^F2NJ@vW tdR - ?qqg:>].}cUD,11m/F C? ~?BXN#C9*c4zd IUDA]33*90IiQLa i4P҇BÖ` j/$ǪućXar2K`srC-~NW^߱'YNnWK.;*Ͻh@^[|IgFZƿrp>Z?Vo?Ɩ^I誨LƁޏPR˙F-;E) Vc siáG7k+9 [I)/‰s+`t,wN_@>;.gAхХDaZ1ׄ;tCmDt\eI=.ϣXY"*rAvʽeH$_Ƭ9)eIWꠙL1N]-g4MAal3LPvպz rrO & Z L?"T ld=V4L.a$]qRuU).-uv_Iޯr_"++'+fs*)#yR<051~@=;v">4oC~񛵪ZRn[7ڙ/;lgdND< &y4☠p@ E 0hgxh\y bx (@B 8eYN#/hHtрDi 4€q]UXV i'0$a*.₪E fB,(QB+7#b<"}!A6pP}ܭ2@I~=À%+ pIޭw?ǨG &ʴӫ2_X|fX/DvύjsNmb[_Ğl 03D@V z 嫏;qE^/*98xDZeϏVw2v]eU"GNKv[˳mӠ7LOS `SM;)_W*s-/h}< Q 3p{'T0ǴIĵ`X! arP`jÅ^d421+QxYc - ]F)zkr+ XNx T߰uhK -M" fC+ A@ݼ]z"ߔ3>ѯE%dT~Ta3IDi3u{%!|W#W|hk -i3',2N+pЊ+DqUYq ȓ`F@/GN`Ic#-v"5ORFs2G=S$-5ԷC|646n06; սMxǕ(dA[ ԱYk=G*' I\=PBl Ue=v𢈆W%!i-N[Ie]EyYJaҟ~/HB(Tk\9>`7=??ϻw< f6W9iU`.^{+.*`Ik-uǥdH%oXëJN7N~e!#2KGx:4mWN>9+գ.j@HRa0OC%Y.i954;ٻXhi]iD9SLFy2L[e"ĄJ NK%jU[%L1Hsم)"&1%^̥dTvMn酿W 9"z XN#{ڏ jTtД/ȭn FBD"9moks*ƃEoU 4;e6TR@!T"UΌ58x' wMaJc(s9FtW}QضOrqCl(:ږ1KY>060 sp33-36)~s!R >| ŘR@$g4b=rͳI#];/'/JfJQOF Зtr3vj&a(1uae]Hi(XWVqIx&O6Eٝ'MݘtlOjJK3_yi3&NjIc"G,KYjKfڄlBbj(e9 N1T#6(9v*I%+Svye>d* ^~;ז3e@!LN^T9>hG=75IJVN:Q20, -Y|欘 -V!WAι$z_xV_Tݻ8.!O/=xmVN﫮ǧ~J=h?]-ދ6cRP;{Om֖>kJZM i/1Wt]DW}=@=-{` n\Q> OCEwyq$ӸG;V- RBxaC1!Τ͆M) fu_̦Hѻ@43vai](Ii,[eTKW Z$,un_@گ QÅtg<A۽i2mY1l + <ŶDYѥ'`ZAh/xL,}H0D!-MGpp0ͳN_p -(jSzݚ|O -&(ϗ"[NP~ \ wT A=&)BkJ<3D|:(YTtV'…NP%ޓ;POof 7, XV6o]]cJ;]v2Ii/ J"o|W?e(7\@=o n,>iu2/$e(p m9c+)QZ9/jeY1Lw4`mI)btgc&dVh!RUBsܕҖ) 3]y3˷>OﻫނWg` oj-dP8$@+և#ԡ'?*@ -:bOó c2x^Ob2}Ֆ2j5?)§.JhTٖ%^[hMŸRXŏ -)+$ `2,.@k&Tm45\`"UxPwf-}vQxbZb/Y\ѹ<Bsʹ bIaN֠}`Wix?!;V5=[3AYv`Y ୙3H![\^w ވQ}`?w;Ńd -So&g:u.Q!hP?\VC᛬-=BB&dMBQ|WܱldI\A[B$M%SeѲH‹h~1 A 8ź7Rz&"%ţ},BOC6mZٮ){ީCR,-ȯ*w/<ڱt+.gj͓w4T -1PzHDkvQA+7$ 뱳z5G-+_U ;HZnՇY -ګ)8Ub${_OjI$Bjv_ MviI%|VJ#nbr!w!D uYP1lz` -=QpءTᐂl@Xۖ?}7VG`V܂K`VÚ͛>}[Yo> 6uT^#'xôov=kjryPMJ'({TZ;KeAAe%~!1 W{Q1.I.ВZKDZEtCr ΟZt~B>Cs٧P8#h*إr5`N~ۃ6;ZY,UqQSyP[}70&P,ji6}^3%Ĝ/2n"t**eM -PhA1# ਯYg@LhͳDHLG*֯]H7n/VxV#kdpމ,w^r}'#C_4ԲLjs+eHIh'06C´ AK38&s˟ B )<>S΀ i&u gɧ%OB25H(z1u/LoYX 6_qkOMf%u[pVBdPͥ=π 1>+ _*Ba:ȅ54bL 1ӂNx]hD4 ;H(,9, ?& ٬|ҫ`#4q9'϶놝뙣@ }ʨQUr.sDXFTI o|/H%4!Htΰ2~<] HirZP&GBuo 碏Re$@ KD-0%$bpy-.hCA~=G(yV=V)9FuORF3|2}DhmUtp&H77夲f8VXΤr˄LЄH00c$r6!S[AikGhD6}lkD^^*_@i7;yڪWu@Y-*dV0ɍ.rX@6V " EZLsg]\A4$:z@>˟FDx(%(PTdtOXp.un)|(6dU,QMZx'5XHM΅9;>aNϦl I5)I .0܆-.Jjk@uw -_OSRC jUxQL^OK|$+49YL!$[l -B\v'- ιLsTaM7ι£#p,v*y׵; AzfNĴ>d^HPT&DSm@DcB6R5craH ]Il.[\V[A"أ삹m\sHvHg rjm;bj)؞@))H ~`o%abD)}^]gUYubo%1zF*QdL4S -[ -`>!M`r4RIH { q6IF -r!F3 r[LBܽ,V~ Uѭ%P;.FT`-\o1Q jNөjR@ -tAhb,ݣNeͰ?=^e](kCX푠1~br_$^B Y~̏xӁ7 k= -#Ge9@<dVMl=4f,CȇGPb!9|#/r ]'W`4_S֢010c]!OqA1Ʊ3z>D )b -.DR%T͞757 $Ve 094 V4t䋝C@[qΘ:辧Qpz9(Y v)7tkX^8bz^|-JID*KO -jۇ.ޫԲ '$<ۅHb)H8j>DsV 82iMOy|/(ŧbnbߓh~#Q%,yf MvOl7KY!*:qb-Q}Q HQry^z~%SO%{(p.^<;!C NJţDpưST Rr{9l>Ng'H5F$pBĕ UIfl=a´&9E9G8 9mp}OS+ǮQ& ܤ;׻7GAGD(E`^rcDZa_㶹Ͳpx?<<eν@E1YYnbVt!\1;7n zl~z%G埅j=Lo! .BX: ldw@ C>/bf"&ҵ Ij%肅pԆNB9d4Tf?غ<\@вP5YMk$v+>g=H%WeU2F˶`"K-}^q# 1* -[w`u"k vlV.@ՁpN8Qh vJF -8@4^*މ{ ͟{cow?)OL?THMl!XlSEYxJX3:l"cNʊUPgť*Z#Qz -єGa%QH-oGph:M9-0Q%?w =cvCȂGQ 9$UUaG}3zAf\5j !QKwjQ k)t=,|W)mc* t:Dhx Ip/"VY>#d%0 .:vE~86L2{Gz"K -4zrYZcW^5/#bLL n#u}o¶/ߪy9fk$H1$Jڊ(V4Y,(SD>l*p&2K&Sπ/đ0q2(M3U&Y }k(g({?*[渗>iHXtͫ}Ob+tQ:"&-aqouMkTiѥU4_RXh:X͎F00*<Hl_Oǐi|:;4`,c؇:+},0sя$icF6/>6z:(7NR ؔ)Lti'FVϜH;E%3tql  [Eb=N}hWSDdP#{pa*u{̊Pّn!G# y.{NT7Z4].4R}}<ǘtwe8:d?@;44Evh6#7e*d-~@` q5EM"A;h9zCRVHφӕɎҮ@sJ[_pQg9X#׮y2"/; Mj{c*W3> -GxSji>vn8 jGer--@m%u2(\0wk?XԵ{߯B';,(+f0~ (bM41w$wW"T3dxYcdSz&9#'h#)k%*W[|[fL;G˄;jSԮFEjTjqf%3l$20 -Nh,r[K*5<7oPʙkTy*C$d׮cXNneGOc\PN -1ŵ^A0T $*Kj'6Z<30-R~ -L,ݢtߓsHJlv@TF< -AؿF "U^1q+Q2h#69yKdW0$`Bl5. Zhdwjwo J d.oul%:ot)jtN")DPC dU5kW-$i!/6$'VSԪA;3 (6opK2$<xȲ{itҕNSh0-vJ C5~jcYrF58 T9EuFtpd9o$GtOBGꂊvt8/o2J m4aOGI4ptsqXml*.vNN|SXrjفC 2x@.F9+LchR  C 5=%‡fZ.< - SOuA6~YEK~Wr*B,qp̡̠Ui,w!+RwFa06ֱ{]z>~T7o˺S9MߩŐAxm!C -&eZiC=Wuhs+^eJpC U;G}]G<ֽd+*{8 TU$G]!}Ys:Jj-2ẀO*ŇEʁ6NQ!i&~"(>G.?9=L>0le?ɠ{K-X;-HzjDiՑpA^D~6P u/1TZ%gSz iQ, -9>U"_nȀH ҽm9v%?S3?Z賞_1ɖS= -T˷GeUtϣt'j( -8܉YX2V8탴t d6b*^[_21vK5V36)\^;{ ' *#6gx(OFU꿽a֭jhaK9^u"gS{pOq?Gt6^@^_QtueJ49wYBZnbeP"ա!<+wPGz^99Wb/-؍R-d.BsDwpqJlWBustOc ETWPւ$Fa)詠|"D5pkj䡲Jb*eV4hs<配gI ˅6āc+Tv2EaI䓝 -G'@׬9#ˌ#bGv~ؔQ?[||Ɏ 7 yiQOXa-+x" Jf&J19%a뛱9!j@gE6muȟj+I* }YdhuFЅud!q _҆o/mzKb55O ζ+2WE@u?{F/Bl\!p?نRAТJ/({$'PTp"J Gxm+ڗ#R"P( $J rQz{Xjxf׀0[|<פu,I6n+GTS;xDn4dC>zb?Fcny"Ckf郰soD20RP2vwjHS)rژLr<@@cKg5FORg3?PwnK:z6++h"ãA^cIwq 84!Za%>4%NS%f~ ;jR&r;u8d J#ME"Sl}- -vr/))23\Xwxˢ%fF2BINJUCծnqүFILKV_l,˛9%RE~,a\& ݑ4LD4gy않R%e%+jkwNB杢u'-wۛ4JK dJB \Ov? Rv.L %8Q&&h4ɔxPL-ϩ6wa"f,{LZ_K.# ;i|ɏ$L%C&TAoeᒾT14xe8n4^+]֝ڤEtMEnofk}jf_G,,h<չei4ȃΉ"Æ>Q&Mwoggmmv{tq-#nyoP5OY}L {ՇXZ:xؾ;JBm4ZId/D9ǚ\\.nk+?',AMލ$ajӲrS" :xR~=71V yg5 G{sfi>i1ks)Q؆̄G4S^Q8PۮEBa3*ZGMzL㵔(K,Iؔ]wT4ǔ(_]Kǔ({ߕR)&qM5g}@+EA68%=S[R?rupttKDs:#1O>Lou88*c+>o80lM47܏% -c+].6 , ƃḊÇ>2R}cwfᰛ碪<0f#asr2CV9auPȁR%6b[e"陾3^%QRON%m&:;^_=7=t/աz)-ёўwiOӠSO/2:w~埽u٤k2?"f`h0,_f˲(Yv%{e9)Qt9QDY4QDYmTܵy;trb8P1Kp8:ȵw,5;X+QϭVI|QMG'D&LǪf~₿Ǽk[mu,rt3U3_1좪Ehe% -Ժ̎"$Yur#2(.3333wG0"Y#YwI21P127ϱqQݽjjh;ͻZ%J"_cv X B 0D,D.yz',hI74v"R᱐a0"&`(Pă8Ada4,0"$"L(cn "0; #cD&HpD@,H," (GĬ " YH8`wgXצgX<p pH"$ - -L@â ``= aZ"aa@`DX!L -  -Fáǃ^wbYD "" 1H$°`a4 f"  3((l dPDD,hD@"CdX8P," $ $4%Ja -ñ@@C`<А(8sν7v3 66 < Da`8p94c;Y4 d,H - LXPAĂpllٌ-H ,H5 0@"" Y@4, Á KY4LXL@`Bà#䁩iaa",DVgVa`X\ - cojY^˜~(N\rQuMDQhzrff&g(캐?O'5Q: -nm7|FLK\>v{Ew}}o[wsc7?ߧfw].665#?+"Y[ν*סi-=Փns?Sf[9^fu9ce!%}٧b.:)6v'}b_guꨞa:^}ba*,[Igx_hTMDQ؜ުoQ;OYEDqpΥ򙚖0sb6gw_7e's͟)WUgͩNqnS緗3)gS;[ոGV,5;[{Ymu3vi޶y| 8MX6{w)QKeJ_hJ:(9b4Dq|!wc(Rm]8S|FsixPwz?Q4KsKt6ҡSX  T(ŚBj$ (e!R+H`tޟR(wdf.x}ba$(FLcg/j'?:jT4`R S u6~{ OO3yh&n1 8-͇Tmaz]b8ՠdHxTYM_\+K!o: &sʠ hQ!N|){ͥ?֡O(Jإ= 5/;߰nVc}#2P^Oڳ;cU~B8Wz͌i&K9=)Rћ) -5QS}p08 *M ,} JoҔ@[ˢ%,xއ2- H۫5 -dį;sBʦ!] -hOJNlgO7cTp޶*I?,-8k*~8%s&껙Y7OZtAs[9I2# hsĦ߿WŅ`] gf;!^W d%SGF=S7LU,t1 kyFNȇi(v2I%813Q 0MduzZQ\fit>10f,( |#!|Dֆ}yɽGvPprS 7H 48't^wɣ!B,Я|}'&C?y;)oL= ~+m J\︮˖ o?_ &&dMPϡ">bHόU0p`fkU/,ڳ -y6v=~]$ࠢ#M9B3ՙ,SFZ-#|+0ms{7 @W/~A: 7 -@!6pf M Zڋ -trƫ"CkkUmL_."zk>ȳenzH(P%U`J{軰W?D"1?RLFoaЊ* 7)uV%$:Q 'pʚ/n7bUN -Saփ -bPgZRKA\ -BGdzҽF+w:MUYebDgr|Qz) .#z8')ewW9*,xiAY 빹WP2 ii`%uP,D#E -e`J4Hαψ^iULΦ/R%l)0V!|{.ueJPzhU|ϣZaeQ|٨v >Y)BO͓h}j(d1 ,XϜ8 -v9雪 PW)x!)! "2k焨KC3@ ?h`/gq'fF3!3( ɷX{U'[R6*lh!Ju 6szvKBY(0u@oIFk[0b$0t~v pzLz{B5 `cs9H O΀ - zү9 e7E.T]! kd:VS>DwWcUyҒ)WI*EHW-?y+}E@82 9{|!~ ( 3u!%7pi/fL(d:Sؾ9$柶{tX0WSk߳:Y2{%k\j[];}UJz{-ll:5$m?a(y!uDiNgxbPOa@=G\K+JFP -gugK!1 RS[gֹS.Sך23zHp 9PO]#q5KVCMӁzVzGj4AT (kd$afx-FxI)y+VNq [5.cq43#lG"W[/*2!!4rPe-- W`{Hۂ.QCgV,$h1j&{iܵ0,#v+D/ -+šyu^#k 33 j1(s -+ -[32B&ɏIvF -C+s藥Mk\-b]@yS1#S M!ۏ$)]󔦢XԎ?>2XEBj TsyR!șyBӶmvEٝD\8F}hYSIrg8 -iQ^O3.7 -ĴЩ--!2d-K0`NI+ejTyĂ|&NmSF*Y?,{n0pX*)qf&Yi*D˥e+v} j!4΍~<³Ru=3dWQ\G}pfOQ!!SZքW ;dL(.dB{5b+AX;pNVu]0( /|+SLǸ k r/tړjŁ&)4ϯ ^)MHt(ϒLC[s |$Z $O2lZMĈy"=nj-YQuz&wM 옄JMp&q)yS@ݒ"9=zSA]H0x}E'/v2(3ZS[Aq^wSש?8Hq"96+ [Y<Ҫk"DIYfd/opc,Y-kѫY,+ōF>ɀrD)rJ\NePtYȵܳnyŮoG*z%F$g)A.t GھTs]b^_h)S衍U8SN'u ЌYK+(ldlbƇj11`b{.J6 i $]-#N2l e۹HC3w\<-#⮨YDH vDvcO_ ӌyH/fռ*~U#O n A; g Xa ٿS6kds6$,23.ɋx$d8^L5 ԑ"^j8 B4"axl$[H扣#8sŭUʱiN CPTX\E_Z(/N r2js24 4h _r2r 4$Q[dGlD`^I!ZVE#ɮ!=I Э840Ze/dbITӶ&Ȯ4 o8}pc,3״trɷi5}!nO"%,%`)"OŤX !_d̀3NY<֙.b}`HIBԖw(%A~skwBz/qE -{~(Hϗ?Ѧ^kP] -Y뢍X?y +6I_+BCpu]5OЌkmCm`iwK6Ts_1eH.a Q- 6 N#ݠ9W/uouB2{b`\qp јbBI3V CݑW `0N!.(*qCD-faGh # -8}NWiAfǐA(zADBȻ@@` }n f6p \k.ho9\Rp% -z-&4OIb[7NiE6֋C77٦;RtM[ wc;XŹ7T^m67tD0-}.o=Yfb/( \[ ^Tb8A ? mkS9 KŸ>{Cٌ=İ`31b[9U@OduUd,q7iBm#NT Wh>[M2G+֩UN%u>mmv,m2iŋv -idGOpjqmtAwpJ,Bxkw}ס!ogcahސ]Hi̔W~6(E/3) 6d8nE9\ (rtUX,M.@*ƸK$+əai1'4 @l0B=}޻0=`xu@lCu$n,iA܉F8Ƿ Xk -0;IGЛ[E:w0NglԸap*_fE+ہ=w Vr\ztɞ`9 -TJUYmTtWs -L"[a܈,#.q}=I{5M7f2&4Hmݸ\ 1,H[)ҁZ]DB'{u|;ХhA,=E}S?`*vk(SȈ.1VR` "rgrOÖЃg0 -Ssg|,t%)TGu+Z({j]ta}MyzƲ)i-CCf3v3+u%Ýv7T(($2Vi -loLژ@&a-K1ѵ9bJ)*R<"зi5s_@ӓOIWAHDuhH>boAaoUN坫tvÌ{ZSDd䉣wr`ށDRjQAM{Ѩ4՘~9X; ȖuAǠ rcaeVZ{uT#9pm?LamP^ -\ud:4 qC`(wp Be ,h~N .e.UD(Lr]u -۽g jwLօDѺˢ]}ca/ T[iC0ZZFS~aqf%QGs)H爄0H}S}l@cSUwq~O>S}L`le+.cHQwb3B}'We|R" \|!#GdQ@(Z&@p%,i좈"Uߦu58mW!!0_[X{\G,p/]>@vS]F|Yh:ۙ*c'(k)mgL]F}-aƣ aO@Pi8'!  -&Xjst^DKf޲b+nWԜ|0\7١VSf4Y77/C.ǹ| H9}skE=6X8Ϛ~Ս١2%|^|,Pw.+9M+x 躿c\ŃD:(^Ui&e-!yx}}5 2O Egzi]  J\Dȑ$s!E/Ioyo3D8ʄ/AϿO6 F@x{8>OrS8%fTRnre":+A 8SeOJ:A-Lۆ"o,ކ9=+,8RbS~&뿜4c Ҹ1=oJXA,O9\*6  C:$^Ş:B?|N4Kܳ M _1pb{aN-7hdZ L3Iz}/eizfZNGMCWԋe9XrFA #qLEnG:T\.՚f?O[h-`Ȧ%g4̖8<" -*QDH/XḇSs|7Q|8 ^pΊ·5l5[Ӻu""^ثe -YZ X-^ynYUz+$~vڶ ^uc3+1լ'Z{͸>> -i~ \Odĵ6-Ffsqؕ)5,~յ&B A7 O_<yUy5ѬAc״e\7|-x>{su7L'z9,La~,VzH8YRRtmWAeeR qXYCVuڀGr΋5W43 #P\!)n"WZ"o1F98d)5E4PpxHu˭ҮG=(g7Q98Tj j(:)2 (n=Ve<w2 -׬gnHapiQ$f#'mH浡kh E.`,ކ=Gvg@7wo>ʤJ+#1|vpulϰL=Ք1 -)m6M$SSUDEvv@w7)%|qk6^d5N#ÿ(j'KwʸukAAg8˜IBN\k)h3<>ЯJtn=-Ԥ.)..;@ -I9&$+!AW#ADT(ЫX[S VVk)ORF1W}}&UG.ҡ3DSr3M& 9x'A%.  o*Gr ](Xdz[ӊh,wAKp셝NK`/W؈ I ]0:WsoE҆M3eQVuqtłK^DV'7* NJZr/($2+65}ijQ qCQ Ot7qf$0 G{Z+x@?F_'j_ˀ/NeLޕ|$N*Ӱr_Hߟ6W`z/] UO`+M *pmHVE L@BVi5I UyyC@s^kB׀AeGYc0);C"QYjFᶾolKUV[BN3sAwpL(w1V![)JaӍ/8+<޴o<ہsE_Qr*Aj1 B`V؜ k_\!f>46FwYHL {kBX<&OS{ .s,ǿz;;`EwYfӈJIհ}U*pAald 5WTB{?MxVw@TEMP Ĥco*O`x}g,ҕ<=etTǓ FES^>*?N3QC=B0kD|t - 64h}d ɺӥn -l2I!Ρ, \f~<~|@&vLC2ʇ>w 1%PKJ>j۲dW07O$=EF?X@UWgoӌ˴ *3v%]RC7ݔ.>`I<9:%VaG.D_dX̭oVi - -z-P -޲j9`Ⰱe; INwۮ -Hz:A9ե7Ť2L4At9Rb*GPa^WE r*v$:z ]'Gl.7{I#YIUX VVx%C>njIV|yC?95lZkVKv8w.(?C}֗ &w \%L8ύ3T_*;]G~gSh/oBJ)BI5!fϬ 5quq:,E4ttmJ.I̻ȶE~)5bu]킃4#N"]wYξ Y2"eD"GH,_c $hh =N0͇Tb4)YŬ,Ca>V t)v;F$ћK Cn¼}]t}3׼agtjir|GNXbQ6W}k 6VƘb2g6|Ӡ ΀ŏ_쬧)# Dv>:6._ -+X+.1ͯ:T潧ŕ4Њ̡X[82".ؠbؔ``Ww0/-_Aa[ d].F{LY ,ݢ&[Y ^Y3 mT?C( @@G&vH:6 6kI.멋%3 {L(Hz O/Q[Wkm< ɓ |Hȣ Nn~ 't00V+f~ZBRVO,#NjɺBR(!c22Ee7]^P^p$%᪀ ] bQ$[\MlWS6Hs"Z?bCG0.TgAR'J5I"0UZ ̷) +tJ"[ZGyA{0P)Fjg(أ&& -Ԫ;a=[$C9'g<ťEmO9~ 1}M"WF[7diUJz 2%%Pi,.MsD;Wx=31i8[ .2#}(1`/j"}mjk~Q-sVnYfdGΗPIJg}Z}9}<&/YB̉n$h_괼Tu7%t m~]#|P3Źrt]8jq'nn '0 er>hC7DhRJjl" sv7;6n~jDt˿)u,TMG>_tQw$GXd; f >"ɧ7| D -oyȁ,ps=Sei5edPFLN7vhfg~ <"`*: -W(rNӤ-ȿuڿLg^_I`mqFzNS;}&NkiѵQf]bԖqz~5i0&鉕SW4L,Ҫ)Miqh$r-v|Q -cF:c~[SN. -jaTF@ۗ0K֤Ҹ@Q*P'+9G)@s]\iw;uO03t;^p9Ñ͗R/HL/S_IA&~IUh`u0gby @1qPifMP, z  y 3qw r lByFu:R -YLD1Cmh -]LNDA*d;0ap#QS&6aw lG -N\jm{sѢ)M[,lm/P#B,œ—*X6 }- -ǡ5SVxO1"FCeG 9z] KnP]c(9$2&SBl\e ! dl:uDV((YfNx30LIϕa0*JQQט_lMr -^:"рu{f7-\ א(c=U͑|9@=>a]g3t(sTGo-IyL]1 (!knsJ鯨*=0h]j2k|_uF}/h)DN"BDX}^@^ cKX'3^ P}ں%=Oɓֽd|J32??^-猜yN> Xyk1YK[3 -*ЪBԬ?)v%(o԰C#PCObČ+:4g- -@` 0cEZu_>B8A53rN/P.eː]{of~#D ]*n -j_IWK+6h>±b%h|qj6j܊568E.<}%k'KY%X- 3ݣJuFo -o}!Ő̗& zPl%G&`.mPvy2KZ4?7EX@->r'9JLM79qj3MvalXep컲xǮ>KG0wPU^Ѳ$`u$1"Ը漠O$@#`* a%g]LXff \&.pJe7DeH#*)6Fb>ycQکc&:)k~l~ uI j<=hc˾QIݮe9q0fC|K!. 1BEy+JEvc|'Sl 3hH9m$1+?nA˔CnoU -R}ril6`$q8ܬUL?B5H/2ĭ0C9f B7w9Lp7{S.݈b1B?EDtOr1_H޳gs3b}qLuψq#Mb2ttF -ZC Њ^u -wܒs+mF E+nLcv J;]z/A׽%W_ܻS k%1!@.o'li++TI -rZzbCr3vɬւ4 65AT5$?UJBCssUGc;{RsǴr*8@FtPM)l%ySѭXk/=M7/xF(/JbD00bk(^ FVP7Jf@ +;mYLc1q z>06^F⥌m9dO FTvu5i5m18h Hic5G7s,!K'fsOu8k(*dl}|4p:Ćx ~dX<_!DEźxL,V댣jZم -[^+V0q'tgK';hl@6%EFX__Od81y(=#Ԧ +4l,-vzx1x=rIڻlQZlXB;̩d"(aoC\*KU{ckEB1P"}I5A՝dTÑAmޜw ʉ魘/jq|v%szLh&K8M3_m8f1T)Xar_>Y^pv`AM"H}68Z.(|nl<9CYm2rMTlyOudO.vTaR`TehP5qwȯwI7=- -sr}Q>SV@8?ft*J Tw&>͡qARzo5G*!W)69;{J(hszFz O -~blJ<=9)L2yF&c0j9Tfs 4|@~x_=bUԪ컟o]5jxK:Z9Zy2{ +W¿kBe|5@۠;1mUJiO客bl;~(Qy$io"ku*5^~ S!tԾ'ge8t'YJ -!w1'/[b$#b.ɺ<%B|?̷׭҃=ft(e#C4oʃZD45!]:龶tG?0{B8F$P.6ߪO>CT/ `8[g*Wy`$/>Im>>|db欍{]: JQc^Kldcp?Irۅbڊ5ע\~/}^gWJ_6Ka(yYsiN(dLݰlb1iƴPEP|#t պQvn*HYնUva}rjhA;w*s-lGo3s7GP -q -LI$N'pZguu 5teG/2cK D+ge.%OWVaPx.p8Lvʾ?aˑ4sx -jڊ:hQj=mp3 %4A8=/<,BĨPzn6r˹)3,ZfIUe g7Yyp$S C+_) Q=p\{(1&ص|SK/1]c4%8$ -1簆Ǟ> -m')\\@OwY4IEjpD[99N@{(^4p$|8(W$q)À> zc k,hyZ*=#|ȰAna !a5eœQ+0{ud?2Eje)wiwgSu_C ދl/&G60V؊2̖r"0 )[&kYCKT:cO< 1w:OSNjXB9׳EDa,cK+%1y^xsT󌜼E] I}&¼I0iA'v_Z%9Q'UC/fO!kRM89;Cc];ߎ,ՄY呲aH֫פejݓok'Ƅ0j4xPCg.K!)N4D2^Zbj>%C8I=90DizU$~LªB,~#&غ~ڦ,Qv+5ʡ1zsDNR֓6ldGAW # (**jh{qK&uO!X0mK6,5H5} QBL-ЫN;8^eR=\bk:k:~#_TΏ"zYD+)No9R}b1͝@eNP̧lEzthțSDU}M7JE - - /// Provides application-specific behavior to supplement the default Application class. - /// - public partial class App : MauiWinUIApplication - { - /// - /// Initializes the singleton application object. This is the first line of authored code - /// executed, and as such is the logical equivalent of main() or WinMain(). - /// - public App() - { - this.InitializeComponent(); - } - - protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); - } - -} diff --git a/Template.Maui/Platforms/Windows/Package.appxmanifest b/Template.Maui/Platforms/Windows/Package.appxmanifest deleted file mode 100644 index 443d058..0000000 --- a/Template.Maui/Platforms/Windows/Package.appxmanifest +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - $placeholder$ - User Name - $placeholder$.png - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Template.Maui/Platforms/Windows/app.manifest b/Template.Maui/Platforms/Windows/app.manifest deleted file mode 100644 index 7e2916c..0000000 --- a/Template.Maui/Platforms/Windows/app.manifest +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - true/PM - PerMonitorV2, PerMonitor - - - diff --git a/Template.Maui/Resources/AppIcon/appicon.svg b/Template.Maui/Resources/AppIcon/appicon.svg deleted file mode 100644 index 456d120..0000000 --- a/Template.Maui/Resources/AppIcon/appicon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Template.Maui/Resources/AppIcon/appiconfg.svg b/Template.Maui/Resources/AppIcon/appiconfg.svg deleted file mode 100644 index 14f4932..0000000 --- a/Template.Maui/Resources/AppIcon/appiconfg.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Template.Maui/Resources/Splash/splash.svg b/Template.Maui/Resources/Splash/splash.svg deleted file mode 100644 index 14f4932..0000000 --- a/Template.Maui/Resources/Splash/splash.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/Template.Maui/wwwroot/index.html b/Template.Maui/wwwroot/index.html deleted file mode 100644 index 82d02fb..0000000 --- a/Template.Maui/wwwroot/index.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - Template.Maui - - - - - - - - - - - - - - - - - - - - -
- -
Loading...
- -
- An unhandled error has occurred. - Reload - 🗙 -
- - - - - - - - - - - - - - \ No newline at end of file diff --git a/Template.Shared/Components/Layout/MainLayout.razor b/Template.Shared/Components/Layout/MainLayout.razor deleted file mode 100644 index 3da63fd..0000000 --- a/Template.Shared/Components/Layout/MainLayout.razor +++ /dev/null @@ -1,16 +0,0 @@ -@inherits LayoutComponentBase - -
- @**@ - - - -
-
- @Body -
-
- -
\ No newline at end of file diff --git a/Template.Shared/Components/Layout/NavBar.razor b/Template.Shared/Components/Layout/NavBar.razor deleted file mode 100644 index a9c1b7b..0000000 --- a/Template.Shared/Components/Layout/NavBar.razor +++ /dev/null @@ -1,40 +0,0 @@ -
- -
- -@code { - -} \ No newline at end of file diff --git a/Template.Shared/Components/Layout/NavBar.razor.css b/Template.Shared/Components/Layout/NavBar.razor.css deleted file mode 100644 index 841769e..0000000 --- a/Template.Shared/Components/Layout/NavBar.razor.css +++ /dev/null @@ -1,81 +0,0 @@ -a { - text-decoration: none; - color: inherit; -} - -ul { - list-style-type: none; -} - -.container { - max-width: 100%; - margin: 0 auto; - padding: 0; -} - -nav { - position: fixed; - bottom: 0; - width: 100%; - background-color: var(--ligther-color); - margin: 0; - display: flex; - border-radius: 40px 40px 0px 0px; - box-shadow: rgb(50 50 93 / 25%) 0 50px 100px 10px, - rgb(0 0 0 / 30%) 0 30px 60px -30px; -} - -nav ul { - display: inline-flex; - align-items: center; - padding: 0; - flex: 0 0 25%; - justify-content: center; -} - -nav :where(li a) { - position: relative; -} - -nav ul li a { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column-reverse; - padding: 1em; - line-height: 1.4; - -webkit-transition: all .3s ease-out; - transition: all .3s ease-out; -} - -nav ul li a:hover { - color: var(--primary-color); -} - -nav ul li a i { - font-size: 1.5rem; -} - -nav ul li a span { - font-size: 0.9rem; -} - -/* animations */ - -nav li.active a::before, nav li.active a::after { - content: ""; - position: absolute; - background-color: var(--primary-color); - z-index: -1; -} - -nav li.active a::before { - top: 5%; - width: calc(100% - 0px); - height: 100%; - border-radius: 25px; -} - -nav li.active a { - color: var(--ligther-color); -} \ No newline at end of file diff --git a/Template.Shared/Components/Layout/NavMenu.razor b/Template.Shared/Components/Layout/NavMenu.razor deleted file mode 100644 index ea9c171..0000000 --- a/Template.Shared/Components/Layout/NavMenu.razor +++ /dev/null @@ -1,38 +0,0 @@ - \ No newline at end of file diff --git a/Template.Shared/Components/Layout/NavMenu.razor.css b/Template.Shared/Components/Layout/NavMenu.razor.css deleted file mode 100644 index 83500fa..0000000 --- a/Template.Shared/Components/Layout/NavMenu.razor.css +++ /dev/null @@ -1,50 +0,0 @@ -.navbar { - background-color: var(--ligther-color); - border-radius: 50px 50px 0 0; - border: #eceff2 solid 1px; - position: fixed; - bottom: 0; - width: 100%; -} - -.nav-item { - font-size: 0.9rem; - padding-bottom: 0.5rem; -} - -.nav-item ::deep a { - color: var(--darker-color); - display: flex; - align-items: center; - line-height: 1.4; - justify-content: center; -} - -.nav-item ::deep a > div { - width: 4.3rem; - height: 4.3rem; - border-radius: 100px; - justify-content: center; - padding-bottom: 0.1rem; - -webkit-transition: all .3s ease-out; - transition: all .3s ease-out; -} - -.nav-item ::deep a.active > div { - background-color: var(--primary-color); - color: white; -} - -/*.nav-item a:hover :not(.active) {*/ -/* background-color: rgba(255, 255, 255, 0.1);*/ -/* color: var(--primary-color);*/ -/*}*/ - - -.nav-item ::deep a i { - font-size: 2rem; -} - -.nav-item ::deep a span { - font-size: 0.9rem; -} diff --git a/Template.Shared/Components/Pages/Counter.razor b/Template.Shared/Components/Pages/Counter.razor deleted file mode 100644 index 1d02763..0000000 --- a/Template.Shared/Components/Pages/Counter.razor +++ /dev/null @@ -1,16 +0,0 @@ -@page "/counter" - -

Counter

- -

Current count: @currentCount

- - - -@code { - private int currentCount = 0; - - private void IncrementCount() - { - currentCount++; - } -} diff --git a/Template.Shared/Components/Pages/DeviceFormFactor.razor b/Template.Shared/Components/Pages/DeviceFormFactor.razor deleted file mode 100644 index 6f421b4..0000000 --- a/Template.Shared/Components/Pages/DeviceFormFactor.razor +++ /dev/null @@ -1,23 +0,0 @@ -@page "/device-form-factor" -@using Template.Shared.Interfaces -@inject IFormFactor FormFactor - -Form Factor - -

Device Form Factor

- -

You are running on:

- -
    -
  • Form Factor: @factor
  • -
  • Platform: @platform
  • -
- -

- This component is defined in the Template.Shared library. -

- -@code { - private string factor => FormFactor.GetFormFactor(); - private string platform => FormFactor.GetPlatform(); -} diff --git a/Template.Shared/Components/Pages/Home.razor b/Template.Shared/Components/Pages/Home.razor deleted file mode 100644 index 190c626..0000000 --- a/Template.Shared/Components/Pages/Home.razor +++ /dev/null @@ -1,15 +0,0 @@ -@page "/" - -

Hello, world!

- -Welcome to your new app. - - - ... - - - - -@code { - private Modal modal = default!; -} \ No newline at end of file diff --git a/Template.Shared/Components/Pages/Impostazioni.razor b/Template.Shared/Components/Pages/Impostazioni.razor deleted file mode 100644 index f9a4f56..0000000 --- a/Template.Shared/Components/Pages/Impostazioni.razor +++ /dev/null @@ -1,6 +0,0 @@ -@page "/settings" -

Impostazioni

- -@code { - -} \ No newline at end of file diff --git a/Template.Shared/Components/Pages/Log Book.razor b/Template.Shared/Components/Pages/Log Book.razor deleted file mode 100644 index ecc561d..0000000 --- a/Template.Shared/Components/Pages/Log Book.razor +++ /dev/null @@ -1,10 +0,0 @@ -@page "/logbook" -@using Template.Shared.Components.SingleElements -

Log book

- - - -@code { - -} \ No newline at end of file diff --git a/Template.Shared/Components/Pages/Weather.razor b/Template.Shared/Components/Pages/Weather.razor deleted file mode 100644 index 472bb98..0000000 --- a/Template.Shared/Components/Pages/Weather.razor +++ /dev/null @@ -1,61 +0,0 @@ -@page "/weather" - -

Weather

- -

This component demonstrates showing data.

- -@if (forecasts == null) -{ -

Loading...

-} -else -{ - - - - - - - - - - - @foreach (var forecast in forecasts) - { - - - - - - - } - -
DateTemp. (C)Temp. (F)Summary
@forecast.Date.ToShortDateString()@forecast.TemperatureC@forecast.TemperatureF@forecast.Summary
-} - -@code { - private WeatherForecast[]? forecasts; - - protected override async Task OnInitializedAsync() - { - // Simulate asynchronous loading to demonstrate a loading indicator - await Task.Delay(500); - - var startDate = DateOnly.FromDateTime(DateTime.Now); - var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; - forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast - { - Date = startDate.AddDays(index), - TemperatureC = Random.Shared.Next(-20, 55), - Summary = summaries[Random.Shared.Next(summaries.Length)] - }).ToArray(); - } - - private class WeatherForecast - { - public DateOnly Date { get; set; } - public int TemperatureC { get; set; } - public string? Summary { get; set; } - public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); - } -} diff --git a/Template.Shared/Components/Pages/Workout.razor b/Template.Shared/Components/Pages/Workout.razor deleted file mode 100644 index ea09c39..0000000 --- a/Template.Shared/Components/Pages/Workout.razor +++ /dev/null @@ -1,12 +0,0 @@ -@page "/workout" -@using Template.Shared.Components.SingleElements -

Workout

- - - -@code { - - - -} \ No newline at end of file diff --git a/Template.Shared/Components/Routes.razor b/Template.Shared/Components/Routes.razor deleted file mode 100644 index 1709cd1..0000000 --- a/Template.Shared/Components/Routes.razor +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Template.Shared/Components/SingleElements/NoDataAvailable.razor.css b/Template.Shared/Components/SingleElements/NoDataAvailable.razor.css deleted file mode 100644 index 75bb094..0000000 --- a/Template.Shared/Components/SingleElements/NoDataAvailable.razor.css +++ /dev/null @@ -1,13 +0,0 @@ -.no-data { - position: fixed; - top: 35%; - width: calc(100% - 3rem); /* remove page padding */ -} - -.no-data img { - width: 60%; -} - -.no-data p { - font-size: 1.2rem; -} \ No newline at end of file diff --git a/Template.Shared/Interfaces/IFormFactor.cs b/Template.Shared/Interfaces/IFormFactor.cs deleted file mode 100644 index aa7a4fa..0000000 --- a/Template.Shared/Interfaces/IFormFactor.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Template.Shared.Interfaces; - -public interface IFormFactor -{ - public string GetFormFactor(); - public string GetPlatform(); -} diff --git a/Template.Shared/Template.Shared.csproj b/Template.Shared/Template.Shared.csproj deleted file mode 100644 index 96bbb52..0000000 --- a/Template.Shared/Template.Shared.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - - - - - - - - - - - diff --git a/Template.Shared/_Imports.razor b/Template.Shared/_Imports.razor deleted file mode 100644 index 62c3cc9..0000000 --- a/Template.Shared/_Imports.razor +++ /dev/null @@ -1,10 +0,0 @@ -@using System.Net.Http -@using System.Net.Http.Json -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.JSInterop -@using Template.Shared.Components -@using BlazorBootstrap; -@using static InteractiveRenderSettings diff --git a/Template.Shared/wwwroot/css/app.css b/Template.Shared/wwwroot/css/app.css deleted file mode 100644 index 4423743..0000000 --- a/Template.Shared/wwwroot/css/app.css +++ /dev/null @@ -1,104 +0,0 @@ -html, body { - font-family: 'Poppins', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: 400; - line-height: 1.8; - color: black; -} - -a, .btn-link { - /*color: #006bb7;*/ - text-decoration: none; - color: inherit; -} - -.btn-primary { - color: #fff; - background-color: var(--primary-color); - border-color: var(--darker-color); -} - -.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { - box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; -} - -.content { - padding-top: 1.1rem; -} - -h1:focus { - outline: none; -} - -.valid.modified:not([type=checkbox]) { - outline: 1px solid #26b050; -} - -.invalid { - outline: 1px solid #e50000; -} - -.validation-message { - color: #e50000; -} - -#blazor-error-ui { - background: lightyellow; - bottom: 0; - box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); - display: none; - left: 0; - padding: 0.6rem 1.25rem 0.7rem 1.25rem; - position: fixed; - width: 100%; - z-index: 1000; -} - -#blazor-error-ui .dismiss { - cursor: pointer; - position: absolute; - right: 0.75rem; - top: 0.5rem; -} - -.blazor-error-boundary { - background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; - padding: 1rem 1rem 1rem 3.7rem; - color: white; -} - -.blazor-error-boundary::after { - content: "An error has occurred." -} - -.status-bar-safe-area { - display: none; -} - -.page-title { - /*text-align: center;*/ - font-size: x-large; - color: var(--darker-color); -} - -@supports (-webkit-touch-callout: none) { - .status-bar-safe-area { - display: flex; - position: fixed; - top: 0; - height: env(safe-area-inset-top); - background-color: #f7f7f7; - width: 100%; - z-index: 1; - } - - - #app { - padding-top: env(safe-area-inset-top); - height: 100vh; - } - - .flex-column, .navbar-brand { - padding-left: env(safe-area-inset-left); - } -} diff --git a/Template.Shared/wwwroot/css/default-theme.css b/Template.Shared/wwwroot/css/default-theme.css deleted file mode 100644 index 2a7bc2f..0000000 --- a/Template.Shared/wwwroot/css/default-theme.css +++ /dev/null @@ -1,5 +0,0 @@ -:root { - --primary-color: #5352ed; - --ligther-color: #f7f7ff; - --darker-color: hsl(240, 81%, 30%); -} \ No newline at end of file diff --git a/Template.Shared/wwwroot/images/log-book.svg b/Template.Shared/wwwroot/images/log-book.svg deleted file mode 100644 index 2803c6f..0000000 --- a/Template.Shared/wwwroot/images/log-book.svg +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LOG - LOG - - LOG - - - - BOOK - BOOK - - BOOK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Template.Shared/wwwroot/images/man-doing-squats.svg b/Template.Shared/wwwroot/images/man-doing-squats.svg deleted file mode 100644 index c89086b..0000000 --- a/Template.Shared/wwwroot/images/man-doing-squats.svg +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Template.Shared/wwwroot/js/bootstrap/Sortable.min.js b/Template.Shared/wwwroot/js/bootstrap/Sortable.min.js deleted file mode 100644 index abe4ddb..0000000 --- a/Template.Shared/wwwroot/js/bootstrap/Sortable.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! Sortable 1.15.3 - MIT | git://github.com/SortableJS/Sortable.git */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sortable=e()}(this,function(){"use strict";function e(e,t){var n,o=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)),o}function I(o){for(var t=1;tt.length)&&(e=t.length);for(var n=0,o=new Array(e);n"===e[0]&&(e=e.substring(1)),t))try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return}}function g(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function P(t,e,n,o){if(t){n=n||document;do{if(null!=e&&(">"!==e[0]||t.parentNode===n)&&p(t,e)||o&&t===n)return t}while(t!==n&&(t=g(t)))}return null}var m,v=/\s+/g;function k(t,e,n){var o;t&&e&&(t.classList?t.classList[n?"add":"remove"](e):(o=(" "+t.className+" ").replace(v," ").replace(" "+e+" "," "),t.className=(o+(n?" "+e:"")).replace(v," ")))}function R(t,e,n){var o=t&&t.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];o[e=!(e in o||-1!==e.indexOf("webkit"))?"-webkit-"+e:e]=n+("string"==typeof n?"":"px")}}function b(t,e){var n="";if("string"==typeof t)n=t;else do{var o=R(t,"transform")}while(o&&"none"!==o&&(n=o+" "+n),!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function E(t,e,n){if(t){var o=t.getElementsByTagName(e),i=0,r=o.length;if(n)for(;i=n.left-e&&i<=n.right+e,e=r>=n.top-e&&r<=n.bottom+e;return o&&e?a=t:void 0}}),a);if(e){var n,o={};for(n in t)t.hasOwnProperty(n)&&(o[n]=t[n]);o.target=o.rootEl=e,o.preventDefault=void 0,o.stopPropagation=void 0,e[K]._onDragOver(o)}}var i,r,a}function Ft(t){Z&&Z.parentNode[K]._isOutsideThisEl(t.target)}function jt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=a({},e),t[K]=this;var n,o,i={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return kt(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==jt.supportPointer&&"PointerEvent"in window&&!u,emptyInsertThreshold:5};for(n in z.initializePlugins(this,t,i),i)n in e||(e[n]=i[n]);for(o in Rt(e),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!e.forceFallback&&It,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?h(t,"pointerdown",this._onTapStart):(h(t,"mousedown",this._onTapStart),h(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(h(t,"dragover",this),h(t,"dragenter",this)),St.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),a(this,A())}function Ht(t,e,n,o,i,r,a,l){var s,c,u=t[K],d=u.options.onMove;return!window.CustomEvent||y||w?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=n,s.draggedRect=o,s.related=i||e,s.relatedRect=r||X(e),s.willInsertAfter=l,s.originalEvent=a,t.dispatchEvent(s),c=d?d.call(u,s,a):c}function Lt(t){t.draggable=!1}function Kt(){xt=!1}function Wt(t){return setTimeout(t,0)}function zt(t){return clearTimeout(t)}jt.prototype={constructor:jt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(vt=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,Z):this.options.direction},_onTapStart:function(e){if(e.cancelable){var n=this,o=this.el,t=this.options,i=t.preventOnFilter,r=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(a||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=t.filter;if(!function(t){Ot.length=0;var e=t.getElementsByTagName("input"),n=e.length;for(;n--;){var o=e[n];o.checked&&Ot.push(o)}}(o),!Z&&!(/mousedown|pointerdown/.test(r)&&0!==e.button||t.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!u||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=P(l,t.draggable,o,!1))&&l.animated||et===l)){if(it=j(l),at=j(l,t.draggable),"function"==typeof c){if(c.call(this,e,l,this))return V({sortable:n,rootEl:s,name:"filter",targetEl:l,toEl:o,fromEl:o}),U("filter",n,{evt:e}),void(i&&e.cancelable&&e.preventDefault())}else if(c=c&&c.split(",").some(function(t){if(t=P(s,t.trim(),o,!1))return V({sortable:n,rootEl:t,name:"filter",targetEl:l,fromEl:o,toEl:o}),U("filter",n,{evt:e}),!0}))return void(i&&e.cancelable&&e.preventDefault());t.handle&&!P(s,t.handle,o,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(t,e,n){var o,i=this,r=i.el,a=i.options,l=r.ownerDocument;n&&!Z&&n.parentNode===r&&(o=X(n),J=r,$=(Z=n).parentNode,tt=Z.nextSibling,et=n,st=a.group,ut={target:jt.dragged=Z,clientX:(e||t).clientX,clientY:(e||t).clientY},pt=ut.clientX-o.left,gt=ut.clientY-o.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,Z.style["will-change"]="all",o=function(){U("delayEnded",i,{evt:t}),jt.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!s&&i.nativeDraggable&&(Z.draggable=!0),i._triggerDragStart(t,e),V({sortable:i,name:"choose",originalEvent:t}),k(Z,a.chosenClass,!0))},a.ignore.split(",").forEach(function(t){E(Z,t.trim(),Lt)}),h(l,"dragover",Bt),h(l,"mousemove",Bt),h(l,"touchmove",Bt),h(l,"mouseup",i._onDrop),h(l,"touchend",i._onDrop),h(l,"touchcancel",i._onDrop),s&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Z.draggable=!0),U("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(w||y)?o():jt.eventCanceled?this._onDrop():(h(l,"mouseup",i._disableDelayedDrag),h(l,"touchend",i._disableDelayedDrag),h(l,"touchcancel",i._disableDelayedDrag),h(l,"mousemove",i._delayedDragTouchMoveHandler),h(l,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&h(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(o,a.delay)))},_delayedDragTouchMoveHandler:function(t){t=t.touches?t.touches[0]:t;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Z&&Lt(Z),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;f(t,"mouseup",this._disableDelayedDrag),f(t,"touchend",this._disableDelayedDrag),f(t,"touchcancel",this._disableDelayedDrag),f(t,"mousemove",this._delayedDragTouchMoveHandler),f(t,"touchmove",this._delayedDragTouchMoveHandler),f(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?h(document,"pointermove",this._onTouchMove):h(document,e?"touchmove":"mousemove",this._onTouchMove):(h(Z,"dragend",this),h(J,"dragstart",this._onDragStart));try{document.selection?Wt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){var n;Et=!1,J&&Z?(U("dragStarted",this,{evt:e}),this.nativeDraggable&&h(document,"dragover",Ft),n=this.options,t||k(Z,n.dragClass,!1),k(Z,n.ghostClass,!0),jt.active=this,t&&this._appendGhost(),V({sortable:this,name:"start",originalEvent:e})):this._nulling()},_emulateDragOver:function(){if(dt){this._lastX=dt.clientX,this._lastY=dt.clientY,Xt();for(var t=document.elementFromPoint(dt.clientX,dt.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(dt.clientX,dt.clientY))!==e;)e=t;if(Z.parentNode[K]._isOutsideThisEl(t),e)do{if(e[K])if(e[K]._onDragOver({clientX:dt.clientX,clientY:dt.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break}while(e=g(t=e));Yt()}},_onTouchMove:function(t){if(ut){var e=this.options,n=e.fallbackTolerance,o=e.fallbackOffset,i=t.touches?t.touches[0]:t,r=Q&&b(Q,!0),a=Q&&r&&r.a,l=Q&&r&&r.d,e=At&&wt&&D(wt),a=(i.clientX-ut.clientX+o.x)/(a||1)+(e?e[0]-Tt[0]:0)/(a||1),l=(i.clientY-ut.clientY+o.y)/(l||1)+(e?e[1]-Tt[1]:0)/(l||1);if(!jt.active&&!Et){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))D.right+10||S.clientY>x.bottom&&S.clientX>x.left:S.clientY>D.bottom+10||S.clientX>x.right&&S.clientY>x.top)||m.animated)){if(m&&(t=n,e=r,C=X(B((_=this).el,0,_.options,!0)),_=L(_.el,_.options,Q),e?t.clientX<_.left-10||t.clientY - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Template.Web/Program.cs b/Template.Web/Program.cs deleted file mode 100644 index 18ab6ae..0000000 --- a/Template.Web/Program.cs +++ /dev/null @@ -1,43 +0,0 @@ -using IntegryApiClient.Blazor; -using Template.Web.Components; -using Template.Shared.Interfaces; -using Template.Web.Services; - -#if DEBUG -const string BaseRestServicesEndpoint = "https://devservices.studioml.it/ems-api/"; -//const string BaseRestServicesEndpoint = "http://192.168.2.23:8080/ems-api/"; -#else - const string BaseRestServicesEndpoint = "https://services.studioml.it/ems-api/"; -#endif - -var builder = WebApplication.CreateBuilder(args); - -// Add services to the container. -builder.Services.AddRazorComponents() - .AddInteractiveServerComponents(); - -builder.Services.AddBlazorBootstrap(); -builder.Services.UseIntegry(BaseRestServicesEndpoint); - -builder.Services.AddScoped(); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if (!app.Environment.IsDevelopment()) -{ - app.UseExceptionHandler("/Error", createScopeForErrors: true); - // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. - app.UseHsts(); -} - -app.UseHttpsRedirection(); - -app.UseStaticFiles(); -app.UseAntiforgery(); - -app.MapRazorComponents() - .AddInteractiveServerRenderMode() - .AddAdditionalAssemblies(typeof(Template.Shared._Imports).Assembly); - -app.Run(); diff --git a/Template.Web/Properties/launchSettings.json b/Template.Web/Properties/launchSettings.json deleted file mode 100644 index 53f0c7b..0000000 --- a/Template.Web/Properties/launchSettings.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:18277", - "sslPort": 44379 - } - }, - "profiles": { - "http": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "http://localhost:5153", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "https": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "https://localhost:7125;http://localhost:5153", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } - } diff --git a/Template.Web/Template.Web.csproj b/Template.Web/Template.Web.csproj deleted file mode 100644 index fd1e962..0000000 --- a/Template.Web/Template.Web.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - net8.0 - enable - enable - - - - - - - - - - - diff --git a/Template.Maui/App.xaml b/salesbook.Maui/App.xaml similarity index 69% rename from Template.Maui/App.xaml rename to salesbook.Maui/App.xaml index 500235a..6859bc4 100644 --- a/Template.Maui/App.xaml +++ b/salesbook.Maui/App.xaml @@ -1,12 +1,13 @@ + xmlns:android="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;assembly=Microsoft.Maui.Controls" + android:Application.WindowSoftInputModeAdjust="Resize" + x:Class="salesbook.Maui.App"> - #512bdf + #dff2ff White diff --git a/salesbook.Maui/App.xaml.cs b/salesbook.Maui/App.xaml.cs new file mode 100644 index 0000000..641e04a --- /dev/null +++ b/salesbook.Maui/App.xaml.cs @@ -0,0 +1,20 @@ +using CommunityToolkit.Mvvm.Messaging; + +namespace salesbook.Maui +{ + public partial class App : Application + { + private readonly IMessenger _messenger; + + public App(IMessenger messenger) + { + InitializeComponent(); + _messenger = messenger; + } + + protected override Window CreateWindow(IActivationState? activationState) + { + return new Window(new MainPage(_messenger)); + } + } +} diff --git a/Template.Maui/Services/FormFactor.cs b/salesbook.Maui/Core/Services/FormFactor.cs similarity index 76% rename from Template.Maui/Services/FormFactor.cs rename to salesbook.Maui/Core/Services/FormFactor.cs index 8e22d6c..d3cc460 100644 --- a/Template.Maui/Services/FormFactor.cs +++ b/salesbook.Maui/Core/Services/FormFactor.cs @@ -1,6 +1,6 @@ -using Template.Shared.Interfaces; +using salesbook.Shared.Core.Interface; -namespace Template.Maui.Services; +namespace salesbook.Maui.Core.Services; public class FormFactor : IFormFactor { diff --git a/salesbook.Maui/Core/Services/LocalDbService.cs b/salesbook.Maui/Core/Services/LocalDbService.cs new file mode 100644 index 0000000..4697be2 --- /dev/null +++ b/salesbook.Maui/Core/Services/LocalDbService.cs @@ -0,0 +1,117 @@ +using SQLite; +using System.Linq.Expressions; +using salesbook.Shared.Core.Entity; + +namespace salesbook.Maui.Core.Services; + +public class LocalDbService +{ + private const string DB_NAME = "task_db.db3"; + private readonly SQLiteAsyncConnection _connection; + + public LocalDbService() + { + _connection = new SQLiteAsyncConnection(Path.Combine(FileSystem.AppDataDirectory, DB_NAME)); + + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + _connection.CreateTableAsync(); + } + + public async Task ResetSettingsDb() + { + try + { + await _connection.ExecuteAsync("DROP TABLE IF EXISTS stb_activity_result;"); + await _connection.ExecuteAsync("DROP TABLE IF EXISTS stb_activity_type;"); + await _connection.ExecuteAsync("DROP TABLE IF EXISTS stb_user;"); + + await _connection.CreateTableAsync(); + await _connection.CreateTableAsync(); + await _connection.CreateTableAsync(); + } + catch (Exception ex) + { + Console.WriteLine($"Errore durante il reset del database(settings): {ex.Message}"); + throw; + } + } + + public async Task ResetDb() + { + await ResetSettingsDb(); + + try + { + await _connection.ExecuteAsync("DROP TABLE IF EXISTS anag_clie;"); + await _connection.ExecuteAsync("DROP TABLE IF EXISTS jtb_comt;"); + await _connection.ExecuteAsync("DROP TABLE IF EXISTS ptb_pros;"); + await _connection.ExecuteAsync("DROP TABLE IF EXISTS ptb_pros_rif;"); + await _connection.ExecuteAsync("DROP TABLE IF EXISTS stb_activity;"); + await _connection.ExecuteAsync("DROP TABLE IF EXISTS vtb_clie_pers_rif;"); + await _connection.ExecuteAsync("DROP TABLE IF EXISTS vtb_dest;"); + + await _connection.CreateTableAsync(); + await _connection.CreateTableAsync(); + await _connection.CreateTableAsync(); + await _connection.CreateTableAsync(); + await _connection.CreateTableAsync(); + await _connection.CreateTableAsync(); + await _connection.CreateTableAsync(); + + Console.WriteLine("Database resettato con successo."); + } + catch (Exception ex) + { + Console.WriteLine($"Errore durante il reset del database: {ex.Message}"); + throw; + } + } + + public Task InsertAll(List entityList) => + _connection.InsertAllAsync(entityList, typeof(T)); + + public async Task Insert(List entityList) + { + foreach (var entity in entityList) + { + try + { + await _connection.InsertAsync(entity, typeof(T)); + } + catch (Exception ex) + { + Console.WriteLine($"Errore db su {entity}: {ex.Message}"); + } + } + } + + public async Task InsertOrUpdate(List entityList) + { + foreach (var entity in entityList) + { + var result = await _connection.UpdateAsync(entity); + if (result == 0) + { + await _connection.InsertAsync(entity); + } + } + } + + public Task> Get(Expression>? whereCond = null) where T : new() => + whereCond is null + ? _connection.Table().ToListAsync() + : _connection.Table().Where(whereCond).ToListAsync(); + + public List Get(string sql) where T : new() => _connection.QueryAsync(sql).Result; + + public async Task Delete(T entity) => + await _connection.DeleteAsync(entity); +} \ No newline at end of file diff --git a/salesbook.Maui/Core/Services/ManageDataService.cs b/salesbook.Maui/Core/Services/ManageDataService.cs new file mode 100644 index 0000000..a0470f6 --- /dev/null +++ b/salesbook.Maui/Core/Services/ManageDataService.cs @@ -0,0 +1,87 @@ +using AutoMapper; +using System.Linq.Expressions; +using salesbook.Shared.Core.Dto; +using salesbook.Shared.Core.Entity; +using salesbook.Shared.Core.Helpers.Enum; +using salesbook.Shared.Core.Interface; + +namespace salesbook.Maui.Core.Services; + +public class ManageDataService(LocalDbService localDb, IMapper mapper) : IManageDataService +{ + public Task> GetTable(Expression>? whereCond = null) where T : new() => + localDb.Get(whereCond); + + public async Task> GetActivity(Expression>? whereCond = null) + { + var activities = await localDb.Get(whereCond); + + var codJcomList = activities + .Select(x => x.CodJcom) + .Where(x => !string.IsNullOrEmpty(x)) + .Distinct().ToList(); + + var jtbComtList = await localDb.Get(x => codJcomList.Contains(x.CodJcom)); + var commesseDict = jtbComtList.ToDictionary(x => x.CodJcom, x => x.Descrizione); + + var codAnagList = activities + .Select(x => x.CodAnag) + .Where(x => !string.IsNullOrEmpty(x)) + .Distinct().ToList(); + var clientList = await localDb.Get(x => codAnagList.Contains(x.CodAnag)); + var distinctClient = clientList.ToDictionary(x => x.CodAnag, x => x.RagSoc); + + var prospectList = await localDb.Get(x => codAnagList.Contains(x.CodPpro)); + var distinctProspect = prospectList.ToDictionary(x => x.CodPpro, x => x.RagSoc); + + var returnDto = activities + .Select(activity => + { + var dto = mapper.Map(activity); + + if (activity.CodJcom != null) + { + dto.Category = ActivityCategoryEnum.Commessa; + } + else + { + dto.Category = activity.CodAnag != null ? ActivityCategoryEnum.Interna : ActivityCategoryEnum.Memo; + } + + if (dto.Category != ActivityCategoryEnum.Memo && activity.CodAnag != null) + { + string? ragSoc; + + if (distinctClient.TryGetValue(activity.CodAnag, out ragSoc) || + distinctProspect.TryGetValue(activity.CodAnag, out ragSoc)) + { + dto.Cliente = ragSoc; + } + } + + dto.Commessa = activity.CodJcom != null && commesseDict.TryGetValue(activity.CodJcom, out var descr) + ? descr + : null; + return dto; + }) + .ToList(); + + return returnDto; + } + + public Task InsertOrUpdate(T objectToSave) => + localDb.InsertOrUpdate([objectToSave]); + + public Task Delete(T objectToDelete) => + localDb.Delete(objectToDelete); + + public async Task DeleteActivity(ActivityDTO activity) + { + await localDb.Delete( + (await GetTable(x => x.ActivityId.Equals(activity.ActivityId))).Last() + ); + } + + public Task ClearDb() => + localDb.ResetDb(); +} \ No newline at end of file diff --git a/salesbook.Maui/Core/Services/NetworkService.cs b/salesbook.Maui/Core/Services/NetworkService.cs new file mode 100644 index 0000000..31a45b0 --- /dev/null +++ b/salesbook.Maui/Core/Services/NetworkService.cs @@ -0,0 +1,12 @@ +using salesbook.Shared.Core.Interface; + +namespace salesbook.Maui.Core.Services; + +public class NetworkService : INetworkService +{ + public bool IsNetworkAvailable() + { + return Connectivity.Current.NetworkAccess == NetworkAccess.Internet; + } + +} \ No newline at end of file diff --git a/salesbook.Maui/Core/Services/SyncDbService.cs b/salesbook.Maui/Core/Services/SyncDbService.cs new file mode 100644 index 0000000..c883d0f --- /dev/null +++ b/salesbook.Maui/Core/Services/SyncDbService.cs @@ -0,0 +1,86 @@ +using salesbook.Shared.Core.Helpers; +using salesbook.Shared.Core.Interface; + +namespace salesbook.Maui.Core.Services; + +public class SyncDbService(IIntegryApiService integryApiService, LocalDbService localDb) : ISyncDbService +{ + public async Task GetAndSaveActivity(string? dateFilter) + { + var allActivity = await integryApiService.RetrieveActivity(dateFilter); + + if (!allActivity.IsNullOrEmpty()) + if (dateFilter is null) + await localDb.InsertAll(allActivity!); + else + await localDb.InsertOrUpdate(allActivity!); + } + + public async Task GetAndSaveCommesse(string? dateFilter) + { + var allCommesse = await integryApiService.RetrieveAllCommesse(dateFilter); + + if (!allCommesse.IsNullOrEmpty()) + if (dateFilter is null) + await localDb.InsertAll(allCommesse!); + else + await localDb.InsertOrUpdate(allCommesse!); + } + + public async Task GetAndSaveProspect(string? dateFilter) + { + var taskSyncResponseDto = await integryApiService.RetrieveProspect(dateFilter); + + if (!taskSyncResponseDto.PtbPros.IsNullOrEmpty()) + if (dateFilter is null) + await localDb.InsertAll(taskSyncResponseDto.PtbPros!); + else + await localDb.InsertOrUpdate(taskSyncResponseDto.PtbPros!); + + if (!taskSyncResponseDto.PtbProsRif.IsNullOrEmpty()) + if (dateFilter is null) + await localDb.InsertAll(taskSyncResponseDto.PtbProsRif!); + else + await localDb.InsertOrUpdate(taskSyncResponseDto.PtbProsRif!); + } + + public async Task GetAndSaveClienti(string? dateFilter) + { + var taskSyncResponseDto = await integryApiService.RetrieveAnagClie(dateFilter); + + if (!taskSyncResponseDto.AnagClie.IsNullOrEmpty()) + if (dateFilter is null) + await localDb.InsertAll(taskSyncResponseDto.AnagClie!); + else + await localDb.InsertOrUpdate(taskSyncResponseDto.AnagClie!); + + if (!taskSyncResponseDto.VtbDest.IsNullOrEmpty()) + if (dateFilter is null) + await localDb.InsertAll(taskSyncResponseDto.VtbDest!); + else + await localDb.InsertOrUpdate(taskSyncResponseDto.VtbDest!); + + if (!taskSyncResponseDto.VtbCliePersRif.IsNullOrEmpty()) + if (dateFilter is null) + await localDb.InsertAll(taskSyncResponseDto.VtbCliePersRif!); + else + await localDb.InsertOrUpdate(taskSyncResponseDto.VtbCliePersRif!); + } + + public async Task GetAndSaveSettings(string? dateFilter) + { + if (dateFilter is not null) + await localDb.ResetSettingsDb(); + + var settingsResponse = await integryApiService.RetrieveSettings(); + + if (!settingsResponse.ActivityResults.IsNullOrEmpty()) + await localDb.InsertAll(settingsResponse.ActivityResults!); + + if (!settingsResponse.ActivityTypes.IsNullOrEmpty()) + await localDb.InsertAll(settingsResponse.ActivityTypes!); + + if (!settingsResponse.StbUsers.IsNullOrEmpty()) + await localDb.InsertAll(settingsResponse.StbUsers!); + } +} \ No newline at end of file diff --git a/Template.Maui/MainPage.xaml b/salesbook.Maui/MainPage.xaml similarity index 73% rename from Template.Maui/MainPage.xaml rename to salesbook.Maui/MainPage.xaml index 222124c..170689a 100644 --- a/Template.Maui/MainPage.xaml +++ b/salesbook.Maui/MainPage.xaml @@ -1,9 +1,9 @@ diff --git a/salesbook.Maui/MainPage.xaml.cs b/salesbook.Maui/MainPage.xaml.cs new file mode 100644 index 0000000..0b723b4 --- /dev/null +++ b/salesbook.Maui/MainPage.xaml.cs @@ -0,0 +1,23 @@ +using CommunityToolkit.Mvvm.Messaging; +using salesbook.Shared.Core.Messages.Back; + +namespace salesbook.Maui +{ + public partial class MainPage : ContentPage + { + private readonly IMessenger _messenger; + + public MainPage(IMessenger messenger) + { + InitializeComponent(); + _messenger = messenger; + } + + protected override bool OnBackButtonPressed() + { + _messenger.Send(new HardwareBackMessage("back")); + return true; + } + + } +} diff --git a/salesbook.Maui/MauiProgram.cs b/salesbook.Maui/MauiProgram.cs new file mode 100644 index 0000000..32b4cc2 --- /dev/null +++ b/salesbook.Maui/MauiProgram.cs @@ -0,0 +1,67 @@ +using CommunityToolkit.Maui; +using CommunityToolkit.Mvvm.Messaging; +using IntegryApiClient.MAUI; +using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.Extensions.Logging; +using MudBlazor.Services; +using MudExtensions.Services; +using salesbook.Maui.Core.Services; +using salesbook.Shared; +using salesbook.Shared.Core.Helpers; +using salesbook.Shared.Core.Interface; +using salesbook.Shared.Core.Messages.Activity.Copy; +using salesbook.Shared.Core.Messages.Activity.New; +using salesbook.Shared.Core.Messages.Back; +using salesbook.Shared.Core.Services; + +namespace salesbook.Maui +{ + public static class MauiProgram + { + private const string AppToken = "f0484398-1f8b-42f5-ab79-5282c164e1d8"; + + public static MauiApp CreateMauiApp() + { + InteractiveRenderSettings.ConfigureBlazorHybridRenderModes(); + + var builder = MauiApp.CreateBuilder(); + builder + .UseMauiApp() + .UseMauiCommunityToolkit() + .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); }) + .UseLoginAzienda(AppToken); + + builder.Services.AddMauiBlazorWebView(); + builder.Services.AddMudServices(); + builder.Services.AddMudExtensions(); + + builder.Services.AddAutoMapper(typeof(MappingProfile)); + + builder.Services.AddAuthorizationCore(); + builder.Services.AddScoped(); + builder.Services.AddScoped(provider => + provider.GetRequiredService()); + + builder.Services.AddScoped(); + builder.Services.AddScoped(); + builder.Services.AddScoped(); + builder.Services.AddScoped(); + + //Message + builder.Services.AddScoped(); + builder.Services.AddScoped(); + builder.Services.AddScoped(); + builder.Services.AddScoped(); + +#if DEBUG + builder.Services.AddBlazorWebViewDeveloperTools(); + builder.Logging.AddDebug(); +#endif + + builder.Services.AddSingleton(); + builder.Services.AddSingleton(); + + return builder.Build(); + } + } +} \ No newline at end of file diff --git a/salesbook.Maui/Platforms/Android/AndroidManifest.xml b/salesbook.Maui/Platforms/Android/AndroidManifest.xml new file mode 100644 index 0000000..9698f04 --- /dev/null +++ b/salesbook.Maui/Platforms/Android/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/salesbook.Maui/Platforms/Android/MainActivity.cs b/salesbook.Maui/Platforms/Android/MainActivity.cs new file mode 100644 index 0000000..1c93fe9 --- /dev/null +++ b/salesbook.Maui/Platforms/Android/MainActivity.cs @@ -0,0 +1,13 @@ +using Android.App; +using Android.Content.PM; + +namespace salesbook.Maui +{ + [Activity(Theme = "@style/Maui.SplashTheme", + MainLauncher = true, + ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | + ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] + public class MainActivity : MauiAppCompatActivity + { + } +} \ No newline at end of file diff --git a/Template.Maui/Platforms/Android/MainApplication.cs b/salesbook.Maui/Platforms/Android/MainApplication.cs similarity index 93% rename from Template.Maui/Platforms/Android/MainApplication.cs rename to salesbook.Maui/Platforms/Android/MainApplication.cs index 9e63b56..b8939c1 100644 --- a/Template.Maui/Platforms/Android/MainApplication.cs +++ b/salesbook.Maui/Platforms/Android/MainApplication.cs @@ -1,7 +1,7 @@ using Android.App; using Android.Runtime; -namespace Template.Maui +namespace salesbook.Maui { [Application] public class MainApplication : MauiApplication diff --git a/salesbook.Maui/Platforms/Android/Resources/values/colors.xml b/salesbook.Maui/Platforms/Android/Resources/values/colors.xml new file mode 100644 index 0000000..b37dd4c --- /dev/null +++ b/salesbook.Maui/Platforms/Android/Resources/values/colors.xml @@ -0,0 +1,6 @@ + + + #dff2ff + #00a0de + #00a0de + diff --git a/Template.Maui/Platforms/MacCatalyst/AppDelegate.cs b/salesbook.Maui/Platforms/MacCatalyst/AppDelegate.cs similarity index 81% rename from Template.Maui/Platforms/MacCatalyst/AppDelegate.cs rename to salesbook.Maui/Platforms/MacCatalyst/AppDelegate.cs index 60c4810..b1ac90f 100644 --- a/Template.Maui/Platforms/MacCatalyst/AppDelegate.cs +++ b/salesbook.Maui/Platforms/MacCatalyst/AppDelegate.cs @@ -1,7 +1,7 @@ using Foundation; -using Template.Maui; +using salesbook.Maui; -namespace Template.Maui +namespace salesbook.Maui { [Register("AppDelegate")] public class AppDelegate : MauiUIApplicationDelegate diff --git a/Template.Maui/Platforms/MacCatalyst/Entitlements.plist b/salesbook.Maui/Platforms/MacCatalyst/Entitlements.plist similarity index 100% rename from Template.Maui/Platforms/MacCatalyst/Entitlements.plist rename to salesbook.Maui/Platforms/MacCatalyst/Entitlements.plist diff --git a/Template.Maui/Platforms/MacCatalyst/Info.plist b/salesbook.Maui/Platforms/MacCatalyst/Info.plist similarity index 100% rename from Template.Maui/Platforms/MacCatalyst/Info.plist rename to salesbook.Maui/Platforms/MacCatalyst/Info.plist diff --git a/Template.Maui/Platforms/iOS/Program.cs b/salesbook.Maui/Platforms/MacCatalyst/Program.cs similarity index 93% rename from Template.Maui/Platforms/iOS/Program.cs rename to salesbook.Maui/Platforms/MacCatalyst/Program.cs index dc39375..2877acb 100644 --- a/Template.Maui/Platforms/iOS/Program.cs +++ b/salesbook.Maui/Platforms/MacCatalyst/Program.cs @@ -1,7 +1,7 @@ using ObjCRuntime; using UIKit; -namespace Template.Maui +namespace salesbook.Maui { public class Program { diff --git a/Template.Maui/Platforms/iOS/AppDelegate.cs b/salesbook.Maui/Platforms/iOS/AppDelegate.cs similarity index 89% rename from Template.Maui/Platforms/iOS/AppDelegate.cs rename to salesbook.Maui/Platforms/iOS/AppDelegate.cs index 176c6b4..57062da 100644 --- a/Template.Maui/Platforms/iOS/AppDelegate.cs +++ b/salesbook.Maui/Platforms/iOS/AppDelegate.cs @@ -1,6 +1,6 @@ using Foundation; -namespace Template.Maui +namespace salesbook.Maui { [Register("AppDelegate")] public class AppDelegate : MauiUIApplicationDelegate diff --git a/Template.Maui/Platforms/iOS/Info.plist b/salesbook.Maui/Platforms/iOS/Info.plist similarity index 81% rename from Template.Maui/Platforms/iOS/Info.plist rename to salesbook.Maui/Platforms/iOS/Info.plist index ecb7f71..ee8e215 100644 --- a/Template.Maui/Platforms/iOS/Info.plist +++ b/salesbook.Maui/Platforms/iOS/Info.plist @@ -28,5 +28,12 @@ XSAppIconAssets Assets.xcassets/appicon.appiconset + NSLocalNetworkUsageDescription + This app requires access to the local network to communicate with the server. + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + diff --git a/Template.Maui/Platforms/MacCatalyst/Program.cs b/salesbook.Maui/Platforms/iOS/Program.cs similarity index 89% rename from Template.Maui/Platforms/MacCatalyst/Program.cs rename to salesbook.Maui/Platforms/iOS/Program.cs index dc39375..ed53d81 100644 --- a/Template.Maui/Platforms/MacCatalyst/Program.cs +++ b/salesbook.Maui/Platforms/iOS/Program.cs @@ -1,7 +1,6 @@ -using ObjCRuntime; using UIKit; -namespace Template.Maui +namespace salesbook.Maui { public class Program { diff --git a/Template.Maui/Properties/launchSettings.json b/salesbook.Maui/Properties/launchSettings.json similarity index 100% rename from Template.Maui/Properties/launchSettings.json rename to salesbook.Maui/Properties/launchSettings.json diff --git a/salesbook.Maui/Resources/AppIcon/appicon.svg b/salesbook.Maui/Resources/AppIcon/appicon.svg new file mode 100644 index 0000000..869321d --- /dev/null +++ b/salesbook.Maui/Resources/AppIcon/appicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/salesbook.Maui/Resources/AppIcon/appiconfg.svg b/salesbook.Maui/Resources/AppIcon/appiconfg.svg new file mode 100644 index 0000000..abe196b --- /dev/null +++ b/salesbook.Maui/Resources/AppIcon/appiconfg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Template.Maui/Resources/Fonts/OpenSans-Regular.ttf b/salesbook.Maui/Resources/Fonts/OpenSans-Regular.ttf similarity index 100% rename from Template.Maui/Resources/Fonts/OpenSans-Regular.ttf rename to salesbook.Maui/Resources/Fonts/OpenSans-Regular.ttf diff --git a/Template.Maui/Resources/Images/dotnet_bot.svg b/salesbook.Maui/Resources/Images/dotnet_bot.svg similarity index 100% rename from Template.Maui/Resources/Images/dotnet_bot.svg rename to salesbook.Maui/Resources/Images/dotnet_bot.svg diff --git a/Template.Maui/Resources/Raw/AboutAssets.txt b/salesbook.Maui/Resources/Raw/AboutAssets.txt similarity index 100% rename from Template.Maui/Resources/Raw/AboutAssets.txt rename to salesbook.Maui/Resources/Raw/AboutAssets.txt diff --git a/salesbook.Maui/Resources/Splash/splash.svg b/salesbook.Maui/Resources/Splash/splash.svg new file mode 100644 index 0000000..d9bbd1e --- /dev/null +++ b/salesbook.Maui/Resources/Splash/splash.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Template.Maui/Template.Maui.csproj b/salesbook.Maui/salesbook.Maui.csproj similarity index 60% rename from Template.Maui/Template.Maui.csproj rename to salesbook.Maui/salesbook.Maui.csproj index 968a0f3..7821627 100644 --- a/Template.Maui/Template.Maui.csproj +++ b/salesbook.Maui/salesbook.Maui.csproj @@ -1,10 +1,9 @@  - $(TargetFrameworks);net8.0-android - $(TargetFrameworks);net8.0-ios - $(TargetFrameworks);net8.0-maccatalyst - $(TargetFrameworks);net8.0-windows10.0.19041.0 + $(TargetFrameworks);net9.0-android + $(TargetFrameworks);net9.0-ios + @@ -16,7 +15,7 @@ Exe - Template.Maui + salesbook.Maui true true enable @@ -24,22 +23,22 @@ enable - Template.Maui + salesbook - it.integry.template.maui + it.integry.salesbook 1.0 1 14.2 - + 24.0 - 10.0.17763.0 - 10.0.17763.0 + + @@ -47,7 +46,7 @@ $(DefineConstants);PLATFORM 26.0 - 34 + 35 - + true true true - + 14.2 $(DefineConstants);APPLE;PLATFORM - - Apple Development: Massimo Fausto Morelli (6C2CUM53BT) - VS: WildCard Development + + Apple Development: Created via API (5B7B69P4JY) + VS: WildCard Development - + - - - + + + + + + + + + + - + @@ -112,15 +122,19 @@ - - - - - + + + + + + + + + - + \ No newline at end of file diff --git a/Template.Maui/wwwroot/favicon.png b/salesbook.Maui/wwwroot/favicon.png similarity index 100% rename from Template.Maui/wwwroot/favicon.png rename to salesbook.Maui/wwwroot/favicon.png diff --git a/salesbook.Maui/wwwroot/index.html b/salesbook.Maui/wwwroot/index.html new file mode 100644 index 0000000..74faadd --- /dev/null +++ b/salesbook.Maui/wwwroot/index.html @@ -0,0 +1,59 @@ + + + + + + salesbook.Maui + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/HeaderLayout.razor b/salesbook.Shared/Components/Layout/HeaderLayout.razor new file mode 100644 index 0000000..19f494c --- /dev/null +++ b/salesbook.Shared/Components/Layout/HeaderLayout.razor @@ -0,0 +1,89 @@ +@inject IJSRuntime JS + +
+
+ @if (Back) + { +
+ + @BackTo + +
+ } + +

@Title

+ +
+ @if (LabelSave.IsNullOrEmpty()) + { + @if (ShowFilter) + { + + } + + @* @if (ShowCalendarToggle) + { + + } *@ + + @if (ShowProfile) + { + + } + } + else + { + + @LabelSave + + } +
+
+
+ +@code{ + [Parameter] public string? Title { get; set; } + [Parameter] public bool ShowFilter { get; set; } + [Parameter] public bool ShowProfile { get; set; } = true; + [Parameter] public bool Back { get; set; } + [Parameter] public bool BackOnTop { get; set; } + [Parameter] public string BackTo { get; set; } = ""; + + [Parameter] public EventCallback OnFilterToggle { get; set; } + + [Parameter] public bool Cancel { get; set; } + [Parameter] public EventCallback OnCancel { get; set; } + [Parameter] public string? LabelSave { get; set; } + [Parameter] public EventCallback OnSave { get; set; } + + [Parameter] public bool ShowCalendarToggle { get; set; } + [Parameter] public EventCallback OnCalendarToggle { get; set; } + + protected override void OnParametersSet() + { + Back = !Back ? !Back && Cancel : Back; + BackTo = Cancel ? "Annulla" : BackTo; + } + + private async Task GoBack() + { + if (Cancel) + { + await OnCancel.InvokeAsync(); + return; + } + + await JS.InvokeVoidAsync("goBack"); + } + + private void OpenPersonalInfo() => + NavigationManager.NavigateTo("/PersonalInfo"); + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/HeaderLayout.razor.css b/salesbook.Shared/Components/Layout/HeaderLayout.razor.css new file mode 100644 index 0000000..146d09f --- /dev/null +++ b/salesbook.Shared/Components/Layout/HeaderLayout.razor.css @@ -0,0 +1,21 @@ +.header-content { + line-height: normal; + display: flex; + justify-content: space-between; + align-items: center; + position: relative; +} + +.header-content.with-back .page-title { + position: absolute; + left: 50%; + transform: translateX(-50%); + margin: 0; + font-size: larger; +} + +.left-section ::deep button, .right-section ::deep button { font-size: 1.1rem; } + +.left-section ::deep .mud-button-icon-start { margin-right: 3px !important; } + +.header-content.no-back .page-title { margin: 0; } \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/MainLayout.razor b/salesbook.Shared/Components/Layout/MainLayout.razor new file mode 100644 index 0000000..0130251 --- /dev/null +++ b/salesbook.Shared/Components/Layout/MainLayout.razor @@ -0,0 +1,92 @@ +@using System.Globalization +@using CommunityToolkit.Mvvm.Messaging +@using salesbook.Shared.Core.Messages.Back +@inherits LayoutComponentBase +@inject IJSRuntime JS +@inject IMessenger Messenger +@inject BackNavigationService BackService + + + + + + +
+ + +
+
+ @Body +
+
+ +
+ +@code { + private MudThemeProvider? _mudThemeProvider; + private bool IsDarkMode { get; set; } + private string _mainContentClass = ""; + + private readonly MudTheme _currentTheme = new() + { + PaletteLight = new PaletteLight() + { + Primary = "#00a0de", + Secondary = "#002339", + Tertiary = "#dff2ff", + TextPrimary = "#000" + }, + PaletteDark = new PaletteDark + { + Primary = "#00a0de", + Secondary = "#002339", + Tertiary = "#dff2ff", + Surface = "#000406", + Background = "#000406", + TextPrimary = "#fff", + GrayDark = "#E0E0E0" + } + }; + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + // if (firstRender) + // { + // var isDarkMode = LocalStorage.GetString("isDarkMode"); + + // if (isDarkMode == null && _mudThemeProvider != null) + // { + // IsDarkMode = await _mudThemeProvider.GetSystemPreference(); + // await _mudThemeProvider.WatchSystemPreference(OnSystemPreferenceChanged); + // LocalStorage.SetString("isDarkMode", IsDarkMode.ToString()); + // StateHasChanged(); + // } + // else + // { + // IsDarkMode = bool.Parse(isDarkMode!); + // } + + // if (IsDarkMode) + // { + // _mainContentClass += "is-dark"; + // StateHasChanged(); + // } + // } + } + + private async Task OnSystemPreferenceChanged(bool newValue) + { + IsDarkMode = newValue; + } + + protected override void OnInitialized() + { + BackService.OnHardwareBack += async () => { await JS.InvokeVoidAsync("goBack"); }; + + var culture = new CultureInfo("it-IT", false); + + CultureInfo.CurrentCulture = culture; + CultureInfo.CurrentUICulture = culture; + } + +} \ No newline at end of file diff --git a/Template.Shared/Components/Layout/MainLayout.razor.css b/salesbook.Shared/Components/Layout/MainLayout.razor.css similarity index 62% rename from Template.Shared/Components/Layout/MainLayout.razor.css rename to salesbook.Shared/Components/Layout/MainLayout.razor.css index 8521145..b179f89 100644 --- a/Template.Shared/Components/Layout/MainLayout.razor.css +++ b/salesbook.Shared/Components/Layout/MainLayout.razor.css @@ -21,29 +21,29 @@ main { align-items: center; } - .top-row ::deep a, .top-row ::deep .btn-link { - white-space: nowrap; - margin-left: 1.5rem; - text-decoration: none; - } +.top-row ::deep a, .top-row ::deep .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; +} - .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { - text-decoration: underline; - } +.top-row ::deep a:hover, .top-row ::deep .btn-link:hover { + text-decoration: underline; +} - .top-row ::deep a:first-child { - overflow: hidden; - text-overflow: ellipsis; - } +.top-row ::deep a:first-child { + overflow: hidden; + text-overflow: ellipsis; +} @media (max-width: 640.98px) { .top-row { justify-content: space-between; } - .top-row ::deep a, .top-row ::deep .btn-link { - margin-left: 0; - } + .top-row ::deep a, .top-row ::deep .btn-link { + margin-left: 0; + } } @media (min-width: 641px) { @@ -64,14 +64,14 @@ main { z-index: 1; } - .top-row.auth ::deep a:first-child { - flex: 1; - text-align: right; - width: 0; - } + .top-row.auth ::deep a:first-child { + flex: 1; + text-align: right; + width: 0; + } .top-row, article { padding-left: 2rem !important; padding-right: 1.5rem !important; } -} +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/NavMenu.razor b/salesbook.Shared/Components/Layout/NavMenu.razor new file mode 100644 index 0000000..94e37c9 --- /dev/null +++ b/salesbook.Shared/Components/Layout/NavMenu.razor @@ -0,0 +1,96 @@ +@using CommunityToolkit.Mvvm.Messaging +@using salesbook.Shared.Core.Dto +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Messages.Activity.Copy +@using salesbook.Shared.Core.Messages.Activity.New +@inject IDialogService Dialog +@inject IMessenger Messenger +@inject CopyActivityService CopyActivityService + +
+ +
+ +@code +{ + private bool IsVisible { get; set; } = true; + private bool PlusVisible { get; set; } = true; + + protected override Task OnInitializedAsync() + { + CopyActivityService.OnCopyActivity += async dto => await CreateActivity(dto); + + NavigationManager.LocationChanged += (_, args) => + { + var location = args.Location.Remove(0, NavigationManager.BaseUri.Length); + + var newIsVisible = new List { "Calendar", "Users", "Notifications" } + .Contains(location); + + var newPlusVisible = new List { "Calendar", "Users" } + .Contains(location); + + if (IsVisible == newIsVisible && PlusVisible == newPlusVisible) return; + + IsVisible = newIsVisible; + PlusVisible = newPlusVisible; + StateHasChanged(); + }; + return Task.CompletedTask; + } + + private Task CreateActivity() => CreateActivity(null); + + private async Task CreateActivity(ActivityDTO? activity) + { + var result = await ModalHelpers.OpenActivityForm(Dialog, activity, null); + + if (result is { Canceled: false, Data: not null } && result.Data.GetType() == typeof(StbActivity)) + { + Messenger.Send(new NewActivityMessage(((StbActivity)result.Data).ActivityId)); + } + } +} + diff --git a/salesbook.Shared/Components/Layout/NavMenu.razor.css b/salesbook.Shared/Components/Layout/NavMenu.razor.css new file mode 100644 index 0000000..e73f065 --- /dev/null +++ b/salesbook.Shared/Components/Layout/NavMenu.razor.css @@ -0,0 +1,97 @@ +.animated-navbar { + background: transparent; + position: fixed; + bottom: 0; + width: 100%; + z-index: 1001; + transition: all 0.3s ease-in-out; +} + +.animated-navbar.show-nav { transform: translateY(0); } + +.animated-navbar.hide-nav { transform: translateY(100%); } + +.animated-navbar.with-plus { margin-left: 30px; } + +.navbar { + padding-bottom: 1rem; + padding-top: 0 !important; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: end; + transition: all 0.3s ease-in-out; +} + +.navbar.with-plus { transform: translateX(-30px); } + +.navbar.without-plus { + transform: translateX(0); + justify-content: center; +} + +.container-navbar { + background: var(--mud-palette-surface); + border-radius: 50px; + padding: 0 10px; + box-shadow: var(--custom-box-shadow); + transition: all 0.3s ease-in-out; +} + +.nav-item { font-size: 0.9rem; } + +.nav-item.plus-button { + position: relative; + bottom: 15px; +} + +.navbar ::deep .custom-plus-button .mud-icon-root { + transition: .5s; + transform: rotate(0); + font-size: 2rem; +} + +.navbar ::deep .custom-plus-button { + background: var(--mud-palette-surface); + box-shadow: var(--custom-box-shadow); + transition: all 0.3s ease-in-out; +} + +.navbar ::deep .custom-plus-button:focus .mud-icon-root { transform: rotate(225deg); } + +.nav-item ::deep a { + display: flex; + align-items: center; + line-height: 1.2; + justify-content: center; + padding-top: .25rem !important; + padding-bottom: .25rem !important; +} + +.nav-item ::deep a > div { + -webkit-transition: all .1s ease-out; + transition: all .1s ease-out; + min-width: 75px; +} + +.nav-item ::deep a.active > div { color: var(--mud-palette-primary); } + +.nav-item ::deep a.active > div > i { + /*background-color: color-mix(in srgb, var(--mud-palette-primary) 20%, transparent);*/ + border-radius: 10px; +} + +.nav-item ::deep a.active > div > span { font-weight: 800; } + + .nav-item ::deep a:not(.active) > div { + color: var(--mud-palette-text-primary); + } + +.nav-item ::deep a i { font-size: 1.65rem; } + +.nav-item ::deep a span { + font-size: 0.8rem; + font-weight: 500; +} + +@supports (-webkit-touch-callout: none) { .navbar { padding-bottom: env(safe-area-inset-bottom); } } \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/Overlay/SaveOverlay.razor b/salesbook.Shared/Components/Layout/Overlay/SaveOverlay.razor new file mode 100644 index 0000000..2e9ac93 --- /dev/null +++ b/salesbook.Shared/Components/Layout/Overlay/SaveOverlay.razor @@ -0,0 +1,23 @@ +@using salesbook.Shared.Components.Layout.Spinner + + @if (SuccessAnimation) + { +
+
+ + +
+
+
+
+ } + else + { + + } +
+ +@code { + [Parameter] public required bool SuccessAnimation { get; set; } + [Parameter] public required bool VisibleOverlay { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/Overlay/SaveOverlay.razor.css b/salesbook.Shared/Components/Layout/Overlay/SaveOverlay.razor.css new file mode 100644 index 0000000..d7d499b --- /dev/null +++ b/salesbook.Shared/Components/Layout/Overlay/SaveOverlay.razor.css @@ -0,0 +1,156 @@ +.success-checkmark { + width: 80px; + height: 80px; + margin: 0 auto; +} + +.success-checkmark .check-icon { + width: 80px; + height: 80px; + position: relative; + border-radius: 50%; + box-sizing: content-box; + border: 4px solid var(--mud-palette-success); +} + +.success-checkmark .check-icon::before { + top: 3px; + left: -2px; + width: 30px; + transform-origin: 100% 50%; + border-radius: 100px 0 0 100px; +} + +.success-checkmark .check-icon::after { + top: 0; + left: 30px; + width: 60px; + transform-origin: 0 50%; + border-radius: 0 100px 100px 0; + animation: rotate-circle 4.25s ease-in; +} + +.success-checkmark .check-icon::before, +.success-checkmark .check-icon::after { + content: ''; + height: 100px; + position: absolute; + transform: rotate(-45deg); + z-index: 2; +} + +.icon-line { + height: 5px; + background-color: var(--mud-palette-success); + display: block; + border-radius: 2px; + position: absolute; + z-index: 10; +} + +.icon-line.line-tip { + top: 46px; + left: 14px; + width: 25px; + transform: rotate(45deg); + animation: icon-line-tip 0.75s; +} + +.icon-line.line-long { + top: 38px; + right: 8px; + width: 47px; + transform: rotate(-45deg); + animation: icon-line-long 0.75s; +} + + +.icon-circle { + top: -4px; + left: -4px; + z-index: 10; + width: 80px; + height: 80px; + border-radius: 50%; + position: absolute; + box-sizing: content-box; + border: 4px solid var(--mud-palette-success); +} + +.icon-fix { + top: 8px; + width: 5px; + left: 26px; + z-index: 1; + height: 85px; + position: absolute; + transform: rotate(-45deg); +} + +@keyframes rotate-circle { + 0% { transform: rotate(-45deg); } + + 5% { transform: rotate(-45deg); } + + 12% { transform: rotate(-405deg); } + + 100% { transform: rotate(-405deg); } +} + +@keyframes icon-line-tip { + 0% { + width: 0; + left: 1px; + top: 19px; + } + + 54% { + width: 0; + left: 1px; + top: 19px; + } + + 70% { + width: 50px; + left: -8px; + top: 37px; + } + + 84% { + width: 17px; + left: 21px; + top: 48px; + } + + 100% { + width: 25px; + left: 14px; + top: 45px; + } +} + +@keyframes icon-line-long { + 0% { + width: 0; + right: 46px; + top: 54px; + } + + 65% { + width: 0; + right: 46px; + top: 54px; + } + + 84% { + width: 55px; + right: 0px; + top: 35px; + } + + 100% { + width: 47px; + right: 8px; + top: 38px; + } +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/Spinner/SpinnerLayout.razor b/salesbook.Shared/Components/Layout/Spinner/SpinnerLayout.razor new file mode 100644 index 0000000..482af43 --- /dev/null +++ b/salesbook.Shared/Components/Layout/Spinner/SpinnerLayout.razor @@ -0,0 +1,8 @@ +
+ +
+ +@code +{ + [Parameter] public bool FullScreen { get; set; } = true; +} diff --git a/salesbook.Shared/Components/Layout/Spinner/SpinnerLayout.razor.css b/salesbook.Shared/Components/Layout/Spinner/SpinnerLayout.razor.css new file mode 100644 index 0000000..5f19126 --- /dev/null +++ b/salesbook.Shared/Components/Layout/Spinner/SpinnerLayout.razor.css @@ -0,0 +1,43 @@ +.spinner-container { + display: flex; + justify-content: center; + height: calc(100vh - 10.1rem); + align-items: center; + color: var(--mud-palette-primary); +} + +.not-fullScreen { + height: auto !important; + padding: 2rem 0 !important; +} + +.loader { + width: 50px; + aspect-ratio: 1; + border-radius: 50%; + border: 8px solid #0000; + border-right-color: var(--mud-palette-secondary); + position: relative; + animation: l24 1s infinite linear; +} + +.loader:before, +.loader:after { + content: ""; + position: absolute; + inset: -8px; + border-radius: 50%; + border: inherit; + animation: inherit; + animation-duration: 2s; +} + +.loader:after { + animation-duration: 4s; +} + +@keyframes l24 { + 100% { + transform: rotate(1turn) + } +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/Spinner/SyncSpinner.razor b/salesbook.Shared/Components/Layout/Spinner/SyncSpinner.razor new file mode 100644 index 0000000..8f3ba84 --- /dev/null +++ b/salesbook.Shared/Components/Layout/Spinner/SyncSpinner.razor @@ -0,0 +1,20 @@ +@if (Elements is not null) +{ +
+ Download risorse in corso +
+ @foreach (var element in Elements) + { +
+ @element.Key + +
+ } +
+
+} + +@code +{ + [Parameter] public Dictionary? Elements { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Layout/Spinner/SyncSpinner.razor.css b/salesbook.Shared/Components/Layout/Spinner/SyncSpinner.razor.css new file mode 100644 index 0000000..751094d --- /dev/null +++ b/salesbook.Shared/Components/Layout/Spinner/SyncSpinner.razor.css @@ -0,0 +1,27 @@ +.container-loader { + display: flex; + height: 95vh; + flex-direction: column; + justify-content: center; + padding: 0 1rem; + align-items: center; + gap: 5vh; +} + +.container-loader > div { + width: 100%; +} + +.container-loader > span { + font-weight: 900; + font-size: large; + color: var(--mud-palette-primary); +} + +.progress-content > span { + font-weight: 700; +} + +.progress-content:nth-last-child(2) { + margin: 10px 0; +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/Calendar.razor b/salesbook.Shared/Components/Pages/Calendar.razor new file mode 100644 index 0000000..1f8eca0 --- /dev/null +++ b/salesbook.Shared/Components/Pages/Calendar.razor @@ -0,0 +1,625 @@ +@page "/Calendar" +@using salesbook.Shared.Core.Dto +@using salesbook.Shared.Core.Interface +@using salesbook.Shared.Components.Layout +@using salesbook.Shared.Components.SingleElements +@using salesbook.Shared.Components.Layout.Spinner +@using salesbook.Shared.Components.SingleElements.BottomSheet +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Messages.Activity.New +@inject IManageDataService ManageData +@inject IJSRuntime JS +@inject NewActivityService NewActivity + + + +
+ @if (Expanded) + { + + @foreach (var nomeGiorno in GiorniSettimana) + { +
+
@nomeGiorno
+
+ } + + @foreach (var unused in Enumerable.Range(0, StartOffset)) + { + + } + + @if (_isInitialized && _monthDaysData.Length > 0) + { + @for (var d = 1; d <= DaysInMonth; d++) + { + var day = new DateTime(CurrentMonth.Year, CurrentMonth.Month, d); + var dayData = _monthDaysData[d - 1]; + +
+
@d
+ @if (dayData.HasEvents) + { +
+ @foreach (var cat in dayData.EventCategories) + { +
+ } +
+ } +
+ } + } + else + { + @* Fallback rendering per prima inizializzazione *@ + @for (var d = 1; d <= DaysInMonth; d++) + { + var day = new DateTime(CurrentMonth.Year, CurrentMonth.Month, d); + var isSelected = IsSameDay(day, SelectedDate); + var isToday = IsSameDay(day, DateTime.Today); + var events = GetEventsForDay(day); + +
+
@d
+ @if (events.Any()) + { +
+ @foreach (var cat in events.Select(x => x.Category).Distinct()) + { +
+ } +
+ } +
+ } + } + + @foreach (var unused in Enumerable.Range(0, EndOffset)) + { + + } + } + else + { + + @if (_isInitialized && _weekDaysData.Length == 7 && _weekDaysData[0].Date != default) + { + @for (int i = 0; i < 7; i++) + { + var dayData = _weekDaysData[i]; + var day = dayData.Date; + +
+
@dayData.DayName
+
+
@day.Day
+ @if (dayData.HasEvents) + { +
+ @foreach (var cat in dayData.EventCategories) + { +
+ } +
+ } +
+
+ } + } + else + { + var start = GetStartOfWeek(SelectedDate); + var culture = new System.Globalization.CultureInfo("it-IT"); + + + for (var i = 0; i < 7; i++) + { + var day = start.AddDays(i); + var isSelected = IsSameDay(day, SelectedDate); + var isToday = IsSameDay(day, DateTime.Today); + var events = GetEventsForDay(day); + +
+
@day.ToString("ddd", culture)
+
+
@day.Day
+ @if (events.Any()) + { +
+ @foreach (var cat in events.Select(x => x.Category).Distinct()) + { +
+ } +
+ } +
+
+ } + } + } +
+ +
+ @if (IsLoading) + { + + } + else if (FilteredActivities is { Count: > 0 }) + { + + + + } + else + { + + } +
+ + + +@code { + + // Modelli per ottimizzazione rendering + private record DayData(DateTime Date, string CssClass, bool HasEvents, CategoryData[] EventCategories, string DayName = ""); + + private record CategoryData(string CssClass, string Title); + + // Cache per rendering + private DayData[] _monthDaysData = []; + private readonly DayData[] _weekDaysData = new DayData[7]; + private string _headerTitle = string.Empty; + private readonly Dictionary> _eventsCache = new(); + private readonly Dictionary _categoriesCache = new(); + private bool _isInitialized = false; + + // Stato UI + private bool Expanded { get; set; } + private string SliderAnimation { get; set; } = string.Empty; + private ElementReference _weekSliderRef; + private DotNetObjectReference? _dotNetHelper; + + // Stato calendario + private DateTime SelectedDate { get; set; } = DateTime.Today; + private DateTime _internalMonth = DateTime.Today; + private DateTime CurrentMonth => new(_internalMonth.Year, _internalMonth.Month, 1); + + // Stato attività + private List MonthActivities { get; set; } = []; + private List FilteredActivities { get; set; } = []; + private bool IsLoading { get; set; } = true; + + // Supporto rendering mese + private static readonly string[] GiorniSettimana = ["Lu", "Ma", "Me", "Gi", "Ve", "Sa", "Do"]; + private int DaysInMonth => DateTime.DaysInMonth(CurrentMonth.Year, CurrentMonth.Month); + private int StartOffset => (int)CurrentMonth.DayOfWeek == 0 ? 6 : (int)CurrentMonth.DayOfWeek - 1; + + //Filtri + private bool OpenFilter { get; set; } + private FilterActivityDTO Filter { get; set; } = new(); + + private int EndOffset + { + get + { + var totalCells = (int)Math.Ceiling((DaysInMonth + StartOffset) / 7.0) * 7; + return totalCells - (DaysInMonth + StartOffset); + } + } + + protected override void OnInitialized() + { + PrepareRenderingData(); + + NewActivity.OnActivityCreated += async activityId => await OnActivityCreated(activityId); + } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + Filter.User = new HashSet { UserSession.User.Username }; + + _dotNetHelper = DotNetObjectReference.Create(this); + await JS.InvokeVoidAsync("calendarSwipe.register", _weekSliderRef, _dotNetHelper); + _internalMonth = new DateTime(SelectedDate.Year, SelectedDate.Month, 1); + await LoadMonthData(); + + _isInitialized = true; + ApplyFilter(); + StateHasChanged(); + } + } + + // Metodo per preparare i dati di rendering una sola volta + private void PrepareRenderingData() + { + PrepareHeaderTitle(); + PrepareEventsCache(); + + if (Expanded) + { + PrepareMonthDaysData(); + } + else + { + PrepareWeekDaysData(); + } + } + + private void PrepareHeaderTitle() + { + _headerTitle = CurrentMonth.ToString("MMMM yyyy", new System.Globalization.CultureInfo("it-IT")).FirstCharToUpper(); + } + + private void PrepareEventsCache() + { + _eventsCache.Clear(); + _categoriesCache.Clear(); + + // Raggruppa le attività per data + var activitiesByDate = MonthActivities + .GroupBy(x => (x.EffectiveDate ?? x.EstimatedDate!).Value.Date) + .ToDictionary(g => g.Key, g => g.ToList()); + + foreach (var (date, activities) in activitiesByDate) + { + _eventsCache[date] = activities; + + // Pre-calcola le categorie per ogni giorno + var categories = activities + .Select(x => x.Category) + .Distinct() + .Select(cat => new CategoryData(cat.ConvertToHumanReadable(), cat.ConvertToHumanReadable())) + .ToArray(); + + _categoriesCache[date] = categories; + } + } + + private void PrepareMonthDaysData() + { + _monthDaysData = new DayData[DaysInMonth]; + var today = DateTime.Today; + + for (var d = 1; d <= DaysInMonth; d++) + { + var day = new DateTime(CurrentMonth.Year, CurrentMonth.Month, d); + var isSelected = day.Date == SelectedDate.Date; + var isToday = day.Date == today; + + var cssClass = isSelected ? "selected" : (isToday ? "today" : ""); + var hasEvents = _eventsCache.ContainsKey(day.Date); + var eventCategories = hasEvents ? GetFilteredCategoriesForDay(day.Date) : []; + + _monthDaysData[d - 1] = new DayData(day, cssClass, eventCategories.Length > 0, eventCategories); + } + } + + private void PrepareWeekDaysData() + { + var start = GetStartOfWeek(SelectedDate); + var today = DateTime.Today; + var culture = new System.Globalization.CultureInfo("it-IT"); + + for (var i = 0; i < 7; i++) + { + var day = start.AddDays(i); + var isSelected = day.Date == SelectedDate.Date; + var isToday = day.Date == today; + + var cssClass = isSelected ? "selected" : (isToday ? "today" : ""); + var dayName = day.ToString("ddd", culture); + var hasEvents = _eventsCache.ContainsKey(day.Date); + var eventCategories = hasEvents ? GetFilteredCategoriesForDay(day.Date) : []; + + _weekDaysData[i] = new DayData(day, cssClass, eventCategories.Length > 0, eventCategories, dayName); + } + } + + private CategoryData[] GetFilteredCategoriesForDay(DateTime date) + { + if (!_categoriesCache.TryGetValue(date, out var categories)) + return []; + + if (Filter.ClearFilter) + return categories; + + // Applica i filtri alle categorie + var filteredActivities = GetFilteredActivitiesForDay(date); + if (!filteredActivities.Any()) + return []; + + return filteredActivities + .Select(x => x.Category) + .Distinct() + .Select(cat => new CategoryData(cat.ConvertToHumanReadable(), cat.ConvertToHumanReadable())) + .ToArray(); + } + + private List GetFilteredActivitiesForDay(DateTime date) + { + if (!_eventsCache.TryGetValue(date, out var activities)) + return []; + + if (Filter.ClearFilter) + return activities; + + var filteredActivity = activities.AsQueryable(); + + filteredActivity = filteredActivity + .Where(x => Filter.Text.IsNullOrEmpty() || (x.ActivityDescription != null && x.ActivityDescription.ContainsIgnoreCase(Filter.Text!))); + + filteredActivity = filteredActivity + .Where(x => Filter.Type.IsNullOrEmpty() || (x.ActivityTypeId != null && x.ActivityTypeId.Equals(Filter.Type))); + + filteredActivity = filteredActivity + .Where(x => Filter.Result.IsNullOrEmpty() || (x.ActivityResultId != null && x.ActivityResultId.Equals(Filter.Result))); + + filteredActivity = filteredActivity + .Where(x => Filter.User.IsNullOrEmpty() || (x.UserName != null && Filter.User!.Contains(x.UserName))); + + filteredActivity = filteredActivity + .Where(x => Filter.Category == null || x.Category.Equals(Filter.Category)); + + return filteredActivity.ToList(); + } + + [JSInvokable] + public async Task OnSwipeLeft() + { + await CambiaPeriodo(1); + PrepareRenderingData(); + StateHasChanged(); + if (Expanded) + { + await LoadMonthData(); + } + } + + [JSInvokable] + public async Task OnSwipeRight() + { + await CambiaPeriodo(-1); + PrepareRenderingData(); + StateHasChanged(); + if (Expanded) + { + await LoadMonthData(); + } + } + + [JSInvokable] + public async Task OnSwipeDown() + { + if (!Expanded) + ToggleExpanded(); + } + + [JSInvokable] + public async Task OnSwipeUp() + { + if (Expanded) + ToggleExpanded(); + } + + // Cambio periodo mese/settimana + private async Task CambiaPeriodo(int direzione) + { + if (Expanded) + { + var y = CurrentMonth.Year; + var m = CurrentMonth.Month + direzione; + if (m < 1) + { + y--; + m = 12; + } + + if (m > 12) + { + y++; + m = 1; + } + + _internalMonth = new DateTime(y, m, 1); + } + else + { + await SelezionaData(SelectedDate.AddDays(7 * direzione)); + _internalMonth = new DateTime(SelectedDate.Year, SelectedDate.Month, 1); + } + } + + // Cambio modalità + private void ToggleExpanded() + { + if (Expanded) + { + SliderAnimation = "collapse-animation"; + Expanded = false; + } + else + { + Expanded = true; + SliderAnimation = "expand-animation"; + } + + PrepareRenderingData(); + StateHasChanged(); + + SliderAnimation = ""; + StateHasChanged(); + } + + // Caricamento attività al cambio mese + private async Task LoadMonthData() + { + IsLoading = true; + StateHasChanged(); + + var start = CurrentMonth; + var end = start.AddDays(DaysInMonth - 1); + var activities = await ManageData.GetActivity(x => + (x.EffectiveDate == null && x.EstimatedDate >= start && x.EstimatedDate <= end) || + (x.EffectiveDate >= start && x.EffectiveDate <= end)); + MonthActivities = activities.OrderBy(x => x.EffectiveDate ?? x.EstimatedDate).ToList(); + + PrepareRenderingData(); + IsLoading = false; + StateHasChanged(); + } + + // Selezione giorno in settimana + private async Task SelezionaData(DateTime day) + { + SelectedDate = day; + + var cacheInternalMonth = _internalMonth; + _internalMonth = new DateTime(day.Year, day.Month, 1); + + if (cacheInternalMonth != _internalMonth) + { + await LoadMonthData(); + } + else + { + PrepareRenderingData(); + } + + ApplyFilter(); + StateHasChanged(); + } + + // Selezione giorno dal mese (chiude la vista mese!) + private async Task SelezionaDataDalMese(DateTime day) + { + SelectedDate = day; + SliderAnimation = "collapse-animation"; + Expanded = false; + _internalMonth = new DateTime(day.Year, day.Month, 1); + + PrepareRenderingData(); + ApplyFilter(); + StateHasChanged(); + + SliderAnimation = ""; + StateHasChanged(); + } + + // Utility + private static bool IsSameDay(DateTime d1, DateTime d2) => d1.Date == d2.Date; + + private static DateTime GetStartOfWeek(DateTime date) + { + var day = date.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)date.DayOfWeek; + return date.AddDays(-day + 1).Date; + } + + private List GetEventsForDay(DateTime day) + => _eventsCache.TryGetValue(day.Date, out var events) ? events : []; + + public void Dispose() + { + _dotNetHelper?.Dispose(); + } + + private async Task OnActivityDeleted(ActivityDTO activity) + { + IsLoading = true; + + await ManageData.DeleteActivity(activity); + + var indexActivity = MonthActivities?.FindIndex(x => x.ActivityId.Equals(activity.ActivityId)); + + if (indexActivity != null) + { + MonthActivities?.RemoveAt(indexActivity.Value); + PrepareRenderingData(); + + ApplyFilter(); + } + + IsLoading = false; + } + + private async Task OnActivityCreated(string activityId) + { + IsLoading = true; + + var activity = (await ManageData.GetActivity(x => x.ActivityId.Equals(activityId))).LastOrDefault(); + + if (activity == null) + { + IsLoading = false; + return; + } + + var date = activity.EffectiveDate ?? activity.EstimatedDate; + + if (CurrentMonth.Month != date!.Value.Month) + { + IsLoading = false; + return; + } + + MonthActivities.Add(activity); + PrepareRenderingData(); + IsLoading = false; + + ApplyFilter(); + } + + private async Task OnActivityChanged(string activityId) + { + var newActivity = await ManageData.GetActivity(x => x.ActivityId.Equals(activityId)); + var indexActivity = MonthActivities?.FindIndex(x => x.ActivityId.Equals(activityId)); + + if (indexActivity != null && !newActivity.IsNullOrEmpty()) + { + MonthActivities![indexActivity.Value] = newActivity[0]; + PrepareRenderingData(); // Ricalcola i dati di rendering + ApplyFilter(); + } + } + + private void ToggleFilter() + { + OpenFilter = !OpenFilter; + StateHasChanged(); + } + + private void ApplyFilter() + { + FilteredActivities = GetFilteredActivitiesForDay(SelectedDate); + + // Aggiorna i dati di rendering se il filtro è cambiato + if (Expanded) + { + PrepareMonthDaysData(); + } + else + { + PrepareWeekDaysData(); + } + + StateHasChanged(); + } + + // Metodo ottimizzato per il rendering dei filtri + private List ReturnFilteredActivity(DateTime day) + { + return GetFilteredActivitiesForDay(day); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/Calendar.razor.css b/salesbook.Shared/Components/Pages/Calendar.razor.css new file mode 100644 index 0000000..b2b2641 --- /dev/null +++ b/salesbook.Shared/Components/Pages/Calendar.razor.css @@ -0,0 +1,167 @@ +.calendar { + overflow: hidden; + position: relative; +} + +.week-slider { + width: 100%; + transition: all 0.4s ease; + transform-origin: center center; + transform: scaleY(1); + opacity: 1; + touch-action: pan-x; + user-select: none; + margin: 0 auto; +} + +.week-slider:not(.expanded) { + display: flex; + flex-direction: row; + justify-content: center; + align-items: flex-start; + gap: 0.6rem; + padding-top: 1rem; + padding-bottom: 1rem; + overflow-x: hidden; + overflow-y: visible; +} + +.week-slider.expanded { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 0.4rem; + padding: 1rem; + overflow-y: auto; +} + +.week-slider.expand-animation { animation: expandFromCenter 0.3s ease forwards; } + +.week-slider.collapse-animation { animation: collapseToCenter 0.3s ease forwards; } + +@keyframes expandFromCenter { + from { + transform: scaleY(0.6); + opacity: 0; + } + + to { + transform: scaleY(1); + opacity: 1; + } +} + +@keyframes collapseToCenter { + from { + transform: scaleY(1); + opacity: 1; + } + + to { + transform: scaleY(0.6); + opacity: 0; + } +} + +.week-day { + display: flex; + flex-direction: column; + align-items: center; + max-width: 60px; + flex: 1 1 0; + gap: 0.2rem; +} + + .week-day > div:first-child { + font-size: 0.8rem; + color: var(--mud-palette-text-primary); + margin-bottom: 0.2rem; + font-weight: 500; + } + +.day { + background: var(--mud-palette-surface); + border-radius: 10px; + text-align: center; + cursor: pointer; + transition: background 0.3s ease, transform 0.2s ease; + font-size: 0.95rem; + box-shadow: var(--custom-box-shadow); + width: 38px; + height: 38px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + color: var(--mud-palette-text-primary); + border: 1px solid var(--mud-palette-surface); + margin: 0 auto; +} + +.day:hover { transform: scale(1.08); } + +.week-slider:not(.expanded) .day { + padding: 0; + min-width: 38px; + min-height: 38px; + max-width: 48px; + max-height: 48px; +} + +.day.selected { + background: var(--mud-palette-tertiary); + border: 1px solid var(--mud-palette-tertiary); + color: var(--mud-palette-secondary); +} + +.day.today { border: 1px solid var(--mud-palette-primary); } + +.appointments { + display: flex; + gap: 1rem; + overflow-y: auto; + flex-direction: column; + -ms-overflow-style: none; + scrollbar-width: none; + padding-bottom: 70px; + height: calc(100% - 130px); +} + +.appointments.ah-calendar-m { height: calc(100% - 315px) !important; } + +.appointments::-webkit-scrollbar { display: none; } + +.appointment { + background: var(--mud-palette-surface); + border-radius: 8px; + padding: 0.8rem; + margin-bottom: 0.5rem; + box-shadow: var(--custom-box-shadow); +} + +.toggle-month { + background: none; + border: none; + color: var(--mud-palette-text-primary); + font-size: 1rem; + cursor: pointer; +} + +.event-dot-container { + display: flex; + gap: 5px; + flex-direction: row; +} + +.event-dot { + height: 5px; + width: 5px; + border-radius: 50%; +} + +.event-dot.memo { background-color: var(--mud-palette-info-darken); } + +.event-dot.interna { background-color: var(--mud-palette-success-darken); } + +.event-dot.commessa { background-color: var(--mud-palette-warning); } + +@supports (-webkit-touch-callout: none) { .appointments { padding-bottom: calc(60px + env(safe-area-inset-bottom)) !important; } } \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/Home.razor b/salesbook.Shared/Components/Pages/Home.razor new file mode 100644 index 0000000..98f480b --- /dev/null +++ b/salesbook.Shared/Components/Pages/Home.razor @@ -0,0 +1,22 @@ +@page "/" +@using salesbook.Shared.Core.Interface +@attribute [Authorize] +@inject IFormFactor FormFactor +@inject INetworkService NetworkService + +@code +{ + protected override Task OnInitializedAsync() + { + var lastSyncDate = LocalStorage.Get("last-sync"); + + if (!FormFactor.IsWeb() && NetworkService.IsNetworkAvailable() && lastSyncDate.Equals(DateTime.MinValue)) + { + NavigationManager.NavigateTo("/sync"); + return base.OnInitializedAsync(); + } + + NavigationManager.NavigateTo("/Calendar"); + return base.OnInitializedAsync(); + } +} diff --git a/salesbook.Shared/Components/Pages/Login.razor b/salesbook.Shared/Components/Pages/Login.razor new file mode 100644 index 0000000..fd39faf --- /dev/null +++ b/salesbook.Shared/Components/Pages/Login.razor @@ -0,0 +1,113 @@ +@page "/login" +@using salesbook.Shared.Components.Layout.Spinner +@using salesbook.Shared.Core.Services +@inject IUserAccountService UserAccountService +@inject AppAuthenticationStateProvider AuthenticationStateProvider + +@if (Spinner) +{ + +} +else +{ + +} + +@code { + private SignIn UserData { get; } = new(); + private bool Spinner { get; set; } + private string ErrorMessage { get; set; } = ""; + private bool _attemptFailed; + + private bool _isShow; + private InputType _passwordInput = InputType.Password; + private string _passwordInputIcon = Icons.Material.Rounded.VisibilityOff; + + private void ShowPassword() + { + @if (_isShow) + { + _isShow = false; + _passwordInputIcon = Icons.Material.Rounded.VisibilityOff; + _passwordInput = InputType.Password; + } + else + { + _isShow = true; + _passwordInputIcon = Icons.Material.Rounded.Visibility; + _passwordInput = InputType.Text; + } + } + + protected override void OnInitialized() + { + UserData.CodHash = LocalStorage.GetString("codHash"); + StateHasChanged(); + } + + private async Task SignInUser() + { + _attemptFailed = false; + if (!string.IsNullOrEmpty(UserData.Username) && !string.IsNullOrEmpty(UserData.Password) && !string.IsNullOrEmpty(UserData.CodHash)) + { + Spinner = true; + StateHasChanged(); + + try + { + await UserAccountService.Login(UserData.Username, UserData.Password, UserData.CodHash); + AuthenticationStateProvider.NotifyAuthenticationState(); //Chiamato per forzare il refresh + + LocalStorage.SetString("codHash", UserData.CodHash); + NavigationManager.NavigateTo("/"); + StateHasChanged(); + } + catch (Exception e) + { + Spinner = false; + StateHasChanged(); + + ErrorMessage = e.Message; + _attemptFailed = true; + Console.WriteLine(e); + // Logger<>.LogError(e, e.Message); + } + } + } + + public class SignIn + { + public string? Username { get; set; } + public string? Password { get; set; } + public string? CodHash { get; set; } + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/Login.razor.css b/salesbook.Shared/Components/Pages/Login.razor.css new file mode 100644 index 0000000..88e9e8f --- /dev/null +++ b/salesbook.Shared/Components/Pages/Login.razor.css @@ -0,0 +1,54 @@ +.login-page { + height: 100%; + display: flex; + flex-direction: column; + background: var(--mud-palette-surface); +} + +.container-top-logo > .logo { + width: 50%; +} + +.container-login > span { + font-size: large; + font-weight: 900; + text-align: center; +} + +.container-top-logo { + height: 35vh; + display: flex; + align-items: center; + justify-content: center; + z-index: 10; +} + +.login-form-container { + display: flex; + flex-direction: column; + gap: 1rem; +} + +.container-login { + height: 100%; + display: flex; + flex-direction: column; + padding: 4px 16px 16px; + justify-content: space-between; +} + +.login-footer { + width: 100%; + display: flex; + justify-content: center; +} + +.login-footer span { + font-size: 9px; + color: var(--mud-palette-gray-darker); +} + +.login-footer img { + height: 15px; + margin-left: 4px; +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/Notifications.razor b/salesbook.Shared/Components/Pages/Notifications.razor new file mode 100644 index 0000000..9579556 --- /dev/null +++ b/salesbook.Shared/Components/Pages/Notifications.razor @@ -0,0 +1,14 @@ +@page "/Notifications" +@attribute [Authorize] +@using salesbook.Shared.Components.Layout +@using salesbook.Shared.Components.SingleElements + + + +
+ +
+ +@code { + +} \ No newline at end of file diff --git a/Template.Shared/Components/Pages/Workout.razor.css b/salesbook.Shared/Components/Pages/Notifications.razor.css similarity index 100% rename from Template.Shared/Components/Pages/Workout.razor.css rename to salesbook.Shared/Components/Pages/Notifications.razor.css diff --git a/salesbook.Shared/Components/Pages/PersonalInfo.razor b/salesbook.Shared/Components/Pages/PersonalInfo.razor new file mode 100644 index 0000000..b3f2bd3 --- /dev/null +++ b/salesbook.Shared/Components/Pages/PersonalInfo.razor @@ -0,0 +1,164 @@ +@page "/PersonalInfo" +@attribute [Authorize] +@using salesbook.Shared.Components.Layout +@using salesbook.Shared.Core.Authorization.Enum +@using salesbook.Shared.Core.Interface +@using salesbook.Shared.Core.Services +@inject AppAuthenticationStateProvider AuthenticationStateProvider +@inject INetworkService NetworkService +@inject IFormFactor FormFactor + + + +@if (IsLoggedIn) +{ +
+
+
+ + @UtilityString.ExtractInitials(UserSession.User.Fullname) + + +
+ @UserSession.User.Fullname + @if (UserSession.User.KeyGroup is not null) + { + @(((KeyGroupEnum)UserSession.User.KeyGroup).ConvertToHumanReadable()) + } +
+
+ +
+ + +
+ +
+ + Sincronizza + + +
+ + + Ripristina dati + +
+ +
+ + Esci + +
+
+} + +@code { + private bool Unavailable { get; set; } + private bool IsLoggedIn { get; set; } + private DateTime LastSync { get; set; } + + protected override async Task OnInitializedAsync() + { + IsLoggedIn = await UserSession.IsLoggedIn(); + await LoadData(); + } + + private async Task LoadData() + { + await Task.Run(() => + { + Unavailable = FormFactor.IsWeb() || !NetworkService.IsNetworkAvailable(); + LastSync = LocalStorage.Get("last-sync"); + }); + + StateHasChanged(); + } + + private void OpenSettings() => + NavigationManager.NavigateTo("/settings/Profilo"); + + private async Task Logout() + { + await AuthenticationStateProvider.SignOut(); + IsLoggedIn = await UserSession.IsLoggedIn(); + StateHasChanged(); + } + + private void UpdateDb(bool withData = false) + { + var absoluteUri = NavigationManager.ToAbsoluteUri(NavigationManager.Uri); + var pathAndQuery = absoluteUri.Segments.Length > 1 ? absoluteUri.PathAndQuery : null; + + string path; + + if (withData) + path = pathAndQuery == null ? $"/sync/{DateTime.Today:yyyy-MM-dd}" : $"/sync/{DateTime.Today:yyyy-MM-dd}?path=" + System.Web.HttpUtility.UrlEncode(pathAndQuery); + else + path = pathAndQuery == null ? "/sync" : "/sync?path=" + System.Web.HttpUtility.UrlEncode(pathAndQuery); + + NavigationManager.NavigateTo(path, replace: true); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/PersonalInfo.razor.css b/salesbook.Shared/Components/Pages/PersonalInfo.razor.css new file mode 100644 index 0000000..5ebd0cc --- /dev/null +++ b/salesbook.Shared/Components/Pages/PersonalInfo.razor.css @@ -0,0 +1,83 @@ +.container-primary-info { + box-shadow: var(--custom-box-shadow); + width: 100%; + margin-bottom: 2rem; + border-radius: 12px; +} + +.container-primary-info .divider { + margin: 0 0 0 7rem; + width: unset; +} + +.section-primary-info { + display: flex; + flex-direction: row; + align-items: center; + gap: 1.5rem; + padding: .8rem 1.2rem .4rem; +} + +.personal-info { + display: flex; + flex-direction: column; + align-items: flex-start; + line-height: normal; +} + +.info-nome { + color: var(--mud-palette-text-primary); + font-weight: 800; + font-size: x-large; +} + +.info-section { + color: var(--mud-palette-gray-default); + font-size: medium; + font-weight: 600; +} + +.section-info { + display: flex; + justify-content: space-between; + flex-direction: row; + padding: .4rem 1.2rem .8rem; +} + +.section-personal-info { + display: flex; + flex-direction: column; +} + +.section-personal-info > div { + display: flex; + flex-direction: column; + line-height: normal; + margin: .25rem 0; +} + +.info-title { + color: var(--mud-palette-gray-darker); + font-weight: 800; +} + +.info-text { + color: var(--mud-palette-text-secondary); + font-weight: 700; + font-size: small; +} + +.content ::deep .user-button { border: 1px solid var(--card-border-color) !important; } + +.user-button > i { font-size: large; } + +.user-button > span { + font-size: medium; + font-weight: 600; +} + +.status { font-weight: 700; } + +.status.online { color: var(--mud-palette-success); } + +.status.offline { color: var(--mud-palette-error); } \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/Settings.razor b/salesbook.Shared/Components/Pages/Settings.razor new file mode 100644 index 0000000..da2ce82 --- /dev/null +++ b/salesbook.Shared/Components/Pages/Settings.razor @@ -0,0 +1,16 @@ +@page "/settings" +@page "/settings/{BackTo}" +@using salesbook.Shared.Components.Layout + + + +
+ +
+ +@code { + [Parameter] public string BackTo { get; set; } = ""; + + + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/SyncPage.razor b/salesbook.Shared/Components/Pages/SyncPage.razor new file mode 100644 index 0000000..80484a0 --- /dev/null +++ b/salesbook.Shared/Components/Pages/SyncPage.razor @@ -0,0 +1,105 @@ +@page "/sync" +@page "/sync/{DateFilter}" +@using salesbook.Shared.Components.Layout.Spinner +@using salesbook.Shared.Core.Interface +@inject ISyncDbService syncDb +@inject IManageDataService manageData + + + +@code { + [Parameter] public string? DateFilter { get; set; } + + private Dictionary Elements { get; set; } = new(); + + private bool _hasStarted = false; + private int _completedCount = 0; + + protected override void OnInitialized() + { + Elements["Attività"] = false; + Elements["Commesse"] = false; + Elements["Clienti"] = false; + Elements["Prospect"] = false; + Elements["Impostazioni"] = false; + } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender && !_hasStarted) + { + _hasStarted = true; + + if (DateFilter is null) + { + await manageData.ClearDb(); + } + + await Task.WhenAll( + RunAndTrack(SetActivity), + RunAndTrack(SetClienti), + RunAndTrack(SetProspect), + RunAndTrack(SetCommesse), + RunAndTrack(SetSettings) + ); + } + } + + private async Task RunAndTrack(Func func) + { + await func(); + + _completedCount++; + if (_completedCount == Elements.Count) + { + LocalStorage.Set("last-sync", DateTime.Now); + + var pathQuery = System.Web.HttpUtility.ParseQueryString(new UriBuilder(NavigationManager.Uri).Query); + var originalPath = pathQuery["path"] ?? null; + var path = originalPath ?? "/Calendar"; + + NavigationManager.NavigateTo(path, replace: true); + } + } + + private async Task SetActivity() + { + await Task.Run(async () => { await syncDb.GetAndSaveActivity(DateFilter); }); + + Elements["Attività"] = true; + StateHasChanged(); + } + + private async Task SetClienti() + { + await Task.Run(async () => { await syncDb.GetAndSaveClienti(DateFilter); }); + + Elements["Clienti"] = true; + StateHasChanged(); + } + + private async Task SetProspect() + { + await Task.Run(async () => { await syncDb.GetAndSaveProspect(DateFilter); }); + + Elements["Prospect"] = true; + StateHasChanged(); + } + + private async Task SetCommesse() + { + await Task.Run(async () => { await syncDb.GetAndSaveCommesse(DateFilter); }); + + Elements["Commesse"] = true; + StateHasChanged(); + } + + private async Task SetSettings() + { + await Task.Run(async () => { await syncDb.GetAndSaveSettings(DateFilter); }); + + Elements["Impostazioni"] = true; + StateHasChanged(); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/User.razor b/salesbook.Shared/Components/Pages/User.razor new file mode 100644 index 0000000..5b72eac --- /dev/null +++ b/salesbook.Shared/Components/Pages/User.razor @@ -0,0 +1,121 @@ +@page "/User/{CodAnag}" +@attribute [Authorize] +@using salesbook.Shared.Components.Layout +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Interface +@using salesbook.Shared.Components.Layout.Spinner +@inject IManageDataService ManageData + + + +@if (IsLoading) +{ + +} +else +{ +
+
+
+ + @UtilityString.ExtractInitials(Anag.RagSoc) + + +
+ @Anag.RagSoc + @if (UserSession.User.KeyGroup is not null) + { + @Anag.Indirizzo + @($"{Anag.Cap} - {Anag.Citta} ({Anag.Prov})") + } +
+
+ +
+ + +
+ + @if (PersRif is { Count: > 0 }) + { +
+ + @{ + var index = PersRif.IndexOf(person); + var isLast = index == PersRif.Count - 1; + } + + @if (!isLast) + { +
+ } +
+
+ } + +
+ + Aggiungi contatto + +
+
+} + +@code { + [Parameter] public string CodAnag { get; set; } + + private AnagClie Anag { get; set; } = new(); + private List? PersRif { get; set; } + + private bool IsLoading { get; set; } = true; + + protected override async Task OnInitializedAsync() + { + await LoadData(); + } + + private async Task LoadData() + { + Anag = (await ManageData.GetTable(x => x.CodAnag.Equals(CodAnag))).Last(); + PersRif = await ManageData.GetTable(x => x.CodAnag.Equals(Anag.CodAnag)); + + IsLoading = false; + StateHasChanged(); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/User.razor.css b/salesbook.Shared/Components/Pages/User.razor.css new file mode 100644 index 0000000..f472205 --- /dev/null +++ b/salesbook.Shared/Components/Pages/User.razor.css @@ -0,0 +1,147 @@ +.container-primary-info { + box-shadow: var(--custom-box-shadow); + width: 100%; + margin-bottom: 2rem; + border-radius: 16px; +} + +.container-primary-info .divider { + margin: 0 0 0 7rem; + width: unset; +} + +.section-primary-info { + display: flex; + flex-direction: row; + align-items: center; + gap: 1.5rem; + padding: .8rem 1.2rem .4rem; +} + +.personal-info { + display: flex; + flex-direction: column; + align-items: flex-start; + line-height: normal; +} + +.info-nome { + color: var(--mud-palette-text-primary); + font-weight: 800; + font-size: medium; +} + +.info-section { + color: var(--mud-palette-gray-default); + font-size: small; + font-weight: 600; +} + +.section-info { + display: flex; + justify-content: space-between; + flex-direction: row; + padding: .4rem 1.2rem .8rem; +} + +.section-personal-info { + display: flex; + flex-direction: column; +} + +.section-personal-info > div { + display: flex; + flex-direction: column; + line-height: normal; + margin: .25rem 0; +} + +.info-title { + color: var(--mud-palette-gray-darker); + font-weight: 800; +} + +.info-text { + color: var(--mud-palette-text-secondary); + font-weight: 700; + font-size: small; +} + +.content ::deep .user-button { border: 1px solid var(--card-border-color) !important; } + +.user-button > i { font-size: large; } + +.user-button > span { + font-size: medium; + font-weight: 600; +} + +.status { font-weight: 700; } + +.status.online { color: var(--mud-palette-success); } + +.status.offline { color: var(--mud-palette-error); } + +.container-button { + width: 100%; + box-shadow: var(--custom-box-shadow); + padding: .25rem 0; + border-radius: 16px; +} + +.container-button .divider { + margin: .5rem 0 .5rem 3rem; + width: unset; +} + +.container-button ::deep .button-settings { border: none !important; } + +.container-button ::deep .button-settings .mud-icon-root { + border-radius: 6px; + padding: 2px; + min-width: 25px; + min-height: 25px; +} + +.container-button ::deep .button-settings.infoText { color: var(--mud-palette-info); } + +.container-button ::deep .button-settings.green-icon .mud-icon-root { + border: 1px solid var(--mud-palette-success); + background: hsl(from var(--mud-palette-success-lighten) h s 95%); + color: var(--mud-palette-success-darken); +} + +.container-button ::deep .button-settings.red-icon .mud-icon-root { + border: 1px solid var(--mud-palette-error); + background: hsl(from var(--mud-palette-error-lighten) h s 95%); + color: var(--mud-palette-error-darken); +} + +.container-button ::deep .button-settings .mud-button-label { + justify-content: flex-start; + text-transform: capitalize; + font-size: 1rem; +} + +.container-button ::deep .button-settings.exit { padding: 0; } + +.container-button ::deep .button-settings.exit .mud-button-label { + justify-content: center; + font-size: 1.1rem; + line-height: normal; +} + +.container-pers-rif { + width: 100%; + display: flex; + flex-direction: column; + gap: 1rem; + margin-bottom: 1rem; + box-shadow: var(--custom-box-shadow); + border-radius: 16px; +} + +.container-pers-rif .divider { + margin: 0 0 0 3.5rem; + width: unset; +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/Users.razor b/salesbook.Shared/Components/Pages/Users.razor new file mode 100644 index 0000000..e551522 --- /dev/null +++ b/salesbook.Shared/Components/Pages/Users.razor @@ -0,0 +1,117 @@ +@page "/Users" +@attribute [Authorize] +@using salesbook.Shared.Components.Layout +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Interface +@inject IManageDataService ManageData + + + + + +
+ @if (GroupedUserList?.Count > 0) + { + + @if (item.ShowHeader) + { +
@item.HeaderLetter
+ } + +
+ } +
+ +@code { + private List GroupedUserList { get; set; } = []; + private List FilteredGroupedUserList { get; set; } = []; + private string? TextToFilter { get; set; } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + await LoadData(); + StateHasChanged(); + } + } + + private async Task LoadData() + { + var users = await ManageData.GetTable(x => x.FlagStato.Equals("A")); + + var sortedUsers = users + .Where(u => !string.IsNullOrWhiteSpace(u.RagSoc)) + .OrderBy(u => + { + var firstChar = char.ToUpper(u.RagSoc[0]); + return char.IsLetter(firstChar) ? firstChar.ToString() : "ZZZ"; + }) + .ThenBy(u => u.RagSoc) + .ToList(); + + GroupedUserList = []; + + string? lastHeader = null; + + foreach (var user in sortedUsers) + { + var firstChar = char.ToUpper(user.RagSoc[0]); + var currentLetter = char.IsLetter(firstChar) ? firstChar.ToString() : "#"; + + var showHeader = currentLetter != lastHeader; + lastHeader = currentLetter; + + GroupedUserList.Add(new UserDisplayItem + { + User = user, + ShowHeader = showHeader, + HeaderLetter = currentLetter + }); + } + + FilterUsers(true); + } + + private class UserDisplayItem + { + public required AnagClie User { get; set; } + public bool ShowHeader { get; set; } + public string? HeaderLetter { get; set; } + } + + private void FilterUsers() => FilterUsers(false); + + private void FilterUsers(bool clearFilter) + { + if (clearFilter) + { + TextToFilter = null; + FilteredGroupedUserList = GroupedUserList; + StateHasChanged(); + return; + } + + if (TextToFilter == null) return; + + FilteredGroupedUserList = GroupedUserList.FindAll(x => + x.User.RagSoc.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase) || + x.User.Indirizzo.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase) || + (x.User.Telefono != null && x.User.Telefono.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase)) || + (x.User.EMail != null && x.User.EMail.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase)) || + x.User.PartIva.Contains(TextToFilter, StringComparison.OrdinalIgnoreCase) + ); + + StateHasChanged(); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Pages/Users.razor.css b/salesbook.Shared/Components/Pages/Users.razor.css new file mode 100644 index 0000000..b9d2533 --- /dev/null +++ b/salesbook.Shared/Components/Pages/Users.razor.css @@ -0,0 +1,33 @@ +.users { + display: flex; + gap: 1rem; + overflow-y: auto; + flex-direction: column; + -ms-overflow-style: none; + scrollbar-width: none; + padding-bottom: 70px; + height: 100%; +} + +.users .divider { + margin: .1rem 0; + margin-left: 3rem; +} + +.users .input-card { margin: 0 !important; } + +.letter-header { + border-bottom: 1px solid var(--card-border-color); + font-weight: bolder; +} + +.search-box { + position: sticky; + top: 0; + background: var(--mud-palette-surface); + padding-bottom: .5rem; +} + +.search-box .input-card { + margin: 0 !important; +} \ No newline at end of file diff --git a/salesbook.Shared/Components/Routes.razor b/salesbook.Shared/Components/Routes.razor new file mode 100644 index 0000000..e0d21f8 --- /dev/null +++ b/salesbook.Shared/Components/Routes.razor @@ -0,0 +1,48 @@ +@using salesbook.Shared.Components.SingleElements +@inject NavigationManager NavigationManager + + + + + + + + +

Authorizing page

+
+ + @if (context.User.Identity?.IsAuthenticated != true) + { + NavigationManager.NavigateTo("/login"); + } + else + { +

You are not authorized to access this resource.

+ } +
+
+ +
+ + Not found + +

Sorry, there's nothing at this address.

+
+
+
+
+
+ + + + +
+ +@code { + + private ErrorBoundary? ErrorBoundary { get; set; } + private ExceptionModal ExceptionModal { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/BottomSheet/FilterActivity.razor b/salesbook.Shared/Components/SingleElements/BottomSheet/FilterActivity.razor new file mode 100644 index 0000000..cc17dc3 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/BottomSheet/FilterActivity.razor @@ -0,0 +1,151 @@ +@using salesbook.Shared.Core.Dto +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Helpers.Enum +@using salesbook.Shared.Core.Interface +@inject IManageDataService manageData + +
+ +
+
+
+ + Filtri + + +
+ +
+ + + +
+ +
+
+ Assegnata a + + + +
+ +
+ +
+ Tipo + + + @foreach (var type in ActivityType) + { + @type.ActivityTypeId + } + +
+ +
+ +
+ Esito + + + @foreach (var result in ActivityResult) + { + @result.ActivityResultId + } + +
+ +
+ +
+ Categoria + + + @foreach (var category in CategoryList) + { + @category.ConvertToHumanReadable() + } + +
+
+ +
+ Pulisci + Filtra +
+
+
+ +@code { + [Parameter] public bool IsSheetVisible { get; set; } + [Parameter] public EventCallback IsSheetVisibleChanged { get; set; } + + [Parameter] public FilterActivityDTO Filter { get; set; } + [Parameter] public EventCallback FilterChanged { get; set; } + + private List ActivityResult { get; set; } = []; + private List ActivityType { get; set; } = []; + private List Users { get; set; } = []; + private List CategoryList { get; set; } = []; + + protected override async Task OnParametersSetAsync() + { + if (IsSheetVisible) + await LoadData(); + } + + private string GetMultiSelectionUser(List selectedValues) + { + return $"{selectedValues.Count} Utent{(selectedValues.Count != 1 ? "i selezionati" : "e selezionato")}"; + } + + private async Task LoadData() + { + Users = await manageData.GetTable(); + ActivityResult = await manageData.GetTable(); + ActivityType = await manageData.GetTable(x => x.FlagTipologia.Equals("A")); + CategoryList = ActivityCategoryHelper.AllActivityCategory; + + StateHasChanged(); + } + + private void CloseBottomSheet() + { + IsSheetVisible = false; + IsSheetVisibleChanged.InvokeAsync(IsSheetVisible); + } + + private void OnFilterButton() + { + FilterChanged.InvokeAsync(Filter); + CloseBottomSheet(); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/BottomSheet/FilterActivity.razor.css b/salesbook.Shared/Components/SingleElements/BottomSheet/FilterActivity.razor.css new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/BottomSheet/FilterActivity.razor.css @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/BottomSheet/FilterUsers.razor b/salesbook.Shared/Components/SingleElements/BottomSheet/FilterUsers.razor new file mode 100644 index 0000000..cc17dc3 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/BottomSheet/FilterUsers.razor @@ -0,0 +1,151 @@ +@using salesbook.Shared.Core.Dto +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Helpers.Enum +@using salesbook.Shared.Core.Interface +@inject IManageDataService manageData + +
+ +
+
+
+ + Filtri + + +
+ +
+ + + +
+ +
+
+ Assegnata a + + + +
+ +
+ +
+ Tipo + + + @foreach (var type in ActivityType) + { + @type.ActivityTypeId + } + +
+ +
+ +
+ Esito + + + @foreach (var result in ActivityResult) + { + @result.ActivityResultId + } + +
+ +
+ +
+ Categoria + + + @foreach (var category in CategoryList) + { + @category.ConvertToHumanReadable() + } + +
+
+ +
+ Pulisci + Filtra +
+
+
+ +@code { + [Parameter] public bool IsSheetVisible { get; set; } + [Parameter] public EventCallback IsSheetVisibleChanged { get; set; } + + [Parameter] public FilterActivityDTO Filter { get; set; } + [Parameter] public EventCallback FilterChanged { get; set; } + + private List ActivityResult { get; set; } = []; + private List ActivityType { get; set; } = []; + private List Users { get; set; } = []; + private List CategoryList { get; set; } = []; + + protected override async Task OnParametersSetAsync() + { + if (IsSheetVisible) + await LoadData(); + } + + private string GetMultiSelectionUser(List selectedValues) + { + return $"{selectedValues.Count} Utent{(selectedValues.Count != 1 ? "i selezionati" : "e selezionato")}"; + } + + private async Task LoadData() + { + Users = await manageData.GetTable(); + ActivityResult = await manageData.GetTable(); + ActivityType = await manageData.GetTable(x => x.FlagTipologia.Equals("A")); + CategoryList = ActivityCategoryHelper.AllActivityCategory; + + StateHasChanged(); + } + + private void CloseBottomSheet() + { + IsSheetVisible = false; + IsSheetVisibleChanged.InvokeAsync(IsSheetVisible); + } + + private void OnFilterButton() + { + FilterChanged.InvokeAsync(Filter); + CloseBottomSheet(); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/BottomSheet/FilterUsers.razor.css b/salesbook.Shared/Components/SingleElements/BottomSheet/FilterUsers.razor.css new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/BottomSheet/FilterUsers.razor.css @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/BottomSheet/SelectEsito.razor b/salesbook.Shared/Components/SingleElements/BottomSheet/SelectEsito.razor new file mode 100644 index 0000000..670159d --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/BottomSheet/SelectEsito.razor @@ -0,0 +1,134 @@ +@using System.Threading.Channels +@using salesbook.Shared.Core.Dto +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Interface +@inject IManageDataService ManageData + +
+ +
+
+
+ + Esito + + +
+ +
+
+ Data effettiva + + +
+ +
+ +
+ Inizio + + +
+ +
+ +
+ Fine + + +
+
+ +
+
+ Esito + + + @foreach (var result in ActivityResult) + { + @result.ActivityResultId + } + +
+
+ +
+ +
+ +
+ Salva +
+
+
+ +@code { + [Parameter] public bool IsSheetVisible { get; set; } + [Parameter] public EventCallback IsSheetVisibleChanged { get; set; } + + [Parameter] public ActivityDTO ActivityModel { get; set; } + [Parameter] public EventCallback ActivityModelChanged { get; set; } + + private List ActivityResult { get; set; } = []; + + private DateTime? EffectiveDate { get; set; } = DateTime.Today; + + private TimeSpan EffectiveTime { get; set; } + private TimeSpan EffectiveEndTime { get; set; } + + protected override async Task OnParametersSetAsync() + { + if (IsSheetVisible) + await LoadData(); + } + + private async Task LoadData() + { + ActivityResult = await ManageData.GetTable(); + + EffectiveTime = ActivityModel.EffectiveTime?.TimeOfDay ?? TimeSpan.Zero; + EffectiveEndTime = ActivityModel.EffectiveEndtime?.TimeOfDay ?? TimeSpan.Zero; + StateHasChanged(); + } + + private void CloseBottomSheet(bool save) + { + if (save) + { + if (EffectiveDate != null) + { + ActivityModel.EffectiveTime = new DateTime(EffectiveDate!.Value.Year, EffectiveDate!.Value.Month, EffectiveDate!.Value.Day, + EffectiveTime.Hours, EffectiveTime.Minutes, EffectiveTime.Seconds); + + ActivityModel.EffectiveEndtime = new DateTime(EffectiveDate!.Value.Year, EffectiveDate!.Value.Month, EffectiveDate!.Value.Day, + EffectiveEndTime.Hours, EffectiveEndTime.Minutes, EffectiveEndTime.Seconds); + } + + if (ActivityModel.ActivityResultId.IsNullOrEmpty()) + { + Snackbar.Clear(); + Snackbar.Configuration.PositionClass = Defaults.Classes.Position.TopCenter; + + Snackbar.Add("Esito obbligatorio!", Severity.Error); + return; + } + } + + IsSheetVisible = false; + IsSheetVisibleChanged.InvokeAsync(IsSheetVisible); + + if (save) + { + ActivityModelChanged.InvokeAsync(ActivityModel); + } + } + + private void CloseBottomSheet() => CloseBottomSheet(false); + + private void OnAfterChangeTime() + { + if (EffectiveEndTime < EffectiveTime) + EffectiveEndTime = EffectiveTime + TimeSpan.FromHours(1); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/BottomSheet/SelectEsito.razor.css b/salesbook.Shared/Components/SingleElements/BottomSheet/SelectEsito.razor.css new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/BottomSheet/SelectEsito.razor.css @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/Card/ActivityCard.razor b/salesbook.Shared/Components/SingleElements/Card/ActivityCard.razor new file mode 100644 index 0000000..b81a5f6 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/Card/ActivityCard.razor @@ -0,0 +1,96 @@ +@using salesbook.Shared.Core.Dto +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Helpers.Enum +@inject IDialogService Dialog + +
+
+
+
+ + @switch (Activity.Category) + { + case ActivityCategoryEnum.Commessa: + @Activity.Commessa + break; + case ActivityCategoryEnum.Interna: + @Activity.Cliente + break; + case ActivityCategoryEnum.Memo: + @Activity.ActivityDescription + break; + default: + @("") + break; + } + +
+ + @if (Activity.EffectiveTime is null) + { + @($"{Activity.EstimatedTime:t}") + } + else + { + @($"{Activity.EffectiveTime:t}") + } + +
+
+ @if (Activity.Category != ActivityCategoryEnum.Memo) + { + @Activity.ActivityDescription + } +
+
+ +
+ @if (Durata != null && (Durata.Value.TotalHours > 0 || Durata.Value.Minutes > 0)) + { + var ore = (int)Durata.Value.TotalHours; + var minuti = Durata.Value.Minutes; + + + @(ore > 0 ? $"{ore}h{(minuti > 0 ? $" {minuti}m" : "")}" : $"{minuti}m") + + } + @if (Activity.ActivityResultId != null) + { + @Activity.ActivityResultId + } + @Activity.UserName +
+
+ +@code { + [Parameter] public ActivityDTO Activity { get; set; } = new(); + [Parameter] public EventCallback ActivityChanged { get; set; } + [Parameter] public EventCallback ActivityDeleted { get; set; } + + private TimeSpan? Durata { get; set; } + + protected override void OnParametersSet() + { + Durata = Activity switch + { + { EffectiveTime: not null, EffectiveEndtime: not null } => Activity.EffectiveEndtime.Value - Activity.EffectiveTime.Value, + { EstimatedTime: not null, EstimatedEndtime: not null } => Activity.EstimatedEndtime.Value - Activity.EstimatedTime.Value, + _ => null + }; + } + + private async Task OpenActivity() + { + var result = await ModalHelpers.OpenActivityForm(Dialog, null, Activity.ActivityId); + + switch (result) + { + case { Canceled: false, Data: not null } when result.Data.GetType() == typeof(StbActivity): + await ActivityChanged.InvokeAsync(((StbActivity)result.Data).ActivityId); + break; + case { Canceled: false, Data: not null } when result.Data.GetType() == typeof(ActivityDTO): + await ActivityDeleted.InvokeAsync((ActivityDTO)result.Data); + break; + } + } +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/Card/ActivityCard.razor.css b/salesbook.Shared/Components/SingleElements/Card/ActivityCard.razor.css new file mode 100644 index 0000000..947044b --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/Card/ActivityCard.razor.css @@ -0,0 +1,59 @@ +.activity-card { + width: 100%; + display: flex; + flex-direction: column; + padding: .5rem .5rem; + border-radius: 12px; + line-height: normal; + box-shadow: var(--custom-box-shadow); +} + +.activity-card.memo { border-left: 5px solid var(--mud-palette-info-darken); } + +.activity-card.interna { border-left: 5px solid var(--mud-palette-success-darken); } + +.activity-card.commessa { border-left: 5px solid var(--mud-palette-warning); } + +.activity-left-section { + display: flex; + align-items: center; + margin-left: 4px; +} + +.title-section { + display: flex; + flex-direction: row; + justify-content: space-between; + width: 100%; +} + +.activity-hours { + font-weight: 700; + color: var(--mud-palette-text-primary); +} + +.activity-hours-section ::deep .mud-chip { margin: 5px 0 0 !important; } + +.activity-body-section { + width: 100%; + display: flex; + flex-direction: column; +} + +.title-section ::deep > .activity-title { + font-weight: 800 !important; + margin: 0 !important; + line-height: normal !important; + color: var(--mud-palette-text-primary); +} + +.activity-body-section ::deep > .activity-subtitle { + color: var(--mud-palette-gray-darker); + margin: .2rem 0 !important; + line-height: normal !important; +} + +.activity-info-section { + display: flex; + flex-wrap: wrap; +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/Card/ContactCard.razor b/salesbook.Shared/Components/SingleElements/Card/ContactCard.razor new file mode 100644 index 0000000..1b77546 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/Card/ContactCard.razor @@ -0,0 +1,32 @@ +@using salesbook.Shared.Core.Entity + +
+
+ + +
+
+ @UtilityString.FormatString(Contact.PersonaRif).TitleCase +
+ + @if (Contact.Mansione is not null) + { + @UtilityString.FormatString(Contact.Mansione).SentenceCase + } +
+
+
+ @if (!Contact.NumCellulare.IsNullOrEmpty()) + { + + } + + @if (!Contact.EMail.IsNullOrEmpty()){ + + } +
+
+ +@code { + [Parameter] public VtbCliePersRif Contact { get; set; } = new(); +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/Card/ContactCard.razor.css b/salesbook.Shared/Components/SingleElements/Card/ContactCard.razor.css new file mode 100644 index 0000000..3db2239 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/Card/ContactCard.razor.css @@ -0,0 +1,62 @@ +.contact-card { + width: 100%; + display: flex; + flex-direction: row; + padding: 0 .75rem; + border-radius: 16px; + line-height: normal; + justify-content: space-between; + align-items: center; +} + +.contact-card.memo { border-left: 5px solid var(--mud-palette-info-darken); } + +.contact-card.interna { border-left: 5px solid var(--mud-palette-success-darken); } + +.contact-card.commessa { border-left: 5px solid var(--mud-palette-warning); } + +.contact-left-section { + display: flex; + align-items: center; + gap: 1rem; +} + +.title-section { + display: flex; + flex-direction: row; + justify-content: space-between; + width: 100%; +} + +.contact-hours { font-weight: 700; } + +.contact-hours-section ::deep .mud-chip { margin: 5px 0 0 !important; } + +.contact-body-section { + width: 100%; + display: flex; + flex-direction: column; +} + +.title-section ::deep > .contact-title { + font-weight: 700 !important; + margin: 0 !important; + line-height: normal !important; +} + +.contact-body-section ::deep > .contact-subtitle { + color: var(--mud-palette-gray-darker); + margin: .2rem 0 !important; + line-height: normal !important; +} + +.contact-info-section { + display: flex; + flex-wrap: wrap; +} + +.contact-right-section { + display: flex; + flex-direction: row; + gap: 1rem; +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/Card/UserCard.razor b/salesbook.Shared/Components/SingleElements/Card/UserCard.razor new file mode 100644 index 0000000..561fbe2 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/Card/UserCard.razor @@ -0,0 +1,74 @@ +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Interface +@inject IManageDataService ManageData + +
+
+
+
+ + +
+
+ @User.RagSoc + +
+ +
+ @if (ShowSectionCommesse && IsLoading) + { + + } + else + { + @if (!Commesse.IsNullOrEmpty()) + { +
+ @foreach (var commessa in Commesse!) + { +
+ @($"{commessa.CodJcom} - {commessa.Descrizione}") +
+ } +
+ } + else + { +
+ Nessuna commessa presente +
+ } + } +
+
+
+
+
+
+ +@code { + [Parameter] public AnagClie User { get; set; } = new(); + + private List? Commesse { get; set; } + private bool IsLoading { get; set; } = true; + private bool ShowSectionCommesse { get; set; } + + private void OpenUser() => + NavigationManager.NavigateTo($"/User/{User.CodAnag}"); + + private async Task ShowCommesse() + { + ShowSectionCommesse = !ShowSectionCommesse; + + if (ShowSectionCommesse) + { + Commesse = await ManageData.GetTable(x => x.CodAnag.Equals(User.CodAnag)); + IsLoading = false; + StateHasChanged(); + return; + } + + IsLoading = true; + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/Card/UserCard.razor.css b/salesbook.Shared/Components/SingleElements/Card/UserCard.razor.css new file mode 100644 index 0000000..34936c7 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/Card/UserCard.razor.css @@ -0,0 +1,90 @@ +.user-card-card { width: 100%; } + +.user-card-card.memo { border-left: 5px solid var(--mud-palette-info-darken); } + +.user-card-card.interna { border-left: 5px solid var(--mud-palette-success-darken); } + +.user-card-card.commessa { border-left: 5px solid var(--mud-palette-warning); } + +.user-card-left-section { + display: flex; + align-items: center; +} + +.title-section { + display: flex; + flex-direction: row; + width: 100%; + align-items: center; + gap: .75rem; +} + +.user-card-hours { font-weight: 700; } + +.user-card-hours-section ::deep .mud-chip { margin: 5px 0 0 !important; } + +.user-card-body-section { + width: 100%; + display: flex; + flex-direction: column; +} + +.user-card-right-section { + width: 100%; + border-bottom: 1px solid var(--card-border-color); +} + +.user-card-title { + display: flex; + align-items: center; + min-height: 32px; + padding-left: .25rem; + justify-content: space-between; +} + +.user-card-title ::deep > h3 { + font-weight: 700 !important; + margin: 0 !important; + line-height: normal !important; + font-size: .85rem; +} + +.user-card-body-section ::deep > .user-card-subtitle { + color: var(--mud-palette-gray-darker); + margin: .2rem 0 !important; + line-height: normal !important; +} + +.user-card-info-section { + display: flex; + flex-wrap: wrap; +} + +.title-section ::deep > .mud-icon-root { + background: var(--mud-palette-gray-lighter); + padding: .25rem; + border-radius: 50%; +} + +.user-card-subtitle { + overflow: hidden; + max-height: 0; + opacity: 0; + transition: max-height 0.4s ease, opacity 0.4s ease; + margin-top: 0; +} + +.user-card-subtitle.show { + max-height: 250px; + opacity: 1; +} + +.container-commesse { + padding: .5rem; +} + +.commessa { + color: var(--mud-palette-text-secondary); + font-weight: 700; + font-size: small; +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/ExceptionModal.razor b/salesbook.Shared/Components/SingleElements/ExceptionModal.razor new file mode 100644 index 0000000..98df329 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/ExceptionModal.razor @@ -0,0 +1,62 @@ +@using salesbook.Shared.Core.Services +@inject AppAuthenticationStateProvider AuthenticationStateProvider + +
+
+
+ + Ops +
+
+ @if (Exception != null) + { + @Message + } +
+
+
+ Riprova +
+ +
+ Continua +
+
+
+
+ +@code { + [Parameter] public Exception? Exception { get; set; } + [Parameter] public EventCallback OnRetry { get; set; } + [Parameter] public ErrorBoundary? ErrorBoundary { get; set; } + + private string Message { get; set; } = ""; + + protected override void OnInitialized() + { + if (Exception == null) return; + + if (Exception.Message.Contains("Failed to connect to")) + { + var ipPort = Exception.Message.Split("to /")[1]; + + Message = $"Impossibile collegarsi al server ({ipPort})"; + } + else + { + Message = Exception.Message; + } + StateHasChanged(); + } + + private async Task OnRetryClick() + { + await OnRetry.InvokeAsync(); + } + + private async Task OnContinueClick() + { + NavigationManager.NavigateTo("/"); + await OnRetry.InvokeAsync(); + } +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/ExceptionModal.razor.css b/salesbook.Shared/Components/SingleElements/ExceptionModal.razor.css new file mode 100644 index 0000000..bf04036 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/ExceptionModal.razor.css @@ -0,0 +1,61 @@ +.container-modal { + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; +} + +.c-modal { + border-radius: 16px; + box-shadow: var(--exception-box-shadow); + padding: 16px; +} + +.button-container { + display: flex; + gap: 1rem; + flex-direction: row; + align-items: center; + width: 100%; + justify-content: space-between; + margin: 1.5rem 0 0 0; +} + +.text { + font-size: medium; + font-weight: 500; + display: flex; + text-align: center; +} + +.card-button { + text-align: center; + background-color: transparent; + padding: .3rem 1rem; + font-weight: 700; + color: var(--bs-primary-text-emphasis); +} + +.exception-header { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + + .exception-header > i { + font-size: 3rem; + line-height: normal; + color: var(--bs-danger); + } + +.exception-header > span { + font-size: x-large; + font-weight: 700; +} + +code { + width: 100%; + height: auto; + color: var(--bs-gray-dark); +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor b/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor new file mode 100644 index 0000000..dab39d0 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor @@ -0,0 +1,366 @@ +@using System.Globalization +@using System.Text.RegularExpressions +@using CommunityToolkit.Mvvm.Messaging +@using salesbook.Shared.Core.Dto +@using salesbook.Shared.Components.Layout +@using salesbook.Shared.Core.Entity +@using salesbook.Shared.Core.Interface +@using salesbook.Shared.Components.Layout.Overlay +@using salesbook.Shared.Components.SingleElements.BottomSheet +@using salesbook.Shared.Core.Messages.Activity.Copy +@inject IManageDataService ManageData +@inject INetworkService NetworkService +@inject IIntegryApiService IntegryApiService +@inject IMessenger Messenger + + + + + +
+
+ +
+ +
+
+ +
+ +
+ +
+ Commessa + + @if (Commesse.IsNullOrEmpty()) + { + Nessuna commessa presente + } + else + { + + @foreach (var com in Commesse) + { + @($"{com.CodJcom} - {com.Descrizione}") + } + + } +
+
+ +
+
+ Inizio + + +
+ +
+ +
+ Fine + + +
+ +
+ +
+ Avviso + + +
+
+ +
+
+ Assegnata a + + + @foreach (var user in Users) + { + @user.FullName + } + +
+ +
+ +
+ Tipo + + + @foreach (var type in ActivityType) + { + @type.ActivityTypeId + } + +
+ +
+ +
+ Esito + + + @foreach (var result in ActivityResult) + { + @result.ActivityResultId + } + +
+
+ +
+ +
+ + @if (!IsNew) + { +
+ + Duplica + + +
+ + + Elimina + +
+ } +
+ + + + Confermi la cancellazione dell'attività corrente? + + + + Cancella + + + +
+
+ + + + + +@code { + [CascadingParameter] private IMudDialogInstance MudDialog { get; set; } + + [Parameter] public string? Id { get; set; } + [Parameter] public ActivityDTO? ActivityCopied { get; set; } + + private ActivityDTO OriginalModel { get; set; } = new(); + private ActivityDTO ActivityModel { get; set; } = new(); + + private List ActivityResult { get; set; } = []; + private List ActivityType { get; set; } = []; + private List Users { get; set; } = []; + private List Commesse { get; set; } = []; + private List Clienti { get; set; } = []; + private List Pros { get; set; } = []; + + private bool IsNew => Id.IsNullOrEmpty(); + private bool IsView => !NetworkService.IsNetworkAvailable(); + + private string? LabelSave { get; set; } + + //Overlay for save + private bool VisibleOverlay { get; set; } + private bool SuccessAnimation { get; set; } + + private bool OpenEsito { get; set; } = false; + + private MudMessageBox ConfirmDelete { get; set; } + + protected override async Task OnInitializedAsync() + { + _ = LoadData(); + + LabelSave = IsNew ? "Aggiungi" : null; + + if (!Id.IsNullOrEmpty()) + ActivityModel = (await ManageData.GetActivity(x => x.ActivityId.Equals(Id))).Last(); + + if (ActivityCopied != null) + { + ActivityModel = ActivityCopied.Clone(); + } + + await LoadCommesse(); + + if (IsNew) + { + ActivityModel.EstimatedTime = DateTime.Today.Add(TimeSpan.FromHours(DateTime.Now.Hour)); + ActivityModel.EstimatedEndtime = DateTime.Today.Add(TimeSpan.FromHours(DateTime.Now.Hour) + TimeSpan.FromHours(1)); + ActivityModel.UserName = UserSession.User.Username; + } + + OriginalModel = ActivityModel.Clone(); + } + + private async Task Save() + { + if (!CheckPreSave()) return; + + VisibleOverlay = true; + StateHasChanged(); + + var response = await IntegryApiService.SaveActivity(ActivityModel); + + if (response == null) + return; + + var newActivity = response.Last(); + + await ManageData.InsertOrUpdate(newActivity); + + SuccessAnimation = true; + StateHasChanged(); + + await Task.Delay(1250); + + MudDialog.Close(newActivity); + } + + private bool CheckPreSave() + { + Snackbar.Clear(); + Snackbar.Configuration.PositionClass = Defaults.Classes.Position.TopCenter; + + if (!ActivityModel.ActivityTypeId.IsNullOrEmpty()) return true; + Snackbar.Add("Tipo attività obbligatorio!", Severity.Error); + + return false; + } + + private async Task LoadData() + { + Users = await ManageData.GetTable(); + ActivityResult = await ManageData.GetTable(); + Clienti = await ManageData.GetTable(x => x.FlagStato.Equals("A")); + Pros = await ManageData.GetTable(); + ActivityType = await ManageData.GetTable(x => x.FlagTipologia.Equals("A")); + } + + private async Task LoadCommesse() => + Commesse = await ManageData.GetTable(x => x.CodAnag != null && x.CodAnag.Equals(ActivityModel.CodAnag)); + + private async Task?> SearchCliente(string value, CancellationToken token) + { + if (string.IsNullOrEmpty(value)) + return null; + + var listToReturn = new List(); + + listToReturn.AddRange( + Clienti.Where(x => x.RagSoc.Contains(value, StringComparison.OrdinalIgnoreCase)).Select(x => $"{x.CodAnag} - {x.RagSoc}") + ); + + listToReturn.AddRange( + Pros.Where(x => x.RagSoc.Contains(value, StringComparison.OrdinalIgnoreCase)).Select(x => $"{x.CodPpro} - {x.RagSoc}") + ); + + return listToReturn; + } + + private async Task OnClienteChanged() + { + ActivityModel.CodJcom = null; + + if (ActivityModel.Cliente.IsNullOrEmpty()) return; + + var match = Regex.Match(ActivityModel.Cliente!, @"^\s*(\S+)\s*-\s*(.*)$"); + if (!match.Success) + return; + + ActivityModel.CodAnag = match.Groups[1].Value; + ActivityModel.Cliente = match.Groups[2].Value; + + await LoadCommesse(); + OnAfterChangeValue(); + } + + private async Task OnCommessaChanged() + { + ActivityModel.Commessa = (await ManageData.GetTable(x => x.CodJcom.Equals(ActivityModel.CodJcom))).Last().Descrizione; + OnAfterChangeValue(); + } + + private void OnAfterChangeValue() + { + if (!IsNew) + { + LabelSave = !OriginalModel.Equals(ActivityModel) ? "Aggiorna" : null; + } + + if (ActivityModel.EstimatedEndtime <= ActivityModel.EstimatedTime) + { + ActivityModel.EstimatedEndtime = ActivityModel.EstimatedTime.Value.AddHours(1); + } + } + + private void OpenSelectEsito() + { + if (!IsNew && (ActivityModel.UserName is null || !ActivityModel.UserName.Equals(UserSession.User.Username))) return; + + OpenEsito = !OpenEsito; + StateHasChanged(); + } + + private async Task DeleteActivity() + { + var result = await ConfirmDelete.ShowAsync(); + + if (result is true) + { + VisibleOverlay = true; + StateHasChanged(); + + try + { + await IntegryApiService.DeleteActivity(ActivityModel.ActivityId); + ActivityModel.Deleted = true; + + SuccessAnimation = true; + StateHasChanged(); + + await Task.Delay(1250); + + MudDialog.Close(ActivityModel); + } + catch (Exception e) + { + VisibleOverlay = false; + StateHasChanged(); + Snackbar.Add("Impossibile cancellare l'attività", Severity.Error); + } + } + } + + private void Duplica() + { + var activityCopy = ActivityModel.Clone(); + + MudDialog.Cancel(); + Messenger.Send(new CopyActivityMessage(activityCopy)); + } + +} \ No newline at end of file diff --git a/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor.css b/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor.css new file mode 100644 index 0000000..cb50e2e --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/Modal/ActivityForm.razor.css @@ -0,0 +1,4 @@ +.container-button { + background: var(--mud-palette-background-gray) !important; + box-shadow: unset; +} diff --git a/Template.Shared/Components/SingleElements/NoDataAvailable.razor b/salesbook.Shared/Components/SingleElements/NoDataAvailable.razor similarity index 86% rename from Template.Shared/Components/SingleElements/NoDataAvailable.razor rename to salesbook.Shared/Components/SingleElements/NoDataAvailable.razor index 4f7759f..ce1f379 100644 --- a/Template.Shared/Components/SingleElements/NoDataAvailable.razor +++ b/salesbook.Shared/Components/SingleElements/NoDataAvailable.razor @@ -1,6 +1,5 @@
- +

@Text

diff --git a/salesbook.Shared/Components/SingleElements/NoDataAvailable.razor.css b/salesbook.Shared/Components/SingleElements/NoDataAvailable.razor.css new file mode 100644 index 0000000..ff7f681 --- /dev/null +++ b/salesbook.Shared/Components/SingleElements/NoDataAvailable.razor.css @@ -0,0 +1,5 @@ +.no-data { margin-top: 2rem; } + +.no-data img { width: 60%; } + +.no-data p { font-size: 1.2rem; } \ No newline at end of file diff --git a/salesbook.Shared/Core/Authorization/Enum/KeyGroupEnum.cs b/salesbook.Shared/Core/Authorization/Enum/KeyGroupEnum.cs new file mode 100644 index 0000000..de76cd9 --- /dev/null +++ b/salesbook.Shared/Core/Authorization/Enum/KeyGroupEnum.cs @@ -0,0 +1,8 @@ +namespace salesbook.Shared.Core.Authorization.Enum; + +public enum KeyGroupEnum +{ + UtenteAziendale = 2, + Agenti = 5, + Tecnico = 22 +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Dto/ActivityDTO.cs b/salesbook.Shared/Core/Dto/ActivityDTO.cs new file mode 100644 index 0000000..fcb34ba --- /dev/null +++ b/salesbook.Shared/Core/Dto/ActivityDTO.cs @@ -0,0 +1,100 @@ +using salesbook.Shared.Core.Entity; +using salesbook.Shared.Core.Helpers.Enum; + +namespace salesbook.Shared.Core.Dto; + +public class ActivityDTO : StbActivity +{ + public string? Commessa { get; set; } + public string? Cliente { get; set; } + public ActivityCategoryEnum Category { get; set; } + public bool Complete { get; set; } + + public bool Deleted { get; set; } + + public ActivityDTO Clone() + { + return (ActivityDTO)MemberwiseClone(); + } + + private bool Equals(ActivityDTO other) + { + return Commessa == other.Commessa && + Cliente == other.Cliente && + Category == other.Category && + Complete == other.Complete && ActivityId == other.ActivityId && ActivityResultId == other.ActivityResultId && ActivityTypeId == other.ActivityTypeId && DataInsAct.Equals(other.DataInsAct) && ActivityDescription == other.ActivityDescription && ParentActivityId == other.ParentActivityId && TipoAnag == other.TipoAnag && CodAnag == other.CodAnag && CodJcom == other.CodJcom && CodJfas == other.CodJfas && Nullable.Equals(EstimatedDate, other.EstimatedDate) && Nullable.Equals(EstimatedTime, other.EstimatedTime) && Nullable.Equals(AlarmDate, other.AlarmDate) && Nullable.Equals(AlarmTime, other.AlarmTime) && Nullable.Equals(EffectiveDate, other.EffectiveDate) && Nullable.Equals(EffectiveTime, other.EffectiveTime) && ResultDescription == other.ResultDescription && Nullable.Equals(EstimatedEnddate, other.EstimatedEnddate) && Nullable.Equals(EstimatedEndtime, other.EstimatedEndtime) && Nullable.Equals(EffectiveEnddate, other.EffectiveEnddate) && Nullable.Equals(EffectiveEndtime, other.EffectiveEndtime) && UserCreator == other.UserCreator && UserName == other.UserName && Nullable.Equals(PercComp, other.PercComp) && Nullable.Equals(EstimatedHours, other.EstimatedHours) && CodMart == other.CodMart && PartitaMag == other.PartitaMag && Matricola == other.Matricola && Priorita == other.Priorita && Nullable.Equals(ActivityPlayCounter, other.ActivityPlayCounter) && ActivityEvent == other.ActivityEvent && Guarantee == other.Guarantee && Note == other.Note && Rfid == other.Rfid && IdLotto == other.IdLotto && PersonaRif == other.PersonaRif && HrNum == other.HrNum && Gestione == other.Gestione && Nullable.Equals(DataOrd, other.DataOrd) && NumOrd == other.NumOrd && IdStep == other.IdStep && IdRiga == other.IdRiga && Nullable.Equals(OraInsAct, other.OraInsAct) && IndiceGradimento == other.IndiceGradimento && NoteGradimento == other.NoteGradimento && FlagRisolto == other.FlagRisolto && FlagTipologia == other.FlagTipologia && OreRapportino == other.OreRapportino && UserModifier == other.UserModifier && Nullable.Equals(OraModAct, other.OraModAct) && Nullable.Equals(OraViewAct, other.OraViewAct) && CodVdes == other.CodVdes && CodCmac == other.CodCmac && WrikeId == other.WrikeId && CodMgrp == other.CodMgrp && PlanId == other.PlanId; + } + + public override bool Equals(object? obj) + { + if (obj is null) return false; + if (ReferenceEquals(this, obj)) return true; + return obj.GetType() == GetType() && Equals((ActivityDTO)obj); + } + + public override int GetHashCode() + { + var hashCode = new HashCode(); + hashCode.Add(ActivityId); + hashCode.Add(ActivityResultId); + hashCode.Add(ActivityTypeId); + hashCode.Add(DataInsAct); + hashCode.Add(ActivityDescription); + hashCode.Add(ParentActivityId); + hashCode.Add(TipoAnag); + hashCode.Add(CodAnag); + hashCode.Add(CodJcom); + hashCode.Add(CodJfas); + hashCode.Add(EstimatedDate); + hashCode.Add(EstimatedTime); + hashCode.Add(AlarmDate); + hashCode.Add(AlarmTime); + hashCode.Add(EffectiveDate); + hashCode.Add(EffectiveTime); + hashCode.Add(ResultDescription); + hashCode.Add(EstimatedEnddate); + hashCode.Add(EstimatedEndtime); + hashCode.Add(EffectiveEnddate); + hashCode.Add(EffectiveEndtime); + hashCode.Add(UserCreator); + hashCode.Add(UserName); + hashCode.Add(PercComp); + hashCode.Add(EstimatedHours); + hashCode.Add(CodMart); + hashCode.Add(PartitaMag); + hashCode.Add(Matricola); + hashCode.Add(Priorita); + hashCode.Add(ActivityPlayCounter); + hashCode.Add(ActivityEvent); + hashCode.Add(Guarantee); + hashCode.Add(Note); + hashCode.Add(Rfid); + hashCode.Add(IdLotto); + hashCode.Add(PersonaRif); + hashCode.Add(HrNum); + hashCode.Add(Gestione); + hashCode.Add(DataOrd); + hashCode.Add(NumOrd); + hashCode.Add(IdStep); + hashCode.Add(IdRiga); + hashCode.Add(OraInsAct); + hashCode.Add(IndiceGradimento); + hashCode.Add(NoteGradimento); + hashCode.Add(FlagRisolto); + hashCode.Add(FlagTipologia); + hashCode.Add(OreRapportino); + hashCode.Add(UserModifier); + hashCode.Add(OraModAct); + hashCode.Add(OraViewAct); + hashCode.Add(CodVdes); + hashCode.Add(CodCmac); + hashCode.Add(WrikeId); + hashCode.Add(CodMgrp); + hashCode.Add(PlanId); + hashCode.Add(Commessa); + hashCode.Add(Cliente); + hashCode.Add(Category); + hashCode.Add(Complete); + return hashCode.ToHashCode(); + } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Dto/FilterActivityDTO.cs b/salesbook.Shared/Core/Dto/FilterActivityDTO.cs new file mode 100644 index 0000000..dac5241 --- /dev/null +++ b/salesbook.Shared/Core/Dto/FilterActivityDTO.cs @@ -0,0 +1,20 @@ +using salesbook.Shared.Core.Helpers; +using salesbook.Shared.Core.Helpers.Enum; + +namespace salesbook.Shared.Core.Dto; + +public class FilterActivityDTO +{ + public string? Text { get; set; } + public IEnumerable? User { get; set; } + public string? Type { get; set; } + public string? Result { get; set; } + public ActivityCategoryEnum? Category { get; set; } + + public bool ClearFilter => + Text.IsNullOrEmpty() && + User.IsNullOrEmpty() && + Type.IsNullOrEmpty() && + Result.IsNullOrEmpty() && + Category == null; +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Dto/SettingsResponseDTO.cs b/salesbook.Shared/Core/Dto/SettingsResponseDTO.cs new file mode 100644 index 0000000..2059adb --- /dev/null +++ b/salesbook.Shared/Core/Dto/SettingsResponseDTO.cs @@ -0,0 +1,16 @@ +using System.Text.Json.Serialization; +using salesbook.Shared.Core.Entity; + +namespace salesbook.Shared.Core.Dto; + +public class SettingsResponseDTO +{ + [JsonPropertyName("activityTypes")] + public List? ActivityTypes { get; set; } + + [JsonPropertyName("activityResults")] + public List? ActivityResults { get; set; } + + [JsonPropertyName("stbUsers")] + public List? StbUsers { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Dto/TaskSyncResponseDTO.cs b/salesbook.Shared/Core/Dto/TaskSyncResponseDTO.cs new file mode 100644 index 0000000..5ea1bbc --- /dev/null +++ b/salesbook.Shared/Core/Dto/TaskSyncResponseDTO.cs @@ -0,0 +1,22 @@ +using System.Text.Json.Serialization; +using salesbook.Shared.Core.Entity; + +namespace salesbook.Shared.Core.Dto; + +public class TaskSyncResponseDTO +{ + [JsonPropertyName("anagClie")] + public List? AnagClie { get; set; } + + [JsonPropertyName("vtbDest")] + public List? VtbDest { get; set; } + + [JsonPropertyName("vtbCliePersRif")] + public List? VtbCliePersRif { get; set; } + + [JsonPropertyName("ptbPros")] + public List? PtbPros { get; set; } + + [JsonPropertyName("ptbProsRif")] + public List? PtbProsRif { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/AnagClie.cs b/salesbook.Shared/Core/Entity/AnagClie.cs new file mode 100644 index 0000000..6b776d1 --- /dev/null +++ b/salesbook.Shared/Core/Entity/AnagClie.cs @@ -0,0 +1,86 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("anag_clie")] +public class AnagClie +{ + [PrimaryKey, Column("cod_anag"), JsonPropertyName("codAnag")] + public string CodAnag { get; set; } + + [Column("cod_vtip"), JsonPropertyName("codVtip")] + public string? CodVtip { get; set; } + + [Column("cod_vage"), JsonPropertyName("codVage")] + public string? CodVage { get; set; } + + [Column("rag_soc"), JsonPropertyName("ragSoc")] + public string RagSoc { get; set; } + + [Column("indirizzo"), JsonPropertyName("indirizzo")] + public string Indirizzo { get; set; } + + [Column("cap"), JsonPropertyName("cap")] + public string Cap { get; set; } + + [Column("citta"), JsonPropertyName("citta")] + public string Citta { get; set; } + + [Column("prov"), JsonPropertyName("prov")] + public string Prov { get; set; } + + [Column("nazione"), JsonPropertyName("nazione")] + public string Nazione { get; set; } + + [Column("telefono"), JsonPropertyName("telefono")] + public string? Telefono { get; set; } + + [Column("fax"), JsonPropertyName("fax")] + public string Fax { get; set; } + + [Column("part_iva"), JsonPropertyName("partIva")] + public string PartIva { get; set; } + + [Column("cod_fisc"), JsonPropertyName("codFisc")] + public string CodFisc { get; set; } + + [Column("note"), JsonPropertyName("note")] + public string Note { get; set; } + + [Column("persona_rif"), JsonPropertyName("personaRif")] + public string PersonaRif { get; set; } + + [Column("e_mail"), JsonPropertyName("eMail")] + public string? EMail { get; set; } + + [Column("e_mail_pec"), JsonPropertyName("eMailPec")] + public string EMailPec { get; set; } + + [Column("nome"), JsonPropertyName("nome")] + public string Nome { get; set; } + + [Column("data_ins"), JsonPropertyName("dataIns")] + public DateTime? DataIns { get; set; } = DateTime.Now; + + [Column("num_cell"), JsonPropertyName("numCell")] + public string NumCell { get; set; } + + [Column("cognome"), JsonPropertyName("cognome")] + public string Cognome { get; set; } + + [Column("diacod"), JsonPropertyName("diacod")] + public string Diacod { get; set; } + + [Column("lat"), JsonPropertyName("lat")] + public decimal? Lat { get; set; } + + [Column("lng"), JsonPropertyName("lng")] + public decimal? Lng { get; set; } + + [Column("data_mod"), JsonPropertyName("dataMod")] + public DateTime? DataMod { get; set; } = DateTime.Now; + + [Column("flag_stato"), JsonPropertyName("flagStato")] + public string FlagStato { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/JtbComt.cs b/salesbook.Shared/Core/Entity/JtbComt.cs new file mode 100644 index 0000000..6c80f64 --- /dev/null +++ b/salesbook.Shared/Core/Entity/JtbComt.cs @@ -0,0 +1,110 @@ +using System.Text.Json.Serialization; +using SQLite; + +namespace salesbook.Shared.Core.Entity; + +[Table("jtb_comt")] +public class JtbComt +{ + [PrimaryKey, Column("cod_jcom"), JsonPropertyName("codJcom")] + public string CodJcom { get; set; } + + [Column("cod_jfas"), JsonPropertyName("codJfas")] + public string CodJfas { get; set; } + + [Column("cod_jflav"), JsonPropertyName("codJflav")] + public string CodJflav { get; set; } + + [Column("descrizione"), JsonPropertyName("descrizione")] + public string Descrizione { get; set; } + + [Column("importo"), JsonPropertyName("importo")] + public decimal Importo { get; set; } = 0; + + [Column("data_inizi_lav"), JsonPropertyName("dataIniziLav")] + public DateTime? DataIniziLav { get; set; } + + [Column("cod_mart"), JsonPropertyName("codMart")] + public string CodMart { get; set; } + + [Column("data_cons"), JsonPropertyName("dataCons")] + public DateTime? DataCons { get; set; } + + [Column("manuali"), JsonPropertyName("manuali")] + public string Manuali { get; set; } + + [Column("note"), JsonPropertyName("note")] + public string Note { get; set; } + + [Column("cod_anag"), JsonPropertyName("codAnag")] + public string? CodAnag { get; set; } + + [Column("cod_divi"), JsonPropertyName("codDivi")] + public string CodDivi { get; set; } = "EURO"; + + [Column("cambio_divi"), JsonPropertyName("cambioDivi")] + public decimal CambioDivi { get; set; } = 1; + + [Column("cod_divi_cont"), JsonPropertyName("codDiviCont")] + public string CodDiviCont { get; set; } + + [Column("cambio_divi_cont"), JsonPropertyName("cambioDiviCont")] + public decimal CambioDiviCont { get; set; } + + [Column("responsabile_com"), JsonPropertyName("responsabileCom")] + public string ResponsabileCom { get; set; } + + [Column("stato_commessa"), JsonPropertyName("statoCommessa")] + public string StatoCommessa { get; set; } + + [Column("tipo_commessa"), JsonPropertyName("tipoCommessa")] + public string TipoCommessa { get; set; } + + [Column("descrizione_estesa"), JsonPropertyName("descrizioneEstesa")] + public string DescrizioneEstesa { get; set; } + + [Column("perc_comp"), JsonPropertyName("percComp")] + public decimal PercComp { get; set; } = 0; + + [Column("cod_vdes"), JsonPropertyName("codVdes")] + public string CodVdes { get; set; } + + [Column("gestione"), JsonPropertyName("gestione")] + public string Gestione { get; set; } + + [Column("data_ord"), JsonPropertyName("dataOrd")] + public DateTime? DataOrd { get; set; } + + [Column("num_ord"), JsonPropertyName("numOrd")] + public int? NumOrd { get; set; } + + [Column("matricola"), JsonPropertyName("matricola")] + public string Matricola { get; set; } + + [Column("tipo_anag"), JsonPropertyName("tipoAnag")] + public string TipoAnag { get; set; } + + [Column("flag_pubblica"), JsonPropertyName("flagPubblica")] + public string FlagPubblica { get; set; } = "N"; + + [Column("cig"), JsonPropertyName("cig")] + public string Cig { get; set; } + + [Column("cup"), JsonPropertyName("cup")] + public string Cup { get; set; } + + [Column("indirizzo_ente"), JsonPropertyName("indirizzoEnte")] + public string IndirizzoEnte { get; set; } + + [Column("note_cons"), JsonPropertyName("noteCons")] + public string NoteCons { get; set; } + + [Column("cod_vage"), JsonPropertyName("codVage")] + public string CodVage { get; set; } + + [Column("cod_jflav_tec"), JsonPropertyName("codJflavTec")] + public string CodJflavTec { get; set; } + + [Column("note_tecniche"), JsonPropertyName("noteTecniche")] + public string NoteTecniche { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/PtbPros.cs b/salesbook.Shared/Core/Entity/PtbPros.cs new file mode 100644 index 0000000..c4c6128 --- /dev/null +++ b/salesbook.Shared/Core/Entity/PtbPros.cs @@ -0,0 +1,131 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("ptb_pros")] +public class PtbPros +{ + [PrimaryKey, Column("cod_ppro"), JsonPropertyName("codPpro")] + public string CodPpro { get; set; } + + [Column("agenzia_banca"), JsonPropertyName("agenziaBanca")] + public string AgenziaBanca { get; set; } + + [Column("cap"), JsonPropertyName("cap")] + public string Cap { get; set; } + + [Column("citta"), JsonPropertyName("citta")] + public string Citta { get; set; } + + [Column("cod_abi"), JsonPropertyName("codAbi")] + public string CodAbi { get; set; } + + [Column("cod_aliq"), JsonPropertyName("codAliq")] + public string CodAliq { get; set; } + + [Column("cod_anag"), JsonPropertyName("codAnag")] + public string CodAnag { get; set; } + + [Column("cod_banc"), JsonPropertyName("codBanc")] + public string CodBanc { get; set; } + + [Column("cod_cab"), JsonPropertyName("codCab")] + public string CodCab { get; set; } + + [Column("cod_fisc"), JsonPropertyName("codFisc")] + public string CodFisc { get; set; } + + [Column("cod_paga"), JsonPropertyName("codPaga")] + public string CodPaga { get; set; } + + [Column("cod_vage"), JsonPropertyName("codVage")] + public string CodVage { get; set; } + + [Column("cod_vatt"), JsonPropertyName("codVatt")] + public string CodVatt { get; set; } + + [Column("cod_vlis"), JsonPropertyName("codVlis")] + public string CodVlis { get; set; } + + [Column("cod_vseg"), JsonPropertyName("codVseg")] + public string CodVseg { get; set; } + + [Column("cod_vset"), JsonPropertyName("codVset")] + public string CodVset { get; set; } + + [Column("cod_vtip"), JsonPropertyName("codVtip")] + public string CodVtip { get; set; } + + [Column("cod_vzon"), JsonPropertyName("codVzon")] + public string CodVzon { get; set; } + + [Column("data_ins"), JsonPropertyName("dataIns")] + public DateTime? DataIns { get; set; } = DateTime.Now; + + [Column("descrizione_pag"), JsonPropertyName("descrizionePag")] + public string DescrizionePag { get; set; } + + [Column("e_mail"), JsonPropertyName("eMail")] + public string EMail { get; set; } + + [Column("fax"), JsonPropertyName("fax")] + public string Fax { get; set; } + + [Column("flag_riv_clie"), JsonPropertyName("flagRivClie")] + public string FlagRivClie { get; set; } = "C"; + + [Column("fonte"), JsonPropertyName("fonte")] + public string Fonte { get; set; } + + [Column("gg_chiusura"), JsonPropertyName("ggChiusura")] + public string GgChiusura { get; set; } + + [Column("indirizzo"), JsonPropertyName("indirizzo")] + public string Indirizzo { get; set; } + + [Column("nazione"), JsonPropertyName("nazione")] + public string Nazione { get; set; } + + [Column("note"), JsonPropertyName("note")] + public string Note { get; set; } + + [Column("part_iva"), JsonPropertyName("partIva")] + public string PartIva { get; set; } + + [Column("persona_rif"), JsonPropertyName("personaRif")] + public string PersonaRif { get; set; } + + [Column("prov"), JsonPropertyName("prov")] + public string Prov { get; set; } + + [Column("rag_soc"), JsonPropertyName("ragSoc")] + public string RagSoc { get; set; } + + [Column("rag_soc2"), JsonPropertyName("ragSoc2")] + public string RagSoc2 { get; set; } + + [Column("sconto1"), JsonPropertyName("sconto1")] + public decimal Sconto1 { get; set; } = 0; + + [Column("sconto2"), JsonPropertyName("sconto2")] + public decimal Sconto2 { get; set; } = 0; + + [Column("telefono"), JsonPropertyName("telefono")] + public string Telefono { get; set; } + + [Column("cuu_pa"), JsonPropertyName("cuuPa")] + public string CuuPa { get; set; } + + [Column("e_mail_pec"), JsonPropertyName("eMailPec")] + public string EMailPec { get; set; } + + [Column("flag_informativa"), JsonPropertyName("flagInformativa")] + public string FlagInformativa { get; set; } = "N"; + + [Column("flag_consenso"), JsonPropertyName("flagConsenso")] + public string FlagConsenso { get; set; } = "N"; + + [Column("username"), JsonPropertyName("userName")] + public string UserName { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/PtbProsRif.cs b/salesbook.Shared/Core/Entity/PtbProsRif.cs new file mode 100644 index 0000000..da396df --- /dev/null +++ b/salesbook.Shared/Core/Entity/PtbProsRif.cs @@ -0,0 +1,32 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("ptb_pros_rif")] +public class PtbProsRif +{ + [Column("cod_ppro"), JsonPropertyName("codPpro"), Indexed(Name = "PtbProsRifPK", Order = 1, Unique = true)] + public string CodPpro { get; set; } + + [Column("id_pers_rif"), JsonPropertyName("idPersRif"), Indexed(Name = "PtbProsRifPK", Order = 2, Unique = true)] + public int IdPersRif { get; set; } + + [Column("persona_rif"), JsonPropertyName("personaRif")] + public string PersonaRif { get; set; } + + [Column("e_mail"), JsonPropertyName("eMail")] + public string EMail { get; set; } + + [Column("fax"), JsonPropertyName("fax")] + public string Fax { get; set; } + + [Column("mansione"), JsonPropertyName("mansione")] + public string Mansione { get; set; } + + [Column("num_cellulare"), JsonPropertyName("numCellulare")] + public string NumCellulare { get; set; } + + [Column("telefono"), JsonPropertyName("telefono")] + public string Telefono { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/StbActivity.cs b/salesbook.Shared/Core/Entity/StbActivity.cs new file mode 100644 index 0000000..25149e8 --- /dev/null +++ b/salesbook.Shared/Core/Entity/StbActivity.cs @@ -0,0 +1,176 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("stb_activity")] +public class StbActivity +{ + [PrimaryKey, Column("activity_id"), JsonPropertyName("activityId")] + public string ActivityId { get; set; } + + [Column("activity_result_id"), JsonPropertyName("activityResultId")] + public string? ActivityResultId { get; set; } + + [Column("activity_type_id"), JsonPropertyName("activityTypeId")] + public string? ActivityTypeId { get; set; } + + [Column("data_ins_act"), JsonPropertyName("dataInsAct")] + public DateTime DataInsAct { get; set; } = DateTime.Now; + + [Column("activity_description"), JsonPropertyName("activityDescription")] + public string? ActivityDescription { get; set; } + + [Column("parent_activity_id"), JsonPropertyName("parentActivityId")] + public string? ParentActivityId { get; set; } + + [Column("tipo_anag"), JsonPropertyName("tipoAnag")] + public string? TipoAnag { get; set; } + + [Column("cod_anag"), JsonPropertyName("codAnag")] + public string? CodAnag { get; set; } + + [Column("cod_jcom"), JsonPropertyName("codJcom")] + public string? CodJcom { get; set; } + + [Column("cod_jfas"), JsonPropertyName("codJfas")] + public string? CodJfas { get; set; } + + [Column("estimated_date"), JsonPropertyName("estimatedDate")] + public DateTime? EstimatedDate { get; set; } + + [Column("estimated_time"), JsonPropertyName("estimatedTime")] + public DateTime? EstimatedTime { get; set; } + + [Column("alarm_date"), JsonPropertyName("alarmDate")] + public DateTime? AlarmDate { get; set; } + + [Column("alarm_time"), JsonPropertyName("alarmTime")] + public DateTime? AlarmTime { get; set; } + + [Column("effective_date"), JsonPropertyName("effectiveDate")] + public DateTime? EffectiveDate { get; set; } + + [Column("effective_time"), JsonPropertyName("effectiveTime")] + public DateTime? EffectiveTime { get; set; } + + [Column("result_description"), JsonPropertyName("resultDescription")] + public string? ResultDescription { get; set; } + + [Column("estimated_enddate"), JsonPropertyName("estimatedEnddate")] + public DateTime? EstimatedEnddate { get; set; } + + [Column("estimated_endtime"), JsonPropertyName("estimatedEndtime")] + public DateTime? EstimatedEndtime { get; set; } + + [Column("effective_enddate"), JsonPropertyName("effectiveEnddate")] + public DateTime? EffectiveEnddate { get; set; } + + [Column("effective_endtime"), JsonPropertyName("effectiveEndtime")] + public DateTime? EffectiveEndtime { get; set; } + + [Column("user_creator"), JsonPropertyName("userCreator")] + public string? UserCreator { get; set; } + + [Column("user_name"), JsonPropertyName("userName")] + public string? UserName { get; set; } + + [Column("perc_comp"), JsonPropertyName("percComp")] + public double? PercComp { get; set; } = 0; + + [Column("estimated_hours"), JsonPropertyName("estimatedHours")] + public double? EstimatedHours { get; set; } = 0; + + [Column("cod_mart"), JsonPropertyName("codMart")] + public string? CodMart { get; set; } + + [Column("partita_mag"), JsonPropertyName("partitaMag")] + public string? PartitaMag { get; set; } + + [Column("matricola"), JsonPropertyName("matricola")] + public string? Matricola { get; set; } + + [Column("priorita"), JsonPropertyName("priorita")] + public int? Priorita { get; set; } = 0; + + [Column("activity_play_counter"), JsonPropertyName("activityPlayCounter")] + public double? ActivityPlayCounter { get; set; } = 0; + + [Column("activity_event"), JsonPropertyName("activityEvent")] + public string? ActivityEvent { get; set; } + + [Column("guarantee"), JsonPropertyName("guarantee")] + public string? Guarantee { get; set; } + + [Column("note"), JsonPropertyName("note")] + public string? Note { get; set; } + + [Column("rfid"), JsonPropertyName("rfid")] + public string? Rfid { get; set; } + + [Column("id_lotto"), JsonPropertyName("idLotto")] + public int? IdLotto { get; set; } + + [Column("persona_rif"), JsonPropertyName("personaRif")] + public string? PersonaRif { get; set; } + + [Column("hr_num"), JsonPropertyName("hrNum")] + public int? HrNum { get; set; } + + [Column("gestione"), JsonPropertyName("gestione")] + public string? Gestione { get; set; } + + [Column("data_ord"), JsonPropertyName("dataOrd")] + public DateTime? DataOrd { get; set; } + + [Column("num_ord"), JsonPropertyName("numOrd")] + public int? NumOrd { get; set; } + + [Column("id_step"), JsonPropertyName("idStep")] + public int? IdStep { get; set; } + + [Column("id_riga"), JsonPropertyName("idRiga")] + public int? IdRiga { get; set; } + + [Column("ora_ins_act"), JsonPropertyName("oraInsAct")] + public DateTime? OraInsAct { get; set; } + + [Column("indice_gradimento"), JsonPropertyName("indiceGradimento")] + public decimal? IndiceGradimento { get; set; } = 0; + + [Column("note_gradimento"), JsonPropertyName("noteGradimento")] + public string? NoteGradimento { get; set; } + + [Column("flag_risolto"), JsonPropertyName("flagRisolto")] + public string? FlagRisolto { get; set; } = "N"; + + [Column("flag_tipologia"), JsonPropertyName("flagTipologia")] + public string? FlagTipologia { get; set; } + + [Ignore, JsonPropertyName("oreRapportino")] + public decimal? OreRapportino { get; set; } + + [Column("user_modifier"), JsonPropertyName("userModifier")] + public string? UserModifier { get; set; } + + [Column("ora_mod_act"), JsonPropertyName("oraModAct")] + public DateTime? OraModAct { get; set; } = DateTime.Now; + + [Column("ora_view_act"), JsonPropertyName("oraViewAct")] + public DateTime? OraViewAct { get; set; } + + [Column("cod_vdes"), JsonPropertyName("codVdes")] + public string? CodVdes { get; set; } + + [Column("cod_cmac"), JsonPropertyName("codCmac")] + public string? CodCmac { get; set; } + + [Column("wrike_id"), JsonPropertyName("wrikeId")] + public string? WrikeId { get; set; } + + [Column("cod_mgrp"), JsonPropertyName("codMgrp")] + public string? CodMgrp { get; set; } + + [Column("plan_id"), JsonPropertyName("planId")] + public long? PlanId { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/StbActivityResult.cs b/salesbook.Shared/Core/Entity/StbActivityResult.cs new file mode 100644 index 0000000..6b09eb2 --- /dev/null +++ b/salesbook.Shared/Core/Entity/StbActivityResult.cs @@ -0,0 +1,32 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("stb_activity_result")] +public class StbActivityResult +{ + [PrimaryKey, Column("activity_result_id"), JsonPropertyName("activityResultId")] + public string ActivityResultId { get; set; } + + [Column("path_icona"), JsonPropertyName("pathIcona")] + public string? PathIcona { get; set; } + + [Column("flag_save_rap_lav"), JsonPropertyName("flagSaveRapLav")] + public string FlagSaveRapLav { get; set; } = "N"; + + [Column("flag_activity_result"), JsonPropertyName("flagActivityResult")] + public int? FlagActivityResult { get; set; } = 1; + + [Column("flag_insert_activity"), JsonPropertyName("flagInsertActivity")] + public string FlagInsertActivity { get; set; } = "N"; + + [Column("flag_attivo"), JsonPropertyName("flagAttivo")] + public string FlagAttivo { get; set; } = "S"; + + [Column("flag_invio_notifica"), JsonPropertyName("flagInvioNotifica")] + public string FlagInvioNotifica { get; set; } = "N"; + + [Column("flag_stato_attivita"), JsonPropertyName("flagStatoAttivita")] + public string FlagStatoAttivita { get; set; } = "N"; +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/StbActivityType.cs b/salesbook.Shared/Core/Entity/StbActivityType.cs new file mode 100644 index 0000000..cc49041 --- /dev/null +++ b/salesbook.Shared/Core/Entity/StbActivityType.cs @@ -0,0 +1,41 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("stb_activity_type")] +public class StbActivityType +{ + [Column("activity_type_id"), JsonPropertyName("activityTypeId"), Indexed(Name = "ActivityTypePK", Order = 1, Unique = true)] + public string ActivityTypeId { get; set; } + + [Column("flag_tipologia"), JsonPropertyName("flagTipologia"), Indexed(Name = "ActivityTypePK", Order = 2, Unique = true)] + public string FlagTipologia { get; set; } + + [Column("estimated_duration"), JsonPropertyName("estimatedDuration")] + public double? EstimatedDuration { get; set; } = 0; + + [Column("link_gest"), JsonPropertyName("linkGest")] + public string? LinkGest { get; set; } + + [Column("cod_jfas"), JsonPropertyName("codJfas")] + public string? CodJfas { get; set; } + + [Column("user_name"), JsonPropertyName("userName")] + public string? UserName { get; set; } + + [Column("flag_sal"), JsonPropertyName("flagSal")] + public string FlagSal { get; set; } = "N"; + + [Column("flag_set_alarm"), JsonPropertyName("flagSetAlarm")] + public string FlagSetAlarm { get; set; } = "N"; + + [Column("flag_attiva"), JsonPropertyName("flagAttiva")] + public string FlagAttiva { get; set; } = "S"; + + [Column("flag_generate_mov"), JsonPropertyName("flagGenerateMov")] + public string FlagGenerateMov { get; set; } = "S"; + + [Column("flag_view_calendar"), JsonPropertyName("flagViewCalendar")] + public bool FlagViewCalendar { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/StbUser.cs b/salesbook.Shared/Core/Entity/StbUser.cs new file mode 100644 index 0000000..dc9828d --- /dev/null +++ b/salesbook.Shared/Core/Entity/StbUser.cs @@ -0,0 +1,14 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("stb_user")] +public class StbUser +{ + [PrimaryKey, Column("user_name"), JsonPropertyName("userName")] + public string UserName { get; set; } + + [Column("full_name"), JsonPropertyName("fullName")] + public string FullName { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/VtbCliePersRif.cs b/salesbook.Shared/Core/Entity/VtbCliePersRif.cs new file mode 100644 index 0000000..79a6e69 --- /dev/null +++ b/salesbook.Shared/Core/Entity/VtbCliePersRif.cs @@ -0,0 +1,41 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("vtb_clie_pers_rif")] +public class VtbCliePersRif +{ + [Column("id_pers_rif"), JsonPropertyName("idPersRif"), Indexed(Name = "VtbCliePersRifPK", Order = 1, Unique = true)] + public int IdPersRif { get; set; } + + [Column("cod_anag"), JsonPropertyName("codAnag"), Indexed(Name = "VtbCliePersRifPK", Order = 2, Unique = true)] + public string CodAnag { get; set; } + + [Column("persona_rif"), JsonPropertyName("personaRif")] + public string PersonaRif { get; set; } + + [Column("mansione"), JsonPropertyName("mansione")] + public string? Mansione { get; set; } + + [Column("telefono"), JsonPropertyName("telefono")] + public string? Telefono { get; set; } + + [Column("fax"), JsonPropertyName("fax")] + public string Fax { get; set; } + + [Column("e_mail"), JsonPropertyName("eMail")] + public string? EMail { get; set; } + + [Column("num_cellulare"), JsonPropertyName("numCellulare")] + public string? NumCellulare { get; set; } + + [Column("tipo_indirizzo"), JsonPropertyName("tipoIndirizzo")] + public string TipoIndirizzo { get; set; } + + [Column("cod_vdes"), JsonPropertyName("codVdes")] + public string CodVdes { get; set; } + + [Column("data_ult_agg"), JsonPropertyName("dataUltAgg")] + public DateTime? DataUltAgg { get; set; } = DateTime.Now; +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Entity/VtbDest.cs b/salesbook.Shared/Core/Entity/VtbDest.cs new file mode 100644 index 0000000..db9d273 --- /dev/null +++ b/salesbook.Shared/Core/Entity/VtbDest.cs @@ -0,0 +1,197 @@ +using SQLite; +using System.Text.Json.Serialization; + +namespace salesbook.Shared.Core.Entity; + +[Table("vtb_dest")] +public class VtbDest +{ + [Column("cod_anag"), JsonPropertyName("codAnag"), Indexed(Name = "VtbDestPK", Order = 1, Unique = true)] + public string CodAnag { get; set; } + + [Column("cod_vdes"), JsonPropertyName("codVdes"), Indexed(Name = "VtbDestPK", Order = 2, Unique = true)] + public string CodVdes { get; set; } + + [Column("destinatario"), JsonPropertyName("destinatario")] + public string Destinatario { get; set; } + + [Column("indirizzo"), JsonPropertyName("indirizzo")] + public string Indirizzo { get; set; } + + [Column("cap"), JsonPropertyName("cap")] + public string Cap { get; set; } + + [Column("citta"), JsonPropertyName("citta")] + public string Citta { get; set; } + + [Column("prov"), JsonPropertyName("prov")] + public string Prov { get; set; } + + [Column("nazione"), JsonPropertyName("nazione")] + public string Nazione { get; set; } + + [Column("tel"), JsonPropertyName("tel")] + public string Tel { get; set; } + + [Column("fax"), JsonPropertyName("fax")] + public string Fax { get; set; } + + [Column("note"), JsonPropertyName("note")] + public string Note { get; set; } + + [Column("fonte"), JsonPropertyName("fonte")] + public string Fonte { get; set; } + + [Column("cod_centro_azi"), JsonPropertyName("codCentroAzi")] + public string CodCentroAzi { get; set; } + + [Column("gg_cons"), JsonPropertyName("ggCons")] + public int GgCons { get; set; } = 0; + + [Column("cod_aliq_out"), JsonPropertyName("codAliqOut")] + public string CodAliqOut { get; set; } + + [Column("cod_aliq_in"), JsonPropertyName("codAliqIn")] + public string CodAliqIn { get; set; } + + [Column("descriz_aliq_out"), JsonPropertyName("descrizAliqOut")] + public string DescrizAliqOut { get; set; } + + [Column("cod_vzon"), JsonPropertyName("codVzon")] + public string CodVzon { get; set; } + + [Column("cod_vlis"), JsonPropertyName("codVlis")] + public string CodVlis { get; set; } + + [Column("cod_vage"), JsonPropertyName("codVage")] + public string CodVage { get; set; } + + [Column("persona_rif"), JsonPropertyName("personaRif")] + public string PersonaRif { get; set; } + + [Column("part_iva"), JsonPropertyName("partIva")] + public string PartIva { get; set; } + + [Column("cod_affiliazione"), JsonPropertyName("codAffiliazione")] + public string CodAffiliazione { get; set; } + + [Column("indirizzo_legale"), JsonPropertyName("indirizzoLegale")] + public string IndirizzoLegale { get; set; } + + [Column("cap_legale"), JsonPropertyName("capLegale")] + public string CapLegale { get; set; } + + [Column("citta_legale"), JsonPropertyName("cittaLegale")] + public string CittaLegale { get; set; } + + [Column("prov_legale"), JsonPropertyName("provLegale")] + public string ProvLegale { get; set; } + + [Column("nazione_legale"), JsonPropertyName("nazioneLegale")] + public string NazioneLegale { get; set; } + + [Column("cod_mdep"), JsonPropertyName("codMdep")] + public string CodMdep { get; set; } + + [Column("flag_domic_riba"), JsonPropertyName("flagDomicRiba")] + public string FlagDomicRiba { get; set; } + + [Column("flag_attivo"), JsonPropertyName("flagAttivo")] + public string FlagAttivo { get; set; } = "S"; + + [Column("flag_esponi"), JsonPropertyName("flagEsponi")] + public string FlagEsponi { get; set; } = "S"; + + [Column("rag_soc_legale"), JsonPropertyName("ragSocLegale")] + public string RagSocLegale { get; set; } + + [Column("cod_alis"), JsonPropertyName("codAlis")] + public string CodAlis { get; set; } + + [Column("cod_vpre"), JsonPropertyName("codVpre")] + public string CodVpre { get; set; } + + [Column("cod_vcom"), JsonPropertyName("codVcom")] + public string CodVcom { get; set; } + + [Column("cod_sco_cli"), JsonPropertyName("codScoCli")] + public string CodScoCli { get; set; } + + [Column("e_mail"), JsonPropertyName("eMail")] + public string EMail { get; set; } + + [Column("data_cessazione"), JsonPropertyName("dataCessazione")] + public DateTime? DataCessazione { get; set; } + + [Column("data_attivazione"), JsonPropertyName("dataAttivazione")] + public DateTime? DataAttivazione { get; set; } + + [Column("cod_vvet"), JsonPropertyName("codVvet")] + public string CodVvet { get; set; } + + [Column("gg_chiusura"), JsonPropertyName("ggChiusura")] + public string GgChiusura { get; set; } + + [Column("tipo_negozio"), JsonPropertyName("tipoNegozio")] + public string TipoNegozio { get; set; } + + [Column("cod_ean"), JsonPropertyName("codEan")] + public string CodEan { get; set; } + + [Column("flag_stampa_prezzi"), JsonPropertyName("flagStampaPrezzi")] + public string FlagStampaPrezzi { get; set; } = "S"; + + [Column("cod_aliq"), JsonPropertyName("codAliq")] + public string CodAliq { get; set; } + + [Column("cod_griglia"), JsonPropertyName("codGriglia")] + public string CodGriglia { get; set; } + + [Column("cod_acc"), JsonPropertyName("codAcc")] + public string CodAcc { get; set; } + + [Column("cod_vtip"), JsonPropertyName("codVtip")] + public string CodVtip { get; set; } + + [Column("cod_vset"), JsonPropertyName("codVset")] + public string CodVset { get; set; } + + [Column("cod_vseg"), JsonPropertyName("codVseg")] + public string CodVseg { get; set; } + + [Column("cod_vatt"), JsonPropertyName("codVatt")] + public string CodVatt { get; set; } + + [Column("cod_fisc"), JsonPropertyName("codFisc")] + public string CodFisc { get; set; } + + [Column("cuu_pa"), JsonPropertyName("cuuPa")] + public string CuuPa { get; set; } + + [Column("e_mail_pec"), JsonPropertyName("eMailPec")] + public string EMailPec { get; set; } + + [Column("flag_stabile_org"), JsonPropertyName("flagStabileOrg")] + public string FlagStabileOrg { get; set; } + + [Column("lat"), JsonPropertyName("lat")] + public decimal? Lat { get; set; } + + [Column("lng"), JsonPropertyName("lng")] + public decimal? Lng { get; set; } + + [Column("term_cons"), JsonPropertyName("termCons")] + public string TermCons { get; set; } + + [Column("itinerario"), JsonPropertyName("itinerario")] + public string Itinerario { get; set; } + + [Column("imp_min_ord"), JsonPropertyName("impMinOrd")] + public decimal ImpMinOrd { get; set; } = 0; + + [Column("part_iva_legale"), JsonPropertyName("partIvaLegale")] + public string PartIvaLegale { get; set; } + + [Column("cod_fisc_legale"), JsonPropertyName("codFiscLegale")] + public string CodFiscLegale { get; set; } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Helpers/ActivityCategoryHelper.cs b/salesbook.Shared/Core/Helpers/ActivityCategoryHelper.cs new file mode 100644 index 0000000..58baefc --- /dev/null +++ b/salesbook.Shared/Core/Helpers/ActivityCategoryHelper.cs @@ -0,0 +1,24 @@ +using salesbook.Shared.Core.Helpers.Enum; + +namespace salesbook.Shared.Core.Helpers; + +public static class ActivityCategoryHelper +{ + public static string ConvertToHumanReadable(this ActivityCategoryEnum activityCategory) + { + return activityCategory switch + { + ActivityCategoryEnum.Memo => "memo", + ActivityCategoryEnum.Interna => "interna", + ActivityCategoryEnum.Commessa => "commessa", + _ => throw new ArgumentOutOfRangeException(nameof(activityCategory), activityCategory, null) + }; + } + + public static List AllActivityCategory => + [ + ActivityCategoryEnum.Memo, + ActivityCategoryEnum.Interna, + ActivityCategoryEnum.Commessa + ]; +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Helpers/Enum/ActivityCategoryEnum.cs b/salesbook.Shared/Core/Helpers/Enum/ActivityCategoryEnum.cs new file mode 100644 index 0000000..cc623e1 --- /dev/null +++ b/salesbook.Shared/Core/Helpers/Enum/ActivityCategoryEnum.cs @@ -0,0 +1,8 @@ +namespace salesbook.Shared.Core.Helpers.Enum; + +public enum ActivityCategoryEnum +{ + Memo = 0, + Interna = 1, + Commessa = 2 +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Helpers/IconConstants.cs b/salesbook.Shared/Core/Helpers/IconConstants.cs new file mode 100644 index 0000000..23df9cc --- /dev/null +++ b/salesbook.Shared/Core/Helpers/IconConstants.cs @@ -0,0 +1,11 @@ +namespace salesbook.Shared.Core.Helpers; + +class IconConstants +{ + public class Chip + { + public const string Stato = "ri-list-check-3 fa-fw fa-chip"; + public const string User = "ri-user-fill fa-fw fa-chip"; + public const string Time = "ri-time-line fa-fw fa-chip"; + } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Helpers/KeyGroupHelper.cs b/salesbook.Shared/Core/Helpers/KeyGroupHelper.cs new file mode 100644 index 0000000..4e0af1f --- /dev/null +++ b/salesbook.Shared/Core/Helpers/KeyGroupHelper.cs @@ -0,0 +1,17 @@ +using salesbook.Shared.Core.Authorization.Enum; + +namespace salesbook.Shared.Core.Helpers; + +public static class KeyGroupHelper +{ + public static string ConvertToHumanReadable(this KeyGroupEnum keyGroup) + { + return keyGroup switch + { + KeyGroupEnum.Agenti => "Agenti", + KeyGroupEnum.Tecnico => "Tecnico", + KeyGroupEnum.UtenteAziendale => "Utente Aziendale", + _ => throw new ArgumentOutOfRangeException(nameof(keyGroup), keyGroup, null) + }; + } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Helpers/MappingProfile.cs b/salesbook.Shared/Core/Helpers/MappingProfile.cs new file mode 100644 index 0000000..6d17d5f --- /dev/null +++ b/salesbook.Shared/Core/Helpers/MappingProfile.cs @@ -0,0 +1,13 @@ +using AutoMapper; +using salesbook.Shared.Core.Dto; +using salesbook.Shared.Core.Entity; + +namespace salesbook.Shared.Core.Helpers; + +public class MappingProfile : Profile +{ + public MappingProfile() + { + CreateMap(); + } +} diff --git a/salesbook.Shared/Core/Helpers/ModalHelpers.cs b/salesbook.Shared/Core/Helpers/ModalHelpers.cs new file mode 100644 index 0000000..74fb247 --- /dev/null +++ b/salesbook.Shared/Core/Helpers/ModalHelpers.cs @@ -0,0 +1,28 @@ +using MudBlazor; +using salesbook.Shared.Components.SingleElements.Modal; +using salesbook.Shared.Core.Dto; + +namespace salesbook.Shared.Core.Helpers; + +public class ModalHelpers +{ + public static async Task OpenActivityForm(IDialogService dialog, ActivityDTO? activity, string? id) + { + var modal = await dialog.ShowAsync( + "Activity form", + new DialogParameters + { + { x => x.Id, id }, + { x => x.ActivityCopied, activity } + }, + new DialogOptions + { + FullScreen = true, + CloseButton = false, + NoHeader = true + } + ); + + return await modal.Result; + } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Helpers/ObjectExtensions.cs b/salesbook.Shared/Core/Helpers/ObjectExtensions.cs new file mode 100644 index 0000000..7776008 --- /dev/null +++ b/salesbook.Shared/Core/Helpers/ObjectExtensions.cs @@ -0,0 +1,19 @@ +using System.Collections; + +namespace salesbook.Shared.Core.Helpers; + +public static class ObjectExtensions +{ + public static bool IsNullOrEmpty(this IEnumerable? obj) => + obj == null || obj.GetEnumerator().MoveNext() == false; + + + public static bool IsNullOrEmpty(this string? obj) => + string.IsNullOrEmpty(obj); + + public static bool EqualsIgnoreCase(this string obj, string anotherString) => + string.Equals(obj, anotherString, StringComparison.OrdinalIgnoreCase); + + public static bool ContainsIgnoreCase(this string obj, string anotherString) => + obj.Contains(anotherString, StringComparison.OrdinalIgnoreCase); +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Interface/IFormFactor.cs b/salesbook.Shared/Core/Interface/IFormFactor.cs new file mode 100644 index 0000000..373345c --- /dev/null +++ b/salesbook.Shared/Core/Interface/IFormFactor.cs @@ -0,0 +1,13 @@ +namespace salesbook.Shared.Core.Interface; + +public interface IFormFactor +{ + public string GetFormFactor(); + public string GetPlatform(); + + public bool IsWeb() + { + var formFactor = GetFormFactor(); + return formFactor == "Web"; + } +} diff --git a/salesbook.Shared/Core/Interface/IIntegryApiService.cs b/salesbook.Shared/Core/Interface/IIntegryApiService.cs new file mode 100644 index 0000000..1d58af9 --- /dev/null +++ b/salesbook.Shared/Core/Interface/IIntegryApiService.cs @@ -0,0 +1,17 @@ +using salesbook.Shared.Core.Dto; +using salesbook.Shared.Core.Entity; + +namespace salesbook.Shared.Core.Interface; + +public interface IIntegryApiService +{ + Task?> RetrieveActivity(string? dateFilter = null); + Task?> RetrieveAllCommesse(string? dateFilter = null); + Task RetrieveAnagClie(string? dateFilter = null); + Task RetrieveProspect(string? dateFilter = null); + Task RetrieveSettings(); + + Task DeleteActivity(string activityId); + + Task?> SaveActivity(ActivityDTO activity); +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Interface/IManageDataService.cs b/salesbook.Shared/Core/Interface/IManageDataService.cs new file mode 100644 index 0000000..e253d59 --- /dev/null +++ b/salesbook.Shared/Core/Interface/IManageDataService.cs @@ -0,0 +1,18 @@ +using System.Linq.Expressions; +using salesbook.Shared.Core.Dto; +using salesbook.Shared.Core.Entity; + +namespace salesbook.Shared.Core.Interface; + +public interface IManageDataService +{ + Task> GetTable(Expression>? whereCond = null) where T : new(); + Task> GetActivity(Expression>? whereCond = null); + + Task InsertOrUpdate(T objectToSave); + + Task Delete(T objectToDelete); + Task DeleteActivity(ActivityDTO activity); + + Task ClearDb(); +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Interface/INetworkService.cs b/salesbook.Shared/Core/Interface/INetworkService.cs new file mode 100644 index 0000000..d397c46 --- /dev/null +++ b/salesbook.Shared/Core/Interface/INetworkService.cs @@ -0,0 +1,6 @@ +namespace salesbook.Shared.Core.Interface; + +public interface INetworkService +{ + public bool IsNetworkAvailable(); +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Interface/ISyncDbService.cs b/salesbook.Shared/Core/Interface/ISyncDbService.cs new file mode 100644 index 0000000..b762c6c --- /dev/null +++ b/salesbook.Shared/Core/Interface/ISyncDbService.cs @@ -0,0 +1,10 @@ +namespace salesbook.Shared.Core.Interface; + +public interface ISyncDbService +{ + Task GetAndSaveActivity(string? dateFilter = null); + Task GetAndSaveCommesse(string? dateFilter = null); + Task GetAndSaveProspect(string? dateFilter = null); + Task GetAndSaveClienti(string? dateFilter = null); + Task GetAndSaveSettings(string? dateFilter = null); +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Messages/Activity/Copy/CopyActivityMessage.cs b/salesbook.Shared/Core/Messages/Activity/Copy/CopyActivityMessage.cs new file mode 100644 index 0000000..7324da0 --- /dev/null +++ b/salesbook.Shared/Core/Messages/Activity/Copy/CopyActivityMessage.cs @@ -0,0 +1,6 @@ +using CommunityToolkit.Mvvm.Messaging.Messages; +using salesbook.Shared.Core.Dto; + +namespace salesbook.Shared.Core.Messages.Activity.Copy; + +public class CopyActivityMessage(ActivityDTO value) : ValueChangedMessage(value); \ No newline at end of file diff --git a/salesbook.Shared/Core/Messages/Activity/Copy/CopyActivityService.cs b/salesbook.Shared/Core/Messages/Activity/Copy/CopyActivityService.cs new file mode 100644 index 0000000..836b2d5 --- /dev/null +++ b/salesbook.Shared/Core/Messages/Activity/Copy/CopyActivityService.cs @@ -0,0 +1,17 @@ +using CommunityToolkit.Mvvm.Messaging; +using salesbook.Shared.Core.Dto; + +namespace salesbook.Shared.Core.Messages.Activity.Copy; + +public class CopyActivityService +{ + public event Action? OnCopyActivity; + + public CopyActivityService(IMessenger messenger) + { + messenger.Register(this, (_, o) => + { + OnCopyActivity?.Invoke(o.Value); + }); + } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Messages/Activity/New/NewActivityMessage.cs b/salesbook.Shared/Core/Messages/Activity/New/NewActivityMessage.cs new file mode 100644 index 0000000..17fab64 --- /dev/null +++ b/salesbook.Shared/Core/Messages/Activity/New/NewActivityMessage.cs @@ -0,0 +1,5 @@ +using CommunityToolkit.Mvvm.Messaging.Messages; + +namespace salesbook.Shared.Core.Messages.Activity.New; + +public class NewActivityMessage(string value) : ValueChangedMessage(value); \ No newline at end of file diff --git a/salesbook.Shared/Core/Messages/Activity/New/NewActivityService.cs b/salesbook.Shared/Core/Messages/Activity/New/NewActivityService.cs new file mode 100644 index 0000000..3fce657 --- /dev/null +++ b/salesbook.Shared/Core/Messages/Activity/New/NewActivityService.cs @@ -0,0 +1,16 @@ +using CommunityToolkit.Mvvm.Messaging; + +namespace salesbook.Shared.Core.Messages.Activity.New; + +public class NewActivityService +{ + public event Action? OnActivityCreated; + + public NewActivityService(IMessenger messenger) + { + messenger.Register(this, (_, o) => + { + OnActivityCreated?.Invoke(o.Value); + }); + } +} diff --git a/salesbook.Shared/Core/Messages/Back/BackNavigationService.cs b/salesbook.Shared/Core/Messages/Back/BackNavigationService.cs new file mode 100644 index 0000000..4220cae --- /dev/null +++ b/salesbook.Shared/Core/Messages/Back/BackNavigationService.cs @@ -0,0 +1,16 @@ +using CommunityToolkit.Mvvm.Messaging; + +namespace salesbook.Shared.Core.Messages.Back; + +public class BackNavigationService +{ + public event Action? OnHardwareBack; + + public BackNavigationService(IMessenger messenger) + { + messenger.Register(this, (_, _) => + { + OnHardwareBack?.Invoke(); + }); + } +} diff --git a/salesbook.Shared/Core/Messages/Back/HardwareBackMessage.cs b/salesbook.Shared/Core/Messages/Back/HardwareBackMessage.cs new file mode 100644 index 0000000..ea2580b --- /dev/null +++ b/salesbook.Shared/Core/Messages/Back/HardwareBackMessage.cs @@ -0,0 +1,5 @@ +using CommunityToolkit.Mvvm.Messaging.Messages; + +namespace salesbook.Shared.Core.Messages.Back; + +public class HardwareBackMessage(string value) : ValueChangedMessage(value); \ No newline at end of file diff --git a/salesbook.Shared/Core/Services/AppAuthenticationStateProvider.cs b/salesbook.Shared/Core/Services/AppAuthenticationStateProvider.cs new file mode 100644 index 0000000..5e69f80 --- /dev/null +++ b/salesbook.Shared/Core/Services/AppAuthenticationStateProvider.cs @@ -0,0 +1,56 @@ +using IntegryApiClient.Core.Domain.Abstraction.Contracts.Account; +using System.Security.Claims; +using Microsoft.AspNetCore.Components.Authorization; + +namespace salesbook.Shared.Core.Services; + +public class AppAuthenticationStateProvider : AuthenticationStateProvider +{ + private readonly IUserSession _userSession; + private readonly IUserAccountService _userAccountService; + + + public AppAuthenticationStateProvider(IUserSession userSession, IUserAccountService userAccountService) + { + _userSession = userSession; + _userAccountService = userAccountService; + + userAccountService.ExpiredUserSession += (_, _) => + NotifyAuthenticationStateChanged(LoadAuthenticationState()); + } + + public override async Task GetAuthenticationStateAsync() + { + return await LoadAuthenticationState(); + } + + public async Task SignOut() + { + await _userAccountService.Logout(); + NotifyAuthenticationState(); + } + + public void NotifyAuthenticationState() + { + NotifyAuthenticationStateChanged(LoadAuthenticationState()); + } + + private async Task LoadAuthenticationState() + { + if (!await _userSession.IsLoggedIn() || !await _userSession.IsRefreshTokenValid()) + { + return new AuthenticationState( + new ClaimsPrincipal( + new ClaimsIdentity() + ) + ); + } + + var claimIdentity = new ClaimsIdentity(_userSession.JwtToken!.Claims, "jwt"); + var user = new ClaimsPrincipal(claimIdentity); + + + var authenticationState = new AuthenticationState(user); + return authenticationState; + } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Services/IntegryApiService.cs b/salesbook.Shared/Core/Services/IntegryApiService.cs new file mode 100644 index 0000000..bbf259e --- /dev/null +++ b/salesbook.Shared/Core/Services/IntegryApiService.cs @@ -0,0 +1,70 @@ +using IntegryApiClient.Core.Domain.Abstraction.Contracts.Account; +using IntegryApiClient.Core.Domain.RestClient.Contacts; +using salesbook.Shared.Core.Dto; +using salesbook.Shared.Core.Entity; +using salesbook.Shared.Core.Interface; + +namespace salesbook.Shared.Core.Services; + +public class IntegryApiService(IIntegryApiRestClient integryApiRestClient, IUserSession userSession) + : IIntegryApiService +{ + public Task?> RetrieveActivity(string? dateFilter) + { + var queryParams = new Dictionary { { "dateFilter", dateFilter ?? "2020-01-01" } }; + + return integryApiRestClient.AuthorizedGet?>("crm/retrieveActivity", queryParams); + } + + public Task?> RetrieveAllCommesse(string? dateFilter) + { + var queryParams = new Dictionary(); + + if (dateFilter != null) + { + queryParams.Add("dateFilter", dateFilter); + } + + return integryApiRestClient.AuthorizedGet?>("crm/retrieveCommesse", queryParams); + } + + public Task RetrieveAnagClie(string? dateFilter) + { + var queryParams = new Dictionary(); + + if (dateFilter != null) + { + queryParams.Add("dateFilter", dateFilter); + } + + return integryApiRestClient.AuthorizedGet("crm/retrieveClienti", queryParams)!; + } + + public Task RetrieveProspect(string? dateFilter) + { + var queryParams = new Dictionary(); + + if (dateFilter != null) + { + queryParams.Add("dateFilter", dateFilter); + } + + return integryApiRestClient.AuthorizedGet("crm/retrieveProspect", queryParams)!; + } + + public Task RetrieveSettings() => + integryApiRestClient.AuthorizedGet("crm/retrieveSettings")!; + + public Task DeleteActivity(string activityId) + { + var queryParams = new Dictionary + { + { "activityId", activityId } + }; + + return integryApiRestClient.AuthorizedGet($"activity/delete", queryParams); + } + + public Task?> SaveActivity(ActivityDTO activity) => + integryApiRestClient.AuthorizedPost?>("crm/saveActivity", activity); +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Utility/UtilityColor.cs b/salesbook.Shared/Core/Utility/UtilityColor.cs new file mode 100644 index 0000000..4b66c92 --- /dev/null +++ b/salesbook.Shared/Core/Utility/UtilityColor.cs @@ -0,0 +1,118 @@ +namespace salesbook.Shared.Core.Utility; + +public static class UtilityColor +{ + public static string CalcHexColor(string input) + { + try + { + var hue = (int)(Math.Abs(input.GetHashCode()) * 137.508 % 360); + + var data = new HSL(hue, 0.90f, 0.85f); + var myColor = HSLToRGB(data); + + return myColor.R.ToString("X2") + myColor.G.ToString("X2") + myColor.B.ToString("X2"); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + return "dddddd"; + } + } + + private struct RGB(byte r, byte g, byte b) + { + public byte R + { + get => r; + set => r = value; + } + + public byte G + { + get => g; + set => g = value; + } + + public byte B + { + get => b; + set => b = value; + } + + public bool Equals(RGB rgb) + { + return (this.R == rgb.R) && (this.G == rgb.G) && (this.B == rgb.B); + } + } + + private struct HSL(int h, float s, float l) + { + public int H + { + get => h; + set => h = value; + } + + public float S + { + get => s; + set => s = value; + } + + public float L + { + get => l; + set => l = value; + } + + public bool Equals(HSL hsl) + { + return H == hsl.H && (this.S == hsl.S) && (this.L == hsl.L); + } + } + + private static RGB HSLToRGB(HSL hsl) + { + byte r; + byte g; + byte b; + + var hue = (float)hsl.H / 360; + if (hsl.S == 0) + { + r = g = b = (byte)(hsl.L * 255); + } + else + { + var v2 = hsl.L < 0.5 ? hsl.L * (1 + hsl.S) : hsl.L + hsl.S - hsl.L * hsl.S; + var v1 = 2 * hsl.L - v2; + + r = (byte)(255 * HueToRGB(v1, v2, hue + 1.0f / 3)); + g = (byte)(255 * HueToRGB(v1, v2, hue)); + b = (byte)(255 * HueToRGB(v1, v2, hue - 1.0f / 3)); + } + + return new RGB(r, g, b); + } + + private static float HueToRGB(float v1, float v2, float vH) + { + if (vH < 0) + vH += 1; + + if (vH > 1) + vH -= 1; + + if (6 * vH < 1) + return v1 + (v2 - v1) * 6 * vH; + + if (2 * vH < 1) + return v2; + + if (3 * vH < 2) + return v1 + (v2 - v1) * (2.0f / 3 - vH) * 6; + + return v1; + } +} \ No newline at end of file diff --git a/salesbook.Shared/Core/Utility/UtilityString.cs b/salesbook.Shared/Core/Utility/UtilityString.cs new file mode 100644 index 0000000..1951677 --- /dev/null +++ b/salesbook.Shared/Core/Utility/UtilityString.cs @@ -0,0 +1,38 @@ +using System.Globalization; + +namespace salesbook.Shared.Core.Utility; + +public static class UtilityString +{ + public static string ExtractInitials(string fullname) + { + return string.Concat(fullname + .Split(' ', StringSplitOptions.RemoveEmptyEntries) + .Take(3) + .Select(word => char.ToUpper(word[0]))); + } + + public static string FirstCharToUpper(this string input) => + input switch + { + null => throw new ArgumentNullException(nameof(input)), + "" => throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)), + _ => input[0].ToString().ToUpper() + input[1..] + }; + + public static (string Upper, string Lower, string SentenceCase, string TitleCase) FormatString(string input) + { + if (string.IsNullOrWhiteSpace(input)) + return (string.Empty, string.Empty, string.Empty, string.Empty); + + var upper = input.ToUpper(); + var lower = input.ToLower(); + + var sentenceCase = char.ToUpper(lower[0]) + lower[1..]; + + var textInfo = CultureInfo.CurrentCulture.TextInfo; + var titleCase = textInfo.ToTitleCase(lower); + + return (upper, lower, sentenceCase, titleCase); + } +} \ No newline at end of file diff --git a/Template.Shared/InteractiveRenderSettings.cs b/salesbook.Shared/InteractiveRenderSettings.cs similarity index 95% rename from Template.Shared/InteractiveRenderSettings.cs rename to salesbook.Shared/InteractiveRenderSettings.cs index b6aadcf..2acaaa7 100644 --- a/Template.Shared/InteractiveRenderSettings.cs +++ b/salesbook.Shared/InteractiveRenderSettings.cs @@ -1,7 +1,7 @@ using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; -namespace Template.Shared; +namespace salesbook.Shared; public static class InteractiveRenderSettings { diff --git a/salesbook.Shared/_Imports.razor b/salesbook.Shared/_Imports.razor new file mode 100644 index 0000000..dc504b7 --- /dev/null +++ b/salesbook.Shared/_Imports.razor @@ -0,0 +1,24 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using IntegryApiClient.Core.Domain.Abstraction.Contracts.Account +@using IntegryApiClient.Core.Domain.Abstraction.Contracts.Storage +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using salesbook.Shared.Components +@using MudBlazor +@using MudExtensions +@using MudBlazor.ThemeManager +@using salesbook.Shared.Core.Helpers +@using salesbook.Shared.Components.SingleElements.Card +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Authorization +@using salesbook.Shared.Core.Utility +@using static InteractiveRenderSettings + +@inject NavigationManager NavigationManager +@inject IUserSession UserSession +@inject ILocalStorage LocalStorage +@inject ISnackbar Snackbar diff --git a/salesbook.Shared/salesbook.Shared.csproj b/salesbook.Shared/salesbook.Shared.csproj new file mode 100644 index 0000000..def8127 --- /dev/null +++ b/salesbook.Shared/salesbook.Shared.csproj @@ -0,0 +1,31 @@ + + + + net9.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/salesbook.Shared/wwwroot/css/app.css b/salesbook.Shared/wwwroot/css/app.css new file mode 100644 index 0000000..f274c42 --- /dev/null +++ b/salesbook.Shared/wwwroot/css/app.css @@ -0,0 +1,233 @@ +html { overflow: hidden; } + +.page, article, main { height: 100% !important; } + +#app { height: 100vh; } + +html, body { + font-family: "Nunito", sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 1.8; + color: black; +} + +* { font-family: "Nunito", sans-serif !important; } + +.mud-button-label { font-weight: 700 !important; } + +a, .btn-link { + /*color: #006bb7;*/ + text-decoration: none; + color: inherit; +} + +.btn-primary { + color: #fff; + background-color: var(--primary-color); + border-color: var(--darker-color); +} + +.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; } + +.content { + padding-top: 1.1rem; + display: flex; + align-items: center; + flex-direction: column; + height: 84vh; +} + +h1:focus { outline: none; } + +.valid.modified:not([type=checkbox]) { outline: 1px solid #26b050; } + +.invalid { outline: 1px solid #e50000; } + +.validation-message { color: #e50000; } + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + +#blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; +} + +.blazor-error-boundary { + background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; + padding: 1rem 1rem 1rem 3.7rem; + color: white; +} + +.blazor-error-boundary::after { content: "An error has occurred." } + +.status-bar-safe-area { display: none; } + +.page-title { + font-size: x-large; + font-weight: 800; + margin: 0; + line-height: normal; + color: var(--mud-palette-text-primary); +} + +.custom-mudfab { + position: fixed !important; + bottom: 4rem; + margin-bottom: 16px; + right: 16px; +} + +.custom_popover { + border-radius: 5px !important; + background-color: var(--mud-palette-drawer-background) !important; + box-shadow: 4px 4px 20px 0px rgba(0, 0, 0, 0.26), 0px 0px 0px 1px rgb(255 255 255 / 25%) !important; + color: var(--mud-palette-text-primary) !important; +} + + .custom_popover .mud-divider { + border-color: var(--mud-palette-text-primary) !important; + } + +.custom_popover .mud-list-padding { padding: 3px 0px 3px 0px !important; } + +.custom_popover .mud-list-item { padding: 5px 12px 5px 12px; } + +.custom_popover .mud-menu-item-text { font-weight: 600; } + +.custom_popover .mud-list-item-icon { + min-width: fit-content !important; + padding-right: 12px !important; +} + +.divider { + display: block; + width: 100%; + border: .05rem solid var(--card-border-color); + margin: 1rem 0; +} + +/*Spinner*/ + +.spinner-container { + display: flex; + justify-content: center; + height: 100vh; + align-items: center; + color: var(--mud-palette-primary); +} + +.not-fullScreen { + height: auto !important; + padding: 2rem 0 !important; +} + +.loader { + width: 50px; + aspect-ratio: 1; + border-radius: 50%; + border: 8px solid #0000; + border-right-color: var(--mud-palette-secondary); + position: relative; + animation: l24 1s infinite linear; +} + +.loader:before, +.loader:after { + content: ""; + position: absolute; + inset: -8px; + border-radius: 50%; + border: inherit; + animation: inherit; + animation-duration: 2s; +} + +.loader:after { animation-duration: 4s; } + +@keyframes l24 { + 100% { transform: rotate(1turn) } +} + +/*MudBlazor Personalization*/ + +.mud-button-group-horizontal:not(.mud-button-group-rtl) > .mud-button-root:not(:last-child), .mud-button-group-horizontal:not(.mud-button-group-rtl) > :not(:last-child) .mud-button-root { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.mud-button-group-horizontal:not(.mud-button-group-rtl) > .mud-button-root:not(:first-child), .mud-button-group-horizontal:not(.mud-button-group-rtl) > :not(:first-child) .mud-button-root { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.customDialog-form .mud-dialog-content { + padding: 0 .75rem; + margin: 0; +} + +.custom-item-select { padding: 6px 16px; } + +.custom-item-select .mud-typography-body1 { + font-weight: 600; + font-size: .9rem; +} + +.container { + padding-right: var(--m-page-x) !important; + padding-left: var(--m-page-x) !important; +} + +.lm-container { + padding-right: calc(var(--m-page-x) * 0.5) !important; + padding-left: calc(var(--m-page-x) * 0.5) !important; +} + +.mud-message-box > .mud-dialog-title > h6 { + font-weight: 800 !important; +} + +.mud-dialog-actions button { + margin-left: .5rem !important; + margin-right: .5rem !important; +} + +@supports (-webkit-touch-callout: none) { + .status-bar-safe-area { + display: flex; + position: fixed; + top: 0; + height: env(safe-area-inset-top); + width: 100%; + z-index: 1; + background-color: var(--mud-palette-surface); + } + + .modal { padding-top: env(safe-area-inset-top); } + + .safe-area-bottom { margin-bottom: env(safe-area-inset-bottom) !important; } + + .pb-safe-area { padding-bottom: env(safe-area-inset-bottom) !important; } + + #app { + margin-top: env(safe-area-inset-top); + margin-bottom: env(safe-area-inset-bottom); + height: calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom)); + } + + .flex-column, .navbar-brand { padding-left: env(safe-area-inset-left); } + + .customDialog-form .mud-dialog-content { margin-top: env(safe-area-inset-top); } +} \ No newline at end of file diff --git a/Template.Shared/wwwroot/css/bootstrap/bootstrap-icons.min.css b/salesbook.Shared/wwwroot/css/bootstrap/bootstrap-icons.min.css similarity index 100% rename from Template.Shared/wwwroot/css/bootstrap/bootstrap-icons.min.css rename to salesbook.Shared/wwwroot/css/bootstrap/bootstrap-icons.min.css diff --git a/Template.Shared/wwwroot/css/bootstrap/bootstrap.min.css b/salesbook.Shared/wwwroot/css/bootstrap/bootstrap.min.css similarity index 100% rename from Template.Shared/wwwroot/css/bootstrap/bootstrap.min.css rename to salesbook.Shared/wwwroot/css/bootstrap/bootstrap.min.css diff --git a/Template.Shared/wwwroot/css/bootstrap/bootstrap.min.css.map b/salesbook.Shared/wwwroot/css/bootstrap/bootstrap.min.css.map similarity index 72% rename from Template.Shared/wwwroot/css/bootstrap/bootstrap.min.css.map rename to salesbook.Shared/wwwroot/css/bootstrap/bootstrap.min.css.map index 8c582d2..876d76b 100644 --- a/Template.Shared/wwwroot/css/bootstrap/bootstrap.min.css.map +++ b/salesbook.Shared/wwwroot/css/bootstrap/bootstrap.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["../../scss/mixins/_banner.scss","../../scss/_root.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","../../scss/mixins/_color-mode.scss","../../scss/_reboot.scss","../../scss/mixins/_border-radius.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/_tables.scss","../../scss/mixins/_table-variants.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_form-select.scss","../../scss/forms/_form-check.scss","../../scss/forms/_form-range.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/mixins/_forms.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/_button-group.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_accordion.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/_alert.scss","../../scss/_progress.scss","../../scss/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/mixins/_backdrop.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/_offcanvas.scss","../../scss/_placeholders.scss","../../scss/helpers/_color-bg.scss","../../scss/helpers/_colored-links.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/helpers/_ratio.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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","sourcesContent":["@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.2 (https://getbootstrap.com/)\n * Copyright 2011-2023 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n",":root,\n[data-bs-theme=\"light\"] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n","@charset \"UTF-8\";\n/*!\n * Bootstrap v5.3.2 (https://getbootstrap.com/)\n * Copyright 2011-2023 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root,\n[data-bs-theme=light] {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-primary-text-emphasis: #052c65;\n --bs-secondary-text-emphasis: #2b2f32;\n --bs-success-text-emphasis: #0a3622;\n --bs-info-text-emphasis: #055160;\n --bs-warning-text-emphasis: #664d03;\n --bs-danger-text-emphasis: #58151c;\n --bs-light-text-emphasis: #495057;\n --bs-dark-text-emphasis: #495057;\n --bs-primary-bg-subtle: #cfe2ff;\n --bs-secondary-bg-subtle: #e2e3e5;\n --bs-success-bg-subtle: #d1e7dd;\n --bs-info-bg-subtle: #cff4fc;\n --bs-warning-bg-subtle: #fff3cd;\n --bs-danger-bg-subtle: #f8d7da;\n --bs-light-bg-subtle: #fcfcfd;\n --bs-dark-bg-subtle: #ced4da;\n --bs-primary-border-subtle: #9ec5fe;\n --bs-secondary-border-subtle: #c4c8cb;\n --bs-success-border-subtle: #a3cfbb;\n --bs-info-border-subtle: #9eeaf9;\n --bs-warning-border-subtle: #ffe69c;\n --bs-danger-border-subtle: #f1aeb5;\n --bs-light-border-subtle: #e9ecef;\n --bs-dark-border-subtle: #adb5bd;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg: #fff;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-emphasis-color: #000;\n --bs-emphasis-color-rgb: 0, 0, 0;\n --bs-secondary-color: rgba(33, 37, 41, 0.75);\n --bs-secondary-color-rgb: 33, 37, 41;\n --bs-secondary-bg: #e9ecef;\n --bs-secondary-bg-rgb: 233, 236, 239;\n --bs-tertiary-color: rgba(33, 37, 41, 0.5);\n --bs-tertiary-color-rgb: 33, 37, 41;\n --bs-tertiary-bg: #f8f9fa;\n --bs-tertiary-bg-rgb: 248, 249, 250;\n --bs-heading-color: inherit;\n --bs-link-color: #0d6efd;\n --bs-link-color-rgb: 13, 110, 253;\n --bs-link-decoration: underline;\n --bs-link-hover-color: #0a58ca;\n --bs-link-hover-color-rgb: 10, 88, 202;\n --bs-code-color: #d63384;\n --bs-highlight-color: #212529;\n --bs-highlight-bg: #fff3cd;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-xxl: 2rem;\n --bs-border-radius-2xl: var(--bs-border-radius-xxl);\n --bs-border-radius-pill: 50rem;\n --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --bs-focus-ring-width: 0.25rem;\n --bs-focus-ring-opacity: 0.25;\n --bs-focus-ring-color: rgba(13, 110, 253, 0.25);\n --bs-form-valid-color: #198754;\n --bs-form-valid-border-color: #198754;\n --bs-form-invalid-color: #dc3545;\n --bs-form-invalid-border-color: #dc3545;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n --bs-body-color: #dee2e6;\n --bs-body-color-rgb: 222, 226, 230;\n --bs-body-bg: #212529;\n --bs-body-bg-rgb: 33, 37, 41;\n --bs-emphasis-color: #fff;\n --bs-emphasis-color-rgb: 255, 255, 255;\n --bs-secondary-color: rgba(222, 226, 230, 0.75);\n --bs-secondary-color-rgb: 222, 226, 230;\n --bs-secondary-bg: #343a40;\n --bs-secondary-bg-rgb: 52, 58, 64;\n --bs-tertiary-color: rgba(222, 226, 230, 0.5);\n --bs-tertiary-color-rgb: 222, 226, 230;\n --bs-tertiary-bg: #2b3035;\n --bs-tertiary-bg-rgb: 43, 48, 53;\n --bs-primary-text-emphasis: #6ea8fe;\n --bs-secondary-text-emphasis: #a7acb1;\n --bs-success-text-emphasis: #75b798;\n --bs-info-text-emphasis: #6edff6;\n --bs-warning-text-emphasis: #ffda6a;\n --bs-danger-text-emphasis: #ea868f;\n --bs-light-text-emphasis: #f8f9fa;\n --bs-dark-text-emphasis: #dee2e6;\n --bs-primary-bg-subtle: #031633;\n --bs-secondary-bg-subtle: #161719;\n --bs-success-bg-subtle: #051b11;\n --bs-info-bg-subtle: #032830;\n --bs-warning-bg-subtle: #332701;\n --bs-danger-bg-subtle: #2c0b0e;\n --bs-light-bg-subtle: #343a40;\n --bs-dark-bg-subtle: #1a1d20;\n --bs-primary-border-subtle: #084298;\n --bs-secondary-border-subtle: #41464b;\n --bs-success-border-subtle: #0f5132;\n --bs-info-border-subtle: #087990;\n --bs-warning-border-subtle: #997404;\n --bs-danger-border-subtle: #842029;\n --bs-light-border-subtle: #495057;\n --bs-dark-border-subtle: #343a40;\n --bs-heading-color: inherit;\n --bs-link-color: #6ea8fe;\n --bs-link-hover-color: #8bb9fe;\n --bs-link-color-rgb: 110, 168, 254;\n --bs-link-hover-color-rgb: 139, 185, 254;\n --bs-code-color: #e685b5;\n --bs-highlight-color: #dee2e6;\n --bs-highlight-bg: #664d03;\n --bs-border-color: #495057;\n --bs-border-color-translucent: rgba(255, 255, 255, 0.15);\n --bs-form-valid-color: #75b798;\n --bs-form-valid-border-color: #75b798;\n --bs-form-invalid-color: #ea868f;\n --bs-form-invalid-border-color: #ea868f;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: var(--bs-border-width) solid;\n opacity: 0.25;\n}\n\nh6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n color: var(--bs-heading-color);\n}\n\nh1, .h1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1, .h1 {\n font-size: 2.5rem;\n }\n}\n\nh2, .h2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2, .h2 {\n font-size: 2rem;\n }\n}\n\nh3, .h3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3, .h3 {\n font-size: 1.75rem;\n }\n}\n\nh4, .h4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4, .h4 {\n font-size: 1.5rem;\n }\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title] {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall, .small {\n font-size: 0.875em;\n}\n\nmark, .mark {\n padding: 0.1875em;\n color: var(--bs-highlight-color);\n background-color: var(--bs-highlight-bg);\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));\n text-decoration: underline;\n}\na:hover {\n --bs-link-color-rgb: var(--bs-link-hover-color-rgb);\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: var(--bs-code-color);\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.1875rem 0.375rem;\n font-size: 0.875em;\n color: var(--bs-body-bg);\n background-color: var(--bs-body-color);\n border-radius: 0.25rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-secondary-color);\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\n::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: calc(1.625rem + 4.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-1 {\n font-size: 5rem;\n }\n}\n\n.display-2 {\n font-size: calc(1.575rem + 3.9vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-2 {\n font-size: 4.5rem;\n }\n}\n\n.display-3 {\n font-size: calc(1.525rem + 3.3vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-3 {\n font-size: 4rem;\n }\n}\n\n.display-4 {\n font-size: calc(1.475rem + 2.7vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-4 {\n font-size: 3.5rem;\n }\n}\n\n.display-5 {\n font-size: calc(1.425rem + 2.1vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-5 {\n font-size: 3rem;\n }\n}\n\n.display-6 {\n font-size: calc(1.375rem + 1.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-6 {\n font-size: 2.5rem;\n }\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 0.875em;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n.blockquote > :last-child {\n margin-bottom: 0;\n}\n\n.blockquote-footer {\n margin-top: -1rem;\n margin-bottom: 1rem;\n font-size: 0.875em;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: var(--bs-body-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 0.875em;\n color: var(--bs-secondary-color);\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n:root {\n --bs-breakpoint-xs: 0;\n --bs-breakpoint-sm: 576px;\n --bs-breakpoint-md: 768px;\n --bs-breakpoint-lg: 992px;\n --bs-breakpoint-xl: 1200px;\n --bs-breakpoint-xxl: 1400px;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.table {\n --bs-table-color-type: initial;\n --bs-table-bg-type: initial;\n --bs-table-color-state: initial;\n --bs-table-bg-state: initial;\n --bs-table-color: var(--bs-emphasis-color);\n --bs-table-bg: var(--bs-body-bg);\n --bs-table-border-color: var(--bs-border-color);\n --bs-table-accent-bg: transparent;\n --bs-table-striped-color: var(--bs-emphasis-color);\n --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);\n --bs-table-active-color: var(--bs-emphasis-color);\n --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1);\n --bs-table-hover-color: var(--bs-emphasis-color);\n --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--bs-table-border-color);\n}\n.table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));\n background-color: var(--bs-table-bg);\n border-bottom-width: var(--bs-border-width);\n box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));\n}\n.table > tbody {\n vertical-align: inherit;\n}\n.table > thead {\n vertical-align: bottom;\n}\n\n.table-group-divider {\n border-top: calc(var(--bs-border-width) * 2) solid currentcolor;\n}\n\n.caption-top {\n caption-side: top;\n}\n\n.table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n}\n\n.table-bordered > :not(caption) > * {\n border-width: var(--bs-border-width) 0;\n}\n.table-bordered > :not(caption) > * > * {\n border-width: 0 var(--bs-border-width);\n}\n\n.table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n}\n.table-borderless > :not(:first-child) {\n border-top-width: 0;\n}\n\n.table-striped > tbody > tr:nth-of-type(odd) > * {\n --bs-table-color-type: var(--bs-table-striped-color);\n --bs-table-bg-type: var(--bs-table-striped-bg);\n}\n\n.table-striped-columns > :not(caption) > tr > :nth-child(even) {\n --bs-table-color-type: var(--bs-table-striped-color);\n --bs-table-bg-type: var(--bs-table-striped-bg);\n}\n\n.table-active {\n --bs-table-color-state: var(--bs-table-active-color);\n --bs-table-bg-state: var(--bs-table-active-bg);\n}\n\n.table-hover > tbody > tr:hover > * {\n --bs-table-color-state: var(--bs-table-hover-color);\n --bs-table-bg-state: var(--bs-table-hover-bg);\n}\n\n.table-primary {\n --bs-table-color: #000;\n --bs-table-bg: #cfe2ff;\n --bs-table-border-color: #a6b5cc;\n --bs-table-striped-bg: #c5d7f2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bacbe6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfd1ec;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-secondary {\n --bs-table-color: #000;\n --bs-table-bg: #e2e3e5;\n --bs-table-border-color: #b5b6b7;\n --bs-table-striped-bg: #d7d8da;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #cbccce;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #d1d2d4;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-success {\n --bs-table-color: #000;\n --bs-table-bg: #d1e7dd;\n --bs-table-border-color: #a7b9b1;\n --bs-table-striped-bg: #c7dbd2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bcd0c7;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c1d6cc;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-info {\n --bs-table-color: #000;\n --bs-table-bg: #cff4fc;\n --bs-table-border-color: #a6c3ca;\n --bs-table-striped-bg: #c5e8ef;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #badce3;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfe2e9;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-warning {\n --bs-table-color: #000;\n --bs-table-bg: #fff3cd;\n --bs-table-border-color: #ccc2a4;\n --bs-table-striped-bg: #f2e7c3;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #e6dbb9;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #ece1be;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-danger {\n --bs-table-color: #000;\n --bs-table-bg: #f8d7da;\n --bs-table-border-color: #c6acae;\n --bs-table-striped-bg: #eccccf;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfc2c4;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5c7ca;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-light {\n --bs-table-color: #000;\n --bs-table-bg: #f8f9fa;\n --bs-table-border-color: #c6c7c8;\n --bs-table-striped-bg: #ecedee;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfe0e1;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5e6e7;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-dark {\n --bs-table-color: #fff;\n --bs-table-bg: #212529;\n --bs-table-border-color: #4d5154;\n --bs-table-striped-bg: #2c3034;\n --bs-table-striped-color: #fff;\n --bs-table-active-bg: #373b3e;\n --bs-table-active-color: #fff;\n --bs-table-hover-bg: #323539;\n --bs-table-hover-color: #fff;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 767.98px) {\n .table-responsive-md {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1399.98px) {\n .table-responsive-xxl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n.form-label {\n margin-bottom: 0.5rem;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + var(--bs-border-width));\n padding-bottom: calc(0.375rem + var(--bs-border-width));\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + var(--bs-border-width));\n padding-bottom: calc(0.5rem + var(--bs-border-width));\n font-size: 1.25rem;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + var(--bs-border-width));\n padding-bottom: calc(0.25rem + var(--bs-border-width));\n font-size: 0.875rem;\n}\n\n.form-text {\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-secondary-color);\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: var(--bs-body-bg);\n background-clip: padding-box;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control[type=file] {\n overflow: hidden;\n}\n.form-control[type=file]:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control:focus {\n color: var(--bs-body-color);\n background-color: var(--bs-body-bg);\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-control::-webkit-date-and-time-value {\n min-width: 85px;\n height: 1.5em;\n margin: 0;\n}\n.form-control::-webkit-datetime-edit {\n display: block;\n padding: 0;\n}\n.form-control::-moz-placeholder {\n color: var(--bs-secondary-color);\n opacity: 1;\n}\n.form-control::placeholder {\n color: var(--bs-secondary-color);\n opacity: 1;\n}\n.form-control:disabled {\n background-color: var(--bs-secondary-bg);\n opacity: 1;\n}\n.form-control::-webkit-file-upload-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n -webkit-margin-end: 0.75rem;\n margin-inline-end: 0.75rem;\n color: var(--bs-body-color);\n background-color: var(--bs-tertiary-bg);\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--bs-border-width);\n border-radius: 0;\n -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n.form-control::file-selector-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n -webkit-margin-end: 0.75rem;\n margin-inline-end: 0.75rem;\n color: var(--bs-body-color);\n background-color: var(--bs-tertiary-bg);\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--bs-border-width);\n border-radius: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control::-webkit-file-upload-button {\n -webkit-transition: none;\n transition: none;\n }\n .form-control::file-selector-button {\n transition: none;\n }\n}\n.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {\n background-color: var(--bs-secondary-bg);\n}\n.form-control:hover:not(:disabled):not([readonly])::file-selector-button {\n background-color: var(--bs-secondary-bg);\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n line-height: 1.5;\n color: var(--bs-body-color);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--bs-border-width) 0;\n}\n.form-control-plaintext:focus {\n outline: 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n.form-control-sm::-webkit-file-upload-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n -webkit-margin-end: 0.5rem;\n margin-inline-end: 0.5rem;\n}\n.form-control-sm::file-selector-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n -webkit-margin-end: 0.5rem;\n margin-inline-end: 0.5rem;\n}\n\n.form-control-lg {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n.form-control-lg::-webkit-file-upload-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n -webkit-margin-end: 1rem;\n margin-inline-end: 1rem;\n}\n.form-control-lg::file-selector-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n -webkit-margin-end: 1rem;\n margin-inline-end: 1rem;\n}\n\ntextarea.form-control {\n min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n}\ntextarea.form-control-sm {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n}\ntextarea.form-control-lg {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n}\n\n.form-control-color {\n width: 3rem;\n height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n padding: 0.375rem;\n}\n.form-control-color:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control-color::-moz-color-swatch {\n border: 0 !important;\n border-radius: var(--bs-border-radius);\n}\n.form-control-color::-webkit-color-swatch {\n border: 0 !important;\n border-radius: var(--bs-border-radius);\n}\n.form-control-color.form-control-sm {\n height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n}\n.form-control-color.form-control-lg {\n height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n}\n\n.form-select {\n --bs-form-select-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n display: block;\n width: 100%;\n padding: 0.375rem 2.25rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: var(--bs-body-bg);\n background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-select {\n transition: none;\n }\n}\n.form-select:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-select[multiple], .form-select[size]:not([size=\"1\"]) {\n padding-right: 0.75rem;\n background-image: none;\n}\n.form-select:disabled {\n background-color: var(--bs-secondary-bg);\n}\n.form-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 var(--bs-body-color);\n}\n\n.form-select-sm {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.form-select-lg {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n[data-bs-theme=dark] .form-select {\n --bs-form-select-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n}\n\n.form-check {\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5em;\n margin-bottom: 0.125rem;\n}\n.form-check .form-check-input {\n float: left;\n margin-left: -1.5em;\n}\n\n.form-check-reverse {\n padding-right: 1.5em;\n padding-left: 0;\n text-align: right;\n}\n.form-check-reverse .form-check-input {\n float: right;\n margin-right: -1.5em;\n margin-left: 0;\n}\n\n.form-check-input {\n --bs-form-check-bg: var(--bs-body-bg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: var(--bs-form-check-bg);\n background-image: var(--bs-form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--bs-border-width) solid var(--bs-border-color);\n -webkit-print-color-adjust: exact;\n color-adjust: exact;\n print-color-adjust: exact;\n}\n.form-check-input[type=checkbox] {\n border-radius: 0.25em;\n}\n.form-check-input[type=radio] {\n border-radius: 50%;\n}\n.form-check-input:active {\n filter: brightness(90%);\n}\n.form-check-input:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-check-input:checked {\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.form-check-input:checked[type=checkbox] {\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\");\n}\n.form-check-input:checked[type=radio] {\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-check-input[type=checkbox]:indeterminate {\n background-color: #0d6efd;\n border-color: #0d6efd;\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n}\n.form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: 0.5;\n}\n\n.form-switch {\n padding-left: 2.5em;\n}\n.form-switch .form-check-input {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");\n width: 2em;\n margin-left: -2.5em;\n background-image: var(--bs-form-switch-bg);\n background-position: left center;\n border-radius: 2em;\n transition: background-position 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-switch .form-check-input {\n transition: none;\n }\n}\n.form-switch .form-check-input:focus {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\");\n}\n.form-switch .form-check-input:checked {\n background-position: right center;\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-switch.form-check-reverse {\n padding-right: 2.5em;\n padding-left: 0;\n}\n.form-switch.form-check-reverse .form-check-input {\n margin-right: -2.5em;\n margin-left: 0;\n}\n\n.form-check-inline {\n display: inline-block;\n margin-right: 1rem;\n}\n\n.btn-check {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.btn-check[disabled] + .btn, .btn-check:disabled + .btn {\n pointer-events: none;\n filter: none;\n opacity: 0.65;\n}\n\n[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e\");\n}\n\n.form-range {\n width: 100%;\n height: 1.5rem;\n padding: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: transparent;\n}\n.form-range:focus {\n outline: 0;\n}\n.form-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-range::-moz-focus-outer {\n border: 0;\n}\n.form-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n -webkit-appearance: none;\n appearance: none;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n -webkit-transition: none;\n transition: none;\n }\n}\n.form-range::-webkit-slider-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: var(--bs-secondary-bg);\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n -moz-appearance: none;\n appearance: none;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n -moz-transition: none;\n transition: none;\n }\n}\n.form-range::-moz-range-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: var(--bs-secondary-bg);\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range:disabled {\n pointer-events: none;\n}\n.form-range:disabled::-webkit-slider-thumb {\n background-color: var(--bs-secondary-color);\n}\n.form-range:disabled::-moz-range-thumb {\n background-color: var(--bs-secondary-color);\n}\n\n.form-floating {\n position: relative;\n}\n.form-floating > .form-control,\n.form-floating > .form-control-plaintext,\n.form-floating > .form-select {\n height: calc(3.5rem + calc(var(--bs-border-width) * 2));\n min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));\n line-height: 1.25;\n}\n.form-floating > label {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n height: 100%;\n padding: 1rem 0.75rem;\n overflow: hidden;\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--bs-border-width) solid transparent;\n transform-origin: 0 0;\n transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n}\n.form-floating > .form-control,\n.form-floating > .form-control-plaintext {\n padding: 1rem 0.75rem;\n}\n.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder {\n color: transparent;\n}\n.form-floating > .form-control::placeholder,\n.form-floating > .form-control-plaintext::placeholder {\n color: transparent;\n}\n.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),\n.form-floating > .form-control-plaintext:focus,\n.form-floating > .form-control-plaintext:not(:placeholder-shown) {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:-webkit-autofill,\n.form-floating > .form-control-plaintext:-webkit-autofill {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-select {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control:focus ~ label,\n.form-floating > .form-control:not(:placeholder-shown) ~ label,\n.form-floating > .form-control-plaintext ~ label,\n.form-floating > .form-select ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label::after {\n position: absolute;\n inset: 1rem 0.375rem;\n z-index: -1;\n height: 1.5em;\n content: \"\";\n background-color: var(--bs-body-bg);\n border-radius: var(--bs-border-radius);\n}\n.form-floating > .form-control:focus ~ label::after,\n.form-floating > .form-control:not(:placeholder-shown) ~ label::after,\n.form-floating > .form-control-plaintext ~ label::after,\n.form-floating > .form-select ~ label::after {\n position: absolute;\n inset: 1rem 0.375rem;\n z-index: -1;\n height: 1.5em;\n content: \"\";\n background-color: var(--bs-body-bg);\n border-radius: var(--bs-border-radius);\n}\n.form-floating > .form-control:-webkit-autofill ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control-plaintext ~ label {\n border-width: var(--bs-border-width) 0;\n}\n.form-floating > :disabled ~ label,\n.form-floating > .form-control:disabled ~ label {\n color: #6c757d;\n}\n.form-floating > :disabled ~ label::after,\n.form-floating > .form-control:disabled ~ label::after {\n background-color: var(--bs-secondary-bg);\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-select,\n.input-group > .form-floating {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n}\n.input-group > .form-control:focus,\n.input-group > .form-select:focus,\n.input-group > .form-floating:focus-within {\n z-index: 5;\n}\n.input-group .btn {\n position: relative;\n z-index: 2;\n}\n.input-group .btn:focus {\n z-index: 5;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--bs-tertiary-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n padding-right: 3rem;\n}\n\n.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3),\n.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,\n.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4),\n.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control,\n.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {\n margin-left: calc(var(--bs-border-width) * -1);\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group > .form-floating:not(:first-child) > .form-control,\n.input-group > .form-floating:not(:first-child) > .form-select {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-valid-color);\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: var(--bs-success);\n border-radius: var(--bs-border-radius);\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: var(--bs-form-valid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: var(--bs-form-valid-border-color);\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:valid, .form-select.is-valid {\n border-color: var(--bs-form-valid-border-color);\n}\n.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size=\"1\"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size=\"1\"] {\n --bs-form-select-bg-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n padding-right: 4.125rem;\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:valid:focus, .form-select.is-valid:focus {\n border-color: var(--bs-form-valid-border-color);\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);\n}\n\n.was-validated .form-control-color:valid, .form-control-color.is-valid {\n width: calc(3rem + calc(1.5em + 0.75rem));\n}\n\n.was-validated .form-check-input:valid, .form-check-input.is-valid {\n border-color: var(--bs-form-valid-border-color);\n}\n.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {\n background-color: var(--bs-form-valid-color);\n}\n.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);\n}\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: var(--bs-form-valid-color);\n}\n\n.form-check-inline .form-check-input ~ .valid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,\n.was-validated .input-group > .form-select:not(:focus):valid,\n.input-group > .form-select:not(:focus).is-valid,\n.was-validated .input-group > .form-floating:not(:focus-within):valid,\n.input-group > .form-floating:not(:focus-within).is-valid {\n z-index: 3;\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-invalid-color);\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: var(--bs-danger);\n border-radius: var(--bs-border-radius);\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: var(--bs-form-invalid-border-color);\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:invalid, .form-select.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n}\n.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size=\"1\"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size=\"1\"] {\n --bs-form-select-bg-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n padding-right: 4.125rem;\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {\n border-color: var(--bs-form-invalid-border-color);\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\n}\n\n.was-validated .form-control-color:invalid, .form-control-color.is-invalid {\n width: calc(3rem + calc(1.5em + 0.75rem));\n}\n\n.was-validated .form-check-input:invalid, .form-check-input.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n}\n.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {\n background-color: var(--bs-form-invalid-color);\n}\n.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\n}\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: var(--bs-form-invalid-color);\n}\n\n.form-check-inline .form-check-input ~ .invalid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,\n.was-validated .input-group > .form-select:not(:focus):invalid,\n.input-group > .form-select:not(:focus).is-invalid,\n.was-validated .input-group > .form-floating:not(:focus-within):invalid,\n.input-group > .form-floating:not(:focus-within).is-invalid {\n z-index: 4;\n}\n\n.btn {\n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n}\n.btn-check + .btn:hover {\n color: var(--bs-btn-color);\n background-color: var(--bs-btn-bg);\n border-color: var(--bs-btn-border-color);\n}\n.btn:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:focus-visible + .btn {\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {\n color: var(--bs-btn-active-color);\n background-color: var(--bs-btn-active-bg);\n border-color: var(--bs-btn-active-border-color);\n}\n.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn:disabled, .btn.disabled, fieldset:disabled .btn {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n}\n\n.btn-primary {\n --bs-btn-color: #fff;\n --bs-btn-bg: #0d6efd;\n --bs-btn-border-color: #0d6efd;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #0b5ed7;\n --bs-btn-hover-border-color: #0a58ca;\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #0d6efd;\n --bs-btn-disabled-border-color: #0d6efd;\n}\n\n.btn-secondary {\n --bs-btn-color: #fff;\n --bs-btn-bg: #6c757d;\n --bs-btn-border-color: #6c757d;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #5c636a;\n --bs-btn-hover-border-color: #565e64;\n --bs-btn-focus-shadow-rgb: 130, 138, 145;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #565e64;\n --bs-btn-active-border-color: #51585e;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #6c757d;\n --bs-btn-disabled-border-color: #6c757d;\n}\n\n.btn-success {\n --bs-btn-color: #fff;\n --bs-btn-bg: #198754;\n --bs-btn-border-color: #198754;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #157347;\n --bs-btn-hover-border-color: #146c43;\n --bs-btn-focus-shadow-rgb: 60, 153, 110;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #146c43;\n --bs-btn-active-border-color: #13653f;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #198754;\n --bs-btn-disabled-border-color: #198754;\n}\n\n.btn-info {\n --bs-btn-color: #000;\n --bs-btn-bg: #0dcaf0;\n --bs-btn-border-color: #0dcaf0;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #31d2f2;\n --bs-btn-hover-border-color: #25cff2;\n --bs-btn-focus-shadow-rgb: 11, 172, 204;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #3dd5f3;\n --bs-btn-active-border-color: #25cff2;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #0dcaf0;\n --bs-btn-disabled-border-color: #0dcaf0;\n}\n\n.btn-warning {\n --bs-btn-color: #000;\n --bs-btn-bg: #ffc107;\n --bs-btn-border-color: #ffc107;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #ffca2c;\n --bs-btn-hover-border-color: #ffc720;\n --bs-btn-focus-shadow-rgb: 217, 164, 6;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #ffcd39;\n --bs-btn-active-border-color: #ffc720;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #ffc107;\n --bs-btn-disabled-border-color: #ffc107;\n}\n\n.btn-danger {\n --bs-btn-color: #fff;\n --bs-btn-bg: #dc3545;\n --bs-btn-border-color: #dc3545;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #bb2d3b;\n --bs-btn-hover-border-color: #b02a37;\n --bs-btn-focus-shadow-rgb: 225, 83, 97;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #b02a37;\n --bs-btn-active-border-color: #a52834;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #dc3545;\n --bs-btn-disabled-border-color: #dc3545;\n}\n\n.btn-light {\n --bs-btn-color: #000;\n --bs-btn-bg: #f8f9fa;\n --bs-btn-border-color: #f8f9fa;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #d3d4d5;\n --bs-btn-hover-border-color: #c6c7c8;\n --bs-btn-focus-shadow-rgb: 211, 212, 213;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #c6c7c8;\n --bs-btn-active-border-color: #babbbc;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #f8f9fa;\n --bs-btn-disabled-border-color: #f8f9fa;\n}\n\n.btn-dark {\n --bs-btn-color: #fff;\n --bs-btn-bg: #212529;\n --bs-btn-border-color: #212529;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #424649;\n --bs-btn-hover-border-color: #373b3e;\n --bs-btn-focus-shadow-rgb: 66, 70, 73;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #4d5154;\n --bs-btn-active-border-color: #373b3e;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #212529;\n --bs-btn-disabled-border-color: #212529;\n}\n\n.btn-outline-primary {\n --bs-btn-color: #0d6efd;\n --bs-btn-border-color: #0d6efd;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #0d6efd;\n --bs-btn-hover-border-color: #0d6efd;\n --bs-btn-focus-shadow-rgb: 13, 110, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0d6efd;\n --bs-btn-active-border-color: #0d6efd;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #0d6efd;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #0d6efd;\n --bs-gradient: none;\n}\n\n.btn-outline-secondary {\n --bs-btn-color: #6c757d;\n --bs-btn-border-color: #6c757d;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #6c757d;\n --bs-btn-hover-border-color: #6c757d;\n --bs-btn-focus-shadow-rgb: 108, 117, 125;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #6c757d;\n --bs-btn-active-border-color: #6c757d;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #6c757d;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #6c757d;\n --bs-gradient: none;\n}\n\n.btn-outline-success {\n --bs-btn-color: #198754;\n --bs-btn-border-color: #198754;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #198754;\n --bs-btn-hover-border-color: #198754;\n --bs-btn-focus-shadow-rgb: 25, 135, 84;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #198754;\n --bs-btn-active-border-color: #198754;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #198754;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #198754;\n --bs-gradient: none;\n}\n\n.btn-outline-info {\n --bs-btn-color: #0dcaf0;\n --bs-btn-border-color: #0dcaf0;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #0dcaf0;\n --bs-btn-hover-border-color: #0dcaf0;\n --bs-btn-focus-shadow-rgb: 13, 202, 240;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #0dcaf0;\n --bs-btn-active-border-color: #0dcaf0;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #0dcaf0;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #0dcaf0;\n --bs-gradient: none;\n}\n\n.btn-outline-warning {\n --bs-btn-color: #ffc107;\n --bs-btn-border-color: #ffc107;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #ffc107;\n --bs-btn-hover-border-color: #ffc107;\n --bs-btn-focus-shadow-rgb: 255, 193, 7;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #ffc107;\n --bs-btn-active-border-color: #ffc107;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #ffc107;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #ffc107;\n --bs-gradient: none;\n}\n\n.btn-outline-danger {\n --bs-btn-color: #dc3545;\n --bs-btn-border-color: #dc3545;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #dc3545;\n --bs-btn-hover-border-color: #dc3545;\n --bs-btn-focus-shadow-rgb: 220, 53, 69;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #dc3545;\n --bs-btn-active-border-color: #dc3545;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #dc3545;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #dc3545;\n --bs-gradient: none;\n}\n\n.btn-outline-light {\n --bs-btn-color: #f8f9fa;\n --bs-btn-border-color: #f8f9fa;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #f8f9fa;\n --bs-btn-hover-border-color: #f8f9fa;\n --bs-btn-focus-shadow-rgb: 248, 249, 250;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #f8f9fa;\n --bs-btn-active-border-color: #f8f9fa;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #f8f9fa;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #f8f9fa;\n --bs-gradient: none;\n}\n\n.btn-outline-dark {\n --bs-btn-color: #212529;\n --bs-btn-border-color: #212529;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #212529;\n --bs-btn-hover-border-color: #212529;\n --bs-btn-focus-shadow-rgb: 33, 37, 41;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #212529;\n --bs-btn-active-border-color: #212529;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #212529;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #212529;\n --bs-gradient: none;\n}\n\n.btn-link {\n --bs-btn-font-weight: 400;\n --bs-btn-color: var(--bs-link-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-color: transparent;\n --bs-btn-hover-color: var(--bs-link-hover-color);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-active-color: var(--bs-link-hover-color);\n --bs-btn-active-border-color: transparent;\n --bs-btn-disabled-color: #6c757d;\n --bs-btn-disabled-border-color: transparent;\n --bs-btn-box-shadow: 0 0 0 #000;\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n text-decoration: underline;\n}\n.btn-link:focus-visible {\n color: var(--bs-btn-color);\n}\n.btn-link:hover {\n color: var(--bs-btn-hover-color);\n}\n\n.btn-lg, .btn-group-lg > .btn {\n --bs-btn-padding-y: 0.5rem;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 1.25rem;\n --bs-btn-border-radius: var(--bs-border-radius-lg);\n}\n\n.btn-sm, .btn-group-sm > .btn {\n --bs-btn-padding-y: 0.25rem;\n --bs-btn-padding-x: 0.5rem;\n --bs-btn-font-size: 0.875rem;\n --bs-btn-border-radius: var(--bs-border-radius-sm);\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n.dropup,\n.dropend,\n.dropdown,\n.dropstart,\n.dropup-center,\n.dropdown-center {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n --bs-dropdown-zindex: 1000;\n --bs-dropdown-min-width: 10rem;\n --bs-dropdown-padding-x: 0;\n --bs-dropdown-padding-y: 0.5rem;\n --bs-dropdown-spacer: 0.125rem;\n --bs-dropdown-font-size: 1rem;\n --bs-dropdown-color: var(--bs-body-color);\n --bs-dropdown-bg: var(--bs-body-bg);\n --bs-dropdown-border-color: var(--bs-border-color-translucent);\n --bs-dropdown-border-radius: var(--bs-border-radius);\n --bs-dropdown-border-width: var(--bs-border-width);\n --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));\n --bs-dropdown-divider-bg: var(--bs-border-color-translucent);\n --bs-dropdown-divider-margin-y: 0.5rem;\n --bs-dropdown-box-shadow: var(--bs-box-shadow);\n --bs-dropdown-link-color: var(--bs-body-color);\n --bs-dropdown-link-hover-color: var(--bs-body-color);\n --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);\n --bs-dropdown-link-active-color: #fff;\n --bs-dropdown-link-active-bg: #0d6efd;\n --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);\n --bs-dropdown-item-padding-x: 1rem;\n --bs-dropdown-item-padding-y: 0.25rem;\n --bs-dropdown-header-color: #6c757d;\n --bs-dropdown-header-padding-x: 1rem;\n --bs-dropdown-header-padding-y: 0.5rem;\n position: absolute;\n z-index: var(--bs-dropdown-zindex);\n display: none;\n min-width: var(--bs-dropdown-min-width);\n padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);\n margin: 0;\n font-size: var(--bs-dropdown-font-size);\n color: var(--bs-dropdown-color);\n text-align: left;\n list-style: none;\n background-color: var(--bs-dropdown-bg);\n background-clip: padding-box;\n border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);\n border-radius: var(--bs-dropdown-border-radius);\n}\n.dropdown-menu[data-bs-popper] {\n top: 100%;\n left: 0;\n margin-top: var(--bs-dropdown-spacer);\n}\n\n.dropdown-menu-start {\n --bs-position: start;\n}\n.dropdown-menu-start[data-bs-popper] {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-end {\n --bs-position: end;\n}\n.dropdown-menu-end[data-bs-popper] {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-start {\n --bs-position: start;\n }\n .dropdown-menu-sm-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-end {\n --bs-position: end;\n }\n .dropdown-menu-sm-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 768px) {\n .dropdown-menu-md-start {\n --bs-position: start;\n }\n .dropdown-menu-md-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-end {\n --bs-position: end;\n }\n .dropdown-menu-md-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 992px) {\n .dropdown-menu-lg-start {\n --bs-position: start;\n }\n .dropdown-menu-lg-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-end {\n --bs-position: end;\n }\n .dropdown-menu-lg-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-start {\n --bs-position: start;\n }\n .dropdown-menu-xl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-end {\n --bs-position: end;\n }\n .dropdown-menu-xl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1400px) {\n .dropdown-menu-xxl-start {\n --bs-position: start;\n }\n .dropdown-menu-xxl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xxl-end {\n --bs-position: end;\n }\n .dropdown-menu-xxl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu[data-bs-popper] {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: var(--bs-dropdown-spacer);\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropend .dropdown-menu[data-bs-popper] {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: var(--bs-dropdown-spacer);\n}\n.dropend .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropend .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropend .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropstart .dropdown-menu[data-bs-popper] {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: var(--bs-dropdown-spacer);\n}\n.dropstart .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropstart .dropdown-toggle::after {\n display: none;\n}\n.dropstart .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropstart .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: var(--bs-dropdown-divider-margin-y) 0;\n overflow: hidden;\n border-top: 1px solid var(--bs-dropdown-divider-bg);\n opacity: 1;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);\n clear: both;\n font-weight: 400;\n color: var(--bs-dropdown-link-color);\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n border-radius: var(--bs-dropdown-item-border-radius, 0);\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: var(--bs-dropdown-link-hover-color);\n background-color: var(--bs-dropdown-link-hover-bg);\n}\n.dropdown-item.active, .dropdown-item:active {\n color: var(--bs-dropdown-link-active-color);\n text-decoration: none;\n background-color: var(--bs-dropdown-link-active-bg);\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: var(--bs-dropdown-link-disabled-color);\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);\n margin-bottom: 0;\n font-size: 0.875rem;\n color: var(--bs-dropdown-header-color);\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);\n color: var(--bs-dropdown-link-color);\n}\n\n.dropdown-menu-dark {\n --bs-dropdown-color: #dee2e6;\n --bs-dropdown-bg: #343a40;\n --bs-dropdown-border-color: var(--bs-border-color-translucent);\n --bs-dropdown-box-shadow: ;\n --bs-dropdown-link-color: #dee2e6;\n --bs-dropdown-link-hover-color: #fff;\n --bs-dropdown-divider-bg: var(--bs-border-color-translucent);\n --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);\n --bs-dropdown-link-active-color: #fff;\n --bs-dropdown-link-active-bg: #0d6efd;\n --bs-dropdown-link-disabled-color: #adb5bd;\n --bs-dropdown-header-color: #adb5bd;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n.btn-group > .btn-check:checked + .btn,\n.btn-group > .btn-check:focus + .btn,\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn-check:checked + .btn,\n.btn-group-vertical > .btn-check:focus + .btn,\n.btn-group-vertical > .btn:hover,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group {\n border-radius: var(--bs-border-radius);\n}\n.btn-group > :not(.btn-check:first-child) + .btn,\n.btn-group > .btn-group:not(:first-child) {\n margin-left: calc(var(--bs-border-width) * -1);\n}\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn.dropdown-toggle-split:first-child,\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:nth-child(n+3),\n.btn-group > :not(.btn-check) + .btn,\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: calc(var(--bs-border-width) * -1);\n}\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn ~ .btn,\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav {\n --bs-nav-link-padding-x: 1rem;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-link-color);\n --bs-nav-link-hover-color: var(--bs-link-hover-color);\n --bs-nav-link-disabled-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);\n font-size: var(--bs-nav-link-font-size);\n font-weight: var(--bs-nav-link-font-weight);\n color: var(--bs-nav-link-color);\n text-decoration: none;\n background: none;\n border: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n}\n.nav-link:hover, .nav-link:focus {\n color: var(--bs-nav-link-hover-color);\n}\n.nav-link:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.nav-link.disabled, .nav-link:disabled {\n color: var(--bs-nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n --bs-nav-tabs-border-width: var(--bs-border-width);\n --bs-nav-tabs-border-color: var(--bs-border-color);\n --bs-nav-tabs-border-radius: var(--bs-border-radius);\n --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);\n --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);\n --bs-nav-tabs-link-active-bg: var(--bs-body-bg);\n --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);\n border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);\n}\n.nav-tabs .nav-link {\n margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));\n border: var(--bs-nav-tabs-border-width) solid transparent;\n border-top-left-radius: var(--bs-nav-tabs-border-radius);\n border-top-right-radius: var(--bs-nav-tabs-border-radius);\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n isolation: isolate;\n border-color: var(--bs-nav-tabs-link-hover-border-color);\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: var(--bs-nav-tabs-link-active-color);\n background-color: var(--bs-nav-tabs-link-active-bg);\n border-color: var(--bs-nav-tabs-link-active-border-color);\n}\n.nav-tabs .dropdown-menu {\n margin-top: calc(-1 * var(--bs-nav-tabs-border-width));\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills {\n --bs-nav-pills-border-radius: var(--bs-border-radius);\n --bs-nav-pills-link-active-color: #fff;\n --bs-nav-pills-link-active-bg: #0d6efd;\n}\n.nav-pills .nav-link {\n border-radius: var(--bs-nav-pills-border-radius);\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: var(--bs-nav-pills-link-active-color);\n background-color: var(--bs-nav-pills-link-active-bg);\n}\n\n.nav-underline {\n --bs-nav-underline-gap: 1rem;\n --bs-nav-underline-border-width: 0.125rem;\n --bs-nav-underline-link-active-color: var(--bs-emphasis-color);\n gap: var(--bs-nav-underline-gap);\n}\n.nav-underline .nav-link {\n padding-right: 0;\n padding-left: 0;\n border-bottom: var(--bs-nav-underline-border-width) solid transparent;\n}\n.nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-bottom-color: currentcolor;\n}\n.nav-underline .nav-link.active,\n.nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--bs-nav-underline-link-active-color);\n border-bottom-color: currentcolor;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.nav-fill .nav-item .nav-link,\n.nav-justified .nav-item .nav-link {\n width: 100%;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n --bs-navbar-padding-x: 0;\n --bs-navbar-padding-y: 0.5rem;\n --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);\n --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);\n --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);\n --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-brand-padding-y: 0.3125rem;\n --bs-navbar-brand-margin-end: 1rem;\n --bs-navbar-brand-font-size: 1.25rem;\n --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-nav-link-padding-x: 0.5rem;\n --bs-navbar-toggler-padding-y: 0.25rem;\n --bs-navbar-toggler-padding-x: 0.75rem;\n --bs-navbar-toggler-font-size: 1.25rem;\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);\n --bs-navbar-toggler-border-radius: var(--bs-border-radius);\n --bs-navbar-toggler-focus-width: 0.25rem;\n --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);\n}\n.navbar > .container,\n.navbar > .container-fluid,\n.navbar > .container-sm,\n.navbar > .container-md,\n.navbar > .container-lg,\n.navbar > .container-xl,\n.navbar > .container-xxl {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n padding-top: var(--bs-navbar-brand-padding-y);\n padding-bottom: var(--bs-navbar-brand-padding-y);\n margin-right: var(--bs-navbar-brand-margin-end);\n font-size: var(--bs-navbar-brand-font-size);\n color: var(--bs-navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n}\n.navbar-brand:hover, .navbar-brand:focus {\n color: var(--bs-navbar-brand-hover-color);\n}\n\n.navbar-nav {\n --bs-nav-link-padding-x: 0;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-navbar-color);\n --bs-nav-link-hover-color: var(--bs-navbar-hover-color);\n --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {\n color: var(--bs-navbar-active-color);\n}\n.navbar-nav .dropdown-menu {\n position: static;\n}\n\n.navbar-text {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-navbar-color);\n}\n.navbar-text a,\n.navbar-text a:hover,\n.navbar-text a:focus {\n color: var(--bs-navbar-active-color);\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);\n font-size: var(--bs-navbar-toggler-font-size);\n line-height: 1;\n color: var(--bs-navbar-color);\n background-color: transparent;\n border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);\n border-radius: var(--bs-navbar-toggler-border-radius);\n transition: var(--bs-navbar-toggler-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .navbar-toggler {\n transition: none;\n }\n}\n.navbar-toggler:hover {\n text-decoration: none;\n}\n.navbar-toggler:focus {\n text-decoration: none;\n outline: 0;\n box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n background-image: var(--bs-navbar-toggler-icon-bg);\n background-repeat: no-repeat;\n background-position: center;\n background-size: 100%;\n}\n\n.navbar-nav-scroll {\n max-height: var(--bs-scroll-height, 75vh);\n overflow-y: auto;\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n .navbar-expand-sm .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-sm .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-sm .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n .navbar-expand-md .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-md .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-md .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n .navbar-expand-lg .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-lg .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-lg .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xl .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-xl .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-xl .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 1400px) {\n .navbar-expand-xxl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xxl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xxl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xxl .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-xxl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xxl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xxl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xxl .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-xxl .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-xxl .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n.navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n}\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n.navbar-expand .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n}\n.navbar-expand .offcanvas .offcanvas-header {\n display: none;\n}\n.navbar-expand .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n}\n\n.navbar-dark,\n.navbar[data-bs-theme=dark] {\n --bs-navbar-color: rgba(255, 255, 255, 0.55);\n --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);\n --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);\n --bs-navbar-active-color: #fff;\n --bs-navbar-brand-color: #fff;\n --bs-navbar-brand-hover-color: #fff;\n --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n[data-bs-theme=dark] .navbar-toggler-icon {\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.card {\n --bs-card-spacer-y: 1rem;\n --bs-card-spacer-x: 1rem;\n --bs-card-title-spacer-y: 0.5rem;\n --bs-card-title-color: ;\n --bs-card-subtitle-color: ;\n --bs-card-border-width: var(--bs-border-width);\n --bs-card-border-color: var(--bs-border-color-translucent);\n --bs-card-border-radius: var(--bs-border-radius);\n --bs-card-box-shadow: ;\n --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));\n --bs-card-cap-padding-y: 0.5rem;\n --bs-card-cap-padding-x: 1rem;\n --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);\n --bs-card-cap-color: ;\n --bs-card-height: ;\n --bs-card-color: ;\n --bs-card-bg: var(--bs-body-bg);\n --bs-card-img-overlay-padding: 1rem;\n --bs-card-group-margin: 0.75rem;\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: var(--bs-card-height);\n color: var(--bs-body-color);\n word-wrap: break-word;\n background-color: var(--bs-card-bg);\n background-clip: border-box;\n border: var(--bs-card-border-width) solid var(--bs-card-border-color);\n border-radius: var(--bs-card-border-radius);\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: var(--bs-card-inner-border-radius);\n border-top-right-radius: var(--bs-card-inner-border-radius);\n}\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: var(--bs-card-inner-border-radius);\n border-bottom-left-radius: var(--bs-card-inner-border-radius);\n}\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);\n color: var(--bs-card-color);\n}\n\n.card-title {\n margin-bottom: var(--bs-card-title-spacer-y);\n color: var(--bs-card-title-color);\n}\n\n.card-subtitle {\n margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));\n margin-bottom: 0;\n color: var(--bs-card-subtitle-color);\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link + .card-link {\n margin-left: var(--bs-card-spacer-x);\n}\n\n.card-header {\n padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);\n margin-bottom: 0;\n color: var(--bs-card-cap-color);\n background-color: var(--bs-card-cap-bg);\n border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);\n}\n.card-header:first-child {\n border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;\n}\n\n.card-footer {\n padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);\n color: var(--bs-card-cap-color);\n background-color: var(--bs-card-cap-bg);\n border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);\n}\n.card-footer:last-child {\n border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);\n}\n\n.card-header-tabs {\n margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));\n margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));\n margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));\n border-bottom: 0;\n}\n.card-header-tabs .nav-link.active {\n background-color: var(--bs-card-bg);\n border-bottom-color: var(--bs-card-bg);\n}\n\n.card-header-pills {\n margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));\n margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: var(--bs-card-img-overlay-padding);\n border-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: var(--bs-card-inner-border-radius);\n border-top-right-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: var(--bs-card-inner-border-radius);\n border-bottom-left-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-group > .card {\n margin-bottom: var(--bs-card-group-margin);\n}\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.accordion {\n --bs-accordion-color: var(--bs-body-color);\n --bs-accordion-bg: var(--bs-body-bg);\n --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;\n --bs-accordion-border-color: var(--bs-border-color);\n --bs-accordion-border-width: var(--bs-border-width);\n --bs-accordion-border-radius: var(--bs-border-radius);\n --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));\n --bs-accordion-btn-padding-x: 1.25rem;\n --bs-accordion-btn-padding-y: 1rem;\n --bs-accordion-btn-color: var(--bs-body-color);\n --bs-accordion-btn-bg: var(--bs-accordion-bg);\n --bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n --bs-accordion-btn-icon-width: 1.25rem;\n --bs-accordion-btn-icon-transform: rotate(-180deg);\n --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;\n --bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n --bs-accordion-btn-focus-border-color: #86b7fe;\n --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n --bs-accordion-body-padding-x: 1.25rem;\n --bs-accordion-body-padding-y: 1rem;\n --bs-accordion-active-color: var(--bs-primary-text-emphasis);\n --bs-accordion-active-bg: var(--bs-primary-bg-subtle);\n}\n\n.accordion-button {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);\n font-size: 1rem;\n color: var(--bs-accordion-btn-color);\n text-align: left;\n background-color: var(--bs-accordion-btn-bg);\n border: 0;\n border-radius: 0;\n overflow-anchor: none;\n transition: var(--bs-accordion-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button {\n transition: none;\n }\n}\n.accordion-button:not(.collapsed) {\n color: var(--bs-accordion-active-color);\n background-color: var(--bs-accordion-active-bg);\n box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);\n}\n.accordion-button:not(.collapsed)::after {\n background-image: var(--bs-accordion-btn-active-icon);\n transform: var(--bs-accordion-btn-icon-transform);\n}\n.accordion-button::after {\n flex-shrink: 0;\n width: var(--bs-accordion-btn-icon-width);\n height: var(--bs-accordion-btn-icon-width);\n margin-left: auto;\n content: \"\";\n background-image: var(--bs-accordion-btn-icon);\n background-repeat: no-repeat;\n background-size: var(--bs-accordion-btn-icon-width);\n transition: var(--bs-accordion-btn-icon-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button::after {\n transition: none;\n }\n}\n.accordion-button:hover {\n z-index: 2;\n}\n.accordion-button:focus {\n z-index: 3;\n border-color: var(--bs-accordion-btn-focus-border-color);\n outline: 0;\n box-shadow: var(--bs-accordion-btn-focus-box-shadow);\n}\n\n.accordion-header {\n margin-bottom: 0;\n}\n\n.accordion-item {\n color: var(--bs-accordion-color);\n background-color: var(--bs-accordion-bg);\n border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);\n}\n.accordion-item:first-of-type {\n border-top-left-radius: var(--bs-accordion-border-radius);\n border-top-right-radius: var(--bs-accordion-border-radius);\n}\n.accordion-item:first-of-type .accordion-button {\n border-top-left-radius: var(--bs-accordion-inner-border-radius);\n border-top-right-radius: var(--bs-accordion-inner-border-radius);\n}\n.accordion-item:not(:first-of-type) {\n border-top: 0;\n}\n.accordion-item:last-of-type {\n border-bottom-right-radius: var(--bs-accordion-border-radius);\n border-bottom-left-radius: var(--bs-accordion-border-radius);\n}\n.accordion-item:last-of-type .accordion-button.collapsed {\n border-bottom-right-radius: var(--bs-accordion-inner-border-radius);\n border-bottom-left-radius: var(--bs-accordion-inner-border-radius);\n}\n.accordion-item:last-of-type .accordion-collapse {\n border-bottom-right-radius: var(--bs-accordion-border-radius);\n border-bottom-left-radius: var(--bs-accordion-border-radius);\n}\n\n.accordion-body {\n padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);\n}\n\n.accordion-flush .accordion-collapse {\n border-width: 0;\n}\n.accordion-flush .accordion-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n.accordion-flush .accordion-item:first-child {\n border-top: 0;\n}\n.accordion-flush .accordion-item:last-child {\n border-bottom: 0;\n}\n.accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {\n border-radius: 0;\n}\n\n[data-bs-theme=dark] .accordion-button::after {\n --bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n --bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n}\n\n.breadcrumb {\n --bs-breadcrumb-padding-x: 0;\n --bs-breadcrumb-padding-y: 0;\n --bs-breadcrumb-margin-bottom: 1rem;\n --bs-breadcrumb-bg: ;\n --bs-breadcrumb-border-radius: ;\n --bs-breadcrumb-divider-color: var(--bs-secondary-color);\n --bs-breadcrumb-item-padding-x: 0.5rem;\n --bs-breadcrumb-item-active-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);\n margin-bottom: var(--bs-breadcrumb-margin-bottom);\n font-size: var(--bs-breadcrumb-font-size);\n list-style: none;\n background-color: var(--bs-breadcrumb-bg);\n border-radius: var(--bs-breadcrumb-border-radius);\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: var(--bs-breadcrumb-item-padding-x);\n}\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: var(--bs-breadcrumb-item-padding-x);\n color: var(--bs-breadcrumb-divider-color);\n content: var(--bs-breadcrumb-divider, \"/\") /* rtl: var(--bs-breadcrumb-divider, \"/\") */;\n}\n.breadcrumb-item.active {\n color: var(--bs-breadcrumb-item-active-color);\n}\n\n.pagination {\n --bs-pagination-padding-x: 0.75rem;\n --bs-pagination-padding-y: 0.375rem;\n --bs-pagination-font-size: 1rem;\n --bs-pagination-color: var(--bs-link-color);\n --bs-pagination-bg: var(--bs-body-bg);\n --bs-pagination-border-width: var(--bs-border-width);\n --bs-pagination-border-color: var(--bs-border-color);\n --bs-pagination-border-radius: var(--bs-border-radius);\n --bs-pagination-hover-color: var(--bs-link-hover-color);\n --bs-pagination-hover-bg: var(--bs-tertiary-bg);\n --bs-pagination-hover-border-color: var(--bs-border-color);\n --bs-pagination-focus-color: var(--bs-link-hover-color);\n --bs-pagination-focus-bg: var(--bs-secondary-bg);\n --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n --bs-pagination-active-color: #fff;\n --bs-pagination-active-bg: #0d6efd;\n --bs-pagination-active-border-color: #0d6efd;\n --bs-pagination-disabled-color: var(--bs-secondary-color);\n --bs-pagination-disabled-bg: var(--bs-secondary-bg);\n --bs-pagination-disabled-border-color: var(--bs-border-color);\n display: flex;\n padding-left: 0;\n list-style: none;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);\n font-size: var(--bs-pagination-font-size);\n color: var(--bs-pagination-color);\n text-decoration: none;\n background-color: var(--bs-pagination-bg);\n border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n}\n.page-link:hover {\n z-index: 2;\n color: var(--bs-pagination-hover-color);\n background-color: var(--bs-pagination-hover-bg);\n border-color: var(--bs-pagination-hover-border-color);\n}\n.page-link:focus {\n z-index: 3;\n color: var(--bs-pagination-focus-color);\n background-color: var(--bs-pagination-focus-bg);\n outline: 0;\n box-shadow: var(--bs-pagination-focus-box-shadow);\n}\n.page-link.active, .active > .page-link {\n z-index: 3;\n color: var(--bs-pagination-active-color);\n background-color: var(--bs-pagination-active-bg);\n border-color: var(--bs-pagination-active-border-color);\n}\n.page-link.disabled, .disabled > .page-link {\n color: var(--bs-pagination-disabled-color);\n pointer-events: none;\n background-color: var(--bs-pagination-disabled-bg);\n border-color: var(--bs-pagination-disabled-border-color);\n}\n\n.page-item:not(:first-child) .page-link {\n margin-left: calc(var(--bs-border-width) * -1);\n}\n.page-item:first-child .page-link {\n border-top-left-radius: var(--bs-pagination-border-radius);\n border-bottom-left-radius: var(--bs-pagination-border-radius);\n}\n.page-item:last-child .page-link {\n border-top-right-radius: var(--bs-pagination-border-radius);\n border-bottom-right-radius: var(--bs-pagination-border-radius);\n}\n\n.pagination-lg {\n --bs-pagination-padding-x: 1.5rem;\n --bs-pagination-padding-y: 0.75rem;\n --bs-pagination-font-size: 1.25rem;\n --bs-pagination-border-radius: var(--bs-border-radius-lg);\n}\n\n.pagination-sm {\n --bs-pagination-padding-x: 0.5rem;\n --bs-pagination-padding-y: 0.25rem;\n --bs-pagination-font-size: 0.875rem;\n --bs-pagination-border-radius: var(--bs-border-radius-sm);\n}\n\n.badge {\n --bs-badge-padding-x: 0.65em;\n --bs-badge-padding-y: 0.35em;\n --bs-badge-font-size: 0.75em;\n --bs-badge-font-weight: 700;\n --bs-badge-color: #fff;\n --bs-badge-border-radius: var(--bs-border-radius);\n display: inline-block;\n padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);\n font-size: var(--bs-badge-font-size);\n font-weight: var(--bs-badge-font-weight);\n line-height: 1;\n color: var(--bs-badge-color);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: var(--bs-badge-border-radius);\n}\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.alert {\n --bs-alert-bg: transparent;\n --bs-alert-padding-x: 1rem;\n --bs-alert-padding-y: 1rem;\n --bs-alert-margin-bottom: 1rem;\n --bs-alert-color: inherit;\n --bs-alert-border-color: transparent;\n --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);\n --bs-alert-border-radius: var(--bs-border-radius);\n --bs-alert-link-color: inherit;\n position: relative;\n padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);\n margin-bottom: var(--bs-alert-margin-bottom);\n color: var(--bs-alert-color);\n background-color: var(--bs-alert-bg);\n border: var(--bs-alert-border);\n border-radius: var(--bs-alert-border-radius);\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n color: var(--bs-alert-link-color);\n}\n\n.alert-dismissible {\n padding-right: 3rem;\n}\n.alert-dismissible .btn-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 1.25rem 1rem;\n}\n\n.alert-primary {\n --bs-alert-color: var(--bs-primary-text-emphasis);\n --bs-alert-bg: var(--bs-primary-bg-subtle);\n --bs-alert-border-color: var(--bs-primary-border-subtle);\n --bs-alert-link-color: var(--bs-primary-text-emphasis);\n}\n\n.alert-secondary {\n --bs-alert-color: var(--bs-secondary-text-emphasis);\n --bs-alert-bg: var(--bs-secondary-bg-subtle);\n --bs-alert-border-color: var(--bs-secondary-border-subtle);\n --bs-alert-link-color: var(--bs-secondary-text-emphasis);\n}\n\n.alert-success {\n --bs-alert-color: var(--bs-success-text-emphasis);\n --bs-alert-bg: var(--bs-success-bg-subtle);\n --bs-alert-border-color: var(--bs-success-border-subtle);\n --bs-alert-link-color: var(--bs-success-text-emphasis);\n}\n\n.alert-info {\n --bs-alert-color: var(--bs-info-text-emphasis);\n --bs-alert-bg: var(--bs-info-bg-subtle);\n --bs-alert-border-color: var(--bs-info-border-subtle);\n --bs-alert-link-color: var(--bs-info-text-emphasis);\n}\n\n.alert-warning {\n --bs-alert-color: var(--bs-warning-text-emphasis);\n --bs-alert-bg: var(--bs-warning-bg-subtle);\n --bs-alert-border-color: var(--bs-warning-border-subtle);\n --bs-alert-link-color: var(--bs-warning-text-emphasis);\n}\n\n.alert-danger {\n --bs-alert-color: var(--bs-danger-text-emphasis);\n --bs-alert-bg: var(--bs-danger-bg-subtle);\n --bs-alert-border-color: var(--bs-danger-border-subtle);\n --bs-alert-link-color: var(--bs-danger-text-emphasis);\n}\n\n.alert-light {\n --bs-alert-color: var(--bs-light-text-emphasis);\n --bs-alert-bg: var(--bs-light-bg-subtle);\n --bs-alert-border-color: var(--bs-light-border-subtle);\n --bs-alert-link-color: var(--bs-light-text-emphasis);\n}\n\n.alert-dark {\n --bs-alert-color: var(--bs-dark-text-emphasis);\n --bs-alert-bg: var(--bs-dark-bg-subtle);\n --bs-alert-border-color: var(--bs-dark-border-subtle);\n --bs-alert-link-color: var(--bs-dark-text-emphasis);\n}\n\n@keyframes progress-bar-stripes {\n 0% {\n background-position-x: 1rem;\n }\n}\n.progress,\n.progress-stacked {\n --bs-progress-height: 1rem;\n --bs-progress-font-size: 0.75rem;\n --bs-progress-bg: var(--bs-secondary-bg);\n --bs-progress-border-radius: var(--bs-border-radius);\n --bs-progress-box-shadow: var(--bs-box-shadow-inset);\n --bs-progress-bar-color: #fff;\n --bs-progress-bar-bg: #0d6efd;\n --bs-progress-bar-transition: width 0.6s ease;\n display: flex;\n height: var(--bs-progress-height);\n overflow: hidden;\n font-size: var(--bs-progress-font-size);\n background-color: var(--bs-progress-bg);\n border-radius: var(--bs-progress-border-radius);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--bs-progress-bar-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--bs-progress-bar-bg);\n transition: var(--bs-progress-bar-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: var(--bs-progress-height) var(--bs-progress-height);\n}\n\n.progress-stacked > .progress {\n overflow: visible;\n}\n\n.progress-stacked > .progress > .progress-bar {\n width: 100%;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.list-group {\n --bs-list-group-color: var(--bs-body-color);\n --bs-list-group-bg: var(--bs-body-bg);\n --bs-list-group-border-color: var(--bs-border-color);\n --bs-list-group-border-width: var(--bs-border-width);\n --bs-list-group-border-radius: var(--bs-border-radius);\n --bs-list-group-item-padding-x: 1rem;\n --bs-list-group-item-padding-y: 0.5rem;\n --bs-list-group-action-color: var(--bs-secondary-color);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);\n --bs-list-group-action-active-color: var(--bs-body-color);\n --bs-list-group-action-active-bg: var(--bs-secondary-bg);\n --bs-list-group-disabled-color: var(--bs-secondary-color);\n --bs-list-group-disabled-bg: var(--bs-body-bg);\n --bs-list-group-active-color: #fff;\n --bs-list-group-active-bg: #0d6efd;\n --bs-list-group-active-border-color: #0d6efd;\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: var(--bs-list-group-border-radius);\n}\n\n.list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n}\n.list-group-numbered > .list-group-item::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n}\n\n.list-group-item-action {\n width: 100%;\n color: var(--bs-list-group-action-color);\n text-align: inherit;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: var(--bs-list-group-action-hover-color);\n text-decoration: none;\n background-color: var(--bs-list-group-action-hover-bg);\n}\n.list-group-item-action:active {\n color: var(--bs-list-group-action-active-color);\n background-color: var(--bs-list-group-action-active-bg);\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);\n color: var(--bs-list-group-color);\n text-decoration: none;\n background-color: var(--bs-list-group-bg);\n border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);\n}\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n.list-group-item.disabled, .list-group-item:disabled {\n color: var(--bs-list-group-disabled-color);\n pointer-events: none;\n background-color: var(--bs-list-group-disabled-bg);\n}\n.list-group-item.active {\n z-index: 2;\n color: var(--bs-list-group-active-color);\n background-color: var(--bs-list-group-active-bg);\n border-color: var(--bs-list-group-active-border-color);\n}\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n.list-group-item + .list-group-item.active {\n margin-top: calc(-1 * var(--bs-list-group-border-width));\n border-top-width: var(--bs-list-group-border-width);\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n.list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n}\n.list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n}\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 1400px) {\n .list-group-horizontal-xxl {\n flex-direction: row;\n }\n .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xxl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n.list-group-flush {\n border-radius: 0;\n}\n.list-group-flush > .list-group-item {\n border-width: 0 0 var(--bs-list-group-border-width);\n}\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n --bs-list-group-color: var(--bs-primary-text-emphasis);\n --bs-list-group-bg: var(--bs-primary-bg-subtle);\n --bs-list-group-border-color: var(--bs-primary-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);\n --bs-list-group-active-color: var(--bs-primary-bg-subtle);\n --bs-list-group-active-bg: var(--bs-primary-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);\n}\n\n.list-group-item-secondary {\n --bs-list-group-color: var(--bs-secondary-text-emphasis);\n --bs-list-group-bg: var(--bs-secondary-bg-subtle);\n --bs-list-group-border-color: var(--bs-secondary-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);\n --bs-list-group-active-color: var(--bs-secondary-bg-subtle);\n --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);\n}\n\n.list-group-item-success {\n --bs-list-group-color: var(--bs-success-text-emphasis);\n --bs-list-group-bg: var(--bs-success-bg-subtle);\n --bs-list-group-border-color: var(--bs-success-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-success-border-subtle);\n --bs-list-group-active-color: var(--bs-success-bg-subtle);\n --bs-list-group-active-bg: var(--bs-success-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-success-text-emphasis);\n}\n\n.list-group-item-info {\n --bs-list-group-color: var(--bs-info-text-emphasis);\n --bs-list-group-bg: var(--bs-info-bg-subtle);\n --bs-list-group-border-color: var(--bs-info-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-info-border-subtle);\n --bs-list-group-active-color: var(--bs-info-bg-subtle);\n --bs-list-group-active-bg: var(--bs-info-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-info-text-emphasis);\n}\n\n.list-group-item-warning {\n --bs-list-group-color: var(--bs-warning-text-emphasis);\n --bs-list-group-bg: var(--bs-warning-bg-subtle);\n --bs-list-group-border-color: var(--bs-warning-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);\n --bs-list-group-active-color: var(--bs-warning-bg-subtle);\n --bs-list-group-active-bg: var(--bs-warning-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);\n}\n\n.list-group-item-danger {\n --bs-list-group-color: var(--bs-danger-text-emphasis);\n --bs-list-group-bg: var(--bs-danger-bg-subtle);\n --bs-list-group-border-color: var(--bs-danger-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);\n --bs-list-group-active-color: var(--bs-danger-bg-subtle);\n --bs-list-group-active-bg: var(--bs-danger-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);\n}\n\n.list-group-item-light {\n --bs-list-group-color: var(--bs-light-text-emphasis);\n --bs-list-group-bg: var(--bs-light-bg-subtle);\n --bs-list-group-border-color: var(--bs-light-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-light-border-subtle);\n --bs-list-group-active-color: var(--bs-light-bg-subtle);\n --bs-list-group-active-bg: var(--bs-light-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-light-text-emphasis);\n}\n\n.list-group-item-dark {\n --bs-list-group-color: var(--bs-dark-text-emphasis);\n --bs-list-group-bg: var(--bs-dark-bg-subtle);\n --bs-list-group-border-color: var(--bs-dark-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-dark-border-subtle);\n --bs-list-group-active-color: var(--bs-dark-bg-subtle);\n --bs-list-group-active-bg: var(--bs-dark-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-dark-text-emphasis);\n}\n\n.btn-close {\n --bs-btn-close-color: #000;\n --bs-btn-close-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e\");\n --bs-btn-close-opacity: 0.5;\n --bs-btn-close-hover-opacity: 0.75;\n --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n --bs-btn-close-focus-opacity: 1;\n --bs-btn-close-disabled-opacity: 0.25;\n --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);\n box-sizing: content-box;\n width: 1em;\n height: 1em;\n padding: 0.25em 0.25em;\n color: var(--bs-btn-close-color);\n background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;\n border: 0;\n border-radius: 0.375rem;\n opacity: var(--bs-btn-close-opacity);\n}\n.btn-close:hover {\n color: var(--bs-btn-close-color);\n text-decoration: none;\n opacity: var(--bs-btn-close-hover-opacity);\n}\n.btn-close:focus {\n outline: 0;\n box-shadow: var(--bs-btn-close-focus-shadow);\n opacity: var(--bs-btn-close-focus-opacity);\n}\n.btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n opacity: var(--bs-btn-close-disabled-opacity);\n}\n\n.btn-close-white {\n filter: var(--bs-btn-close-white-filter);\n}\n\n[data-bs-theme=dark] .btn-close {\n filter: var(--bs-btn-close-white-filter);\n}\n\n.toast {\n --bs-toast-zindex: 1090;\n --bs-toast-padding-x: 0.75rem;\n --bs-toast-padding-y: 0.5rem;\n --bs-toast-spacing: 1.5rem;\n --bs-toast-max-width: 350px;\n --bs-toast-font-size: 0.875rem;\n --bs-toast-color: ;\n --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);\n --bs-toast-border-width: var(--bs-border-width);\n --bs-toast-border-color: var(--bs-border-color-translucent);\n --bs-toast-border-radius: var(--bs-border-radius);\n --bs-toast-box-shadow: var(--bs-box-shadow);\n --bs-toast-header-color: var(--bs-secondary-color);\n --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);\n --bs-toast-header-border-color: var(--bs-border-color-translucent);\n width: var(--bs-toast-max-width);\n max-width: 100%;\n font-size: var(--bs-toast-font-size);\n color: var(--bs-toast-color);\n pointer-events: auto;\n background-color: var(--bs-toast-bg);\n background-clip: padding-box;\n border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);\n box-shadow: var(--bs-toast-box-shadow);\n border-radius: var(--bs-toast-border-radius);\n}\n.toast.showing {\n opacity: 0;\n}\n.toast:not(.show) {\n display: none;\n}\n\n.toast-container {\n --bs-toast-zindex: 1090;\n position: absolute;\n z-index: var(--bs-toast-zindex);\n width: -webkit-max-content;\n width: -moz-max-content;\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n}\n.toast-container > :not(:last-child) {\n margin-bottom: var(--bs-toast-spacing);\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);\n color: var(--bs-toast-header-color);\n background-color: var(--bs-toast-header-bg);\n background-clip: padding-box;\n border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);\n border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));\n border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));\n}\n.toast-header .btn-close {\n margin-right: calc(-0.5 * var(--bs-toast-padding-x));\n margin-left: var(--bs-toast-padding-x);\n}\n\n.toast-body {\n padding: var(--bs-toast-padding-x);\n word-wrap: break-word;\n}\n\n.modal {\n --bs-modal-zindex: 1055;\n --bs-modal-width: 500px;\n --bs-modal-padding: 1rem;\n --bs-modal-margin: 0.5rem;\n --bs-modal-color: ;\n --bs-modal-bg: var(--bs-body-bg);\n --bs-modal-border-color: var(--bs-border-color-translucent);\n --bs-modal-border-width: var(--bs-border-width);\n --bs-modal-border-radius: var(--bs-border-radius-lg);\n --bs-modal-box-shadow: var(--bs-box-shadow-sm);\n --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));\n --bs-modal-header-padding-x: 1rem;\n --bs-modal-header-padding-y: 1rem;\n --bs-modal-header-padding: 1rem 1rem;\n --bs-modal-header-border-color: var(--bs-border-color);\n --bs-modal-header-border-width: var(--bs-border-width);\n --bs-modal-title-line-height: 1.5;\n --bs-modal-footer-gap: 0.5rem;\n --bs-modal-footer-bg: ;\n --bs-modal-footer-border-color: var(--bs-border-color);\n --bs-modal-footer-border-width: var(--bs-border-width);\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--bs-modal-zindex);\n display: none;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: var(--bs-modal-margin);\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n height: calc(100% - var(--bs-modal-margin) * 2);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: 100%;\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - var(--bs-modal-margin) * 2);\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n color: var(--bs-modal-color);\n pointer-events: auto;\n background-color: var(--bs-modal-bg);\n background-clip: padding-box;\n border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);\n border-radius: var(--bs-modal-border-radius);\n outline: 0;\n}\n\n.modal-backdrop {\n --bs-backdrop-zindex: 1050;\n --bs-backdrop-bg: #000;\n --bs-backdrop-opacity: 0.5;\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--bs-backdrop-zindex);\n width: 100vw;\n height: 100vh;\n background-color: var(--bs-backdrop-bg);\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: var(--bs-backdrop-opacity);\n}\n\n.modal-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n padding: var(--bs-modal-header-padding);\n border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);\n border-top-left-radius: var(--bs-modal-inner-border-radius);\n border-top-right-radius: var(--bs-modal-inner-border-radius);\n}\n.modal-header .btn-close {\n padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);\n margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: var(--bs-modal-title-line-height);\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--bs-modal-padding);\n}\n\n.modal-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);\n background-color: var(--bs-modal-footer-bg);\n border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);\n border-bottom-right-radius: var(--bs-modal-inner-border-radius);\n border-bottom-left-radius: var(--bs-modal-inner-border-radius);\n}\n.modal-footer > * {\n margin: calc(var(--bs-modal-footer-gap) * 0.5);\n}\n\n@media (min-width: 576px) {\n .modal {\n --bs-modal-margin: 1.75rem;\n --bs-modal-box-shadow: var(--bs-box-shadow);\n }\n .modal-dialog {\n max-width: var(--bs-modal-width);\n margin-right: auto;\n margin-left: auto;\n }\n .modal-sm {\n --bs-modal-width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n --bs-modal-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n --bs-modal-width: 1140px;\n }\n}\n.modal-fullscreen {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n}\n.modal-fullscreen .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n}\n.modal-fullscreen .modal-header,\n.modal-fullscreen .modal-footer {\n border-radius: 0;\n}\n.modal-fullscreen .modal-body {\n overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n .modal-fullscreen-sm-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-sm-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-header,\n .modal-fullscreen-sm-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 767.98px) {\n .modal-fullscreen-md-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-md-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-header,\n .modal-fullscreen-md-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 991.98px) {\n .modal-fullscreen-lg-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-lg-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-header,\n .modal-fullscreen-lg-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 1199.98px) {\n .modal-fullscreen-xl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-header,\n .modal-fullscreen-xl-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 1399.98px) {\n .modal-fullscreen-xxl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xxl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xxl-down .modal-header,\n .modal-fullscreen-xxl-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-xxl-down .modal-body {\n overflow-y: auto;\n }\n}\n.tooltip {\n --bs-tooltip-zindex: 1080;\n --bs-tooltip-max-width: 200px;\n --bs-tooltip-padding-x: 0.5rem;\n --bs-tooltip-padding-y: 0.25rem;\n --bs-tooltip-margin: ;\n --bs-tooltip-font-size: 0.875rem;\n --bs-tooltip-color: var(--bs-body-bg);\n --bs-tooltip-bg: var(--bs-emphasis-color);\n --bs-tooltip-border-radius: var(--bs-border-radius);\n --bs-tooltip-opacity: 0.9;\n --bs-tooltip-arrow-width: 0.8rem;\n --bs-tooltip-arrow-height: 0.4rem;\n z-index: var(--bs-tooltip-zindex);\n display: block;\n margin: var(--bs-tooltip-margin);\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--bs-tooltip-font-size);\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: var(--bs-tooltip-opacity);\n}\n.tooltip .tooltip-arrow {\n display: block;\n width: var(--bs-tooltip-arrow-width);\n height: var(--bs-tooltip-arrow-height);\n}\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {\n bottom: calc(-1 * var(--bs-tooltip-arrow-height));\n}\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;\n border-top-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {\n left: calc(-1 * var(--bs-tooltip-arrow-height));\n width: var(--bs-tooltip-arrow-height);\n height: var(--bs-tooltip-arrow-width);\n}\n.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;\n border-right-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:end:ignore */\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {\n top: calc(-1 * var(--bs-tooltip-arrow-height));\n}\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);\n border-bottom-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {\n right: calc(-1 * var(--bs-tooltip-arrow-height));\n width: var(--bs-tooltip-arrow-height);\n height: var(--bs-tooltip-arrow-width);\n}\n.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);\n border-left-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:end:ignore */\n.tooltip-inner {\n max-width: var(--bs-tooltip-max-width);\n padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);\n color: var(--bs-tooltip-color);\n text-align: center;\n background-color: var(--bs-tooltip-bg);\n border-radius: var(--bs-tooltip-border-radius);\n}\n\n.popover {\n --bs-popover-zindex: 1070;\n --bs-popover-max-width: 276px;\n --bs-popover-font-size: 0.875rem;\n --bs-popover-bg: var(--bs-body-bg);\n --bs-popover-border-width: var(--bs-border-width);\n --bs-popover-border-color: var(--bs-border-color-translucent);\n --bs-popover-border-radius: var(--bs-border-radius-lg);\n --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));\n --bs-popover-box-shadow: var(--bs-box-shadow);\n --bs-popover-header-padding-x: 1rem;\n --bs-popover-header-padding-y: 0.5rem;\n --bs-popover-header-font-size: 1rem;\n --bs-popover-header-color: inherit;\n --bs-popover-header-bg: var(--bs-secondary-bg);\n --bs-popover-body-padding-x: 1rem;\n --bs-popover-body-padding-y: 1rem;\n --bs-popover-body-color: var(--bs-body-color);\n --bs-popover-arrow-width: 1rem;\n --bs-popover-arrow-height: 0.5rem;\n --bs-popover-arrow-border: var(--bs-popover-border-color);\n z-index: var(--bs-popover-zindex);\n display: block;\n max-width: var(--bs-popover-max-width);\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--bs-popover-font-size);\n word-wrap: break-word;\n background-color: var(--bs-popover-bg);\n background-clip: padding-box;\n border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);\n border-radius: var(--bs-popover-border-radius);\n}\n.popover .popover-arrow {\n display: block;\n width: var(--bs-popover-arrow-width);\n height: var(--bs-popover-arrow-height);\n}\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {\n bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-top-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n bottom: var(--bs-popover-border-width);\n border-top-color: var(--bs-popover-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {\n left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n width: var(--bs-popover-arrow-height);\n height: var(--bs-popover-arrow-width);\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {\n left: 0;\n border-right-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n left: var(--bs-popover-border-width);\n border-right-color: var(--bs-popover-bg);\n}\n\n/* rtl:end:ignore */\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {\n top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-bottom-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n top: var(--bs-popover-border-width);\n border-bottom-color: var(--bs-popover-bg);\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--bs-popover-arrow-width);\n margin-left: calc(-0.5 * var(--bs-popover-arrow-width));\n content: \"\";\n border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {\n right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n width: var(--bs-popover-arrow-height);\n height: var(--bs-popover-arrow-width);\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {\n right: 0;\n border-left-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n right: var(--bs-popover-border-width);\n border-left-color: var(--bs-popover-bg);\n}\n\n/* rtl:end:ignore */\n.popover-header {\n padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);\n margin-bottom: 0;\n font-size: var(--bs-popover-header-font-size);\n color: var(--bs-popover-header-color);\n background-color: var(--bs-popover-header-bg);\n border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);\n border-top-left-radius: var(--bs-popover-inner-border-radius);\n border-top-right-radius: var(--bs-popover-inner-border-radius);\n}\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);\n color: var(--bs-popover-body-color);\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-start,\n.carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n}\n.carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n}\n\n/* rtl:options: {\n \"autoRename\": true,\n \"stringMap\":[ {\n \"name\" : \"prev-next\",\n \"search\" : \"prev\",\n \"replace\" : \"next\"\n } ]\n} */\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-right: 15%;\n margin-bottom: 1rem;\n margin-left: 15%;\n}\n.carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n padding: 0;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n}\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 1.25rem;\n left: 15%;\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n color: #fff;\n text-align: center;\n}\n\n.carousel-dark .carousel-control-prev-icon,\n.carousel-dark .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n.carousel-dark .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n.carousel-dark .carousel-caption {\n color: #000;\n}\n\n[data-bs-theme=dark] .carousel .carousel-control-prev-icon,\n[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon,\n[data-bs-theme=dark].carousel .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption {\n color: #000;\n}\n\n.spinner-grow,\n.spinner-border {\n display: inline-block;\n width: var(--bs-spinner-width);\n height: var(--bs-spinner-height);\n vertical-align: var(--bs-spinner-vertical-align);\n border-radius: 50%;\n animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg) /* rtl:ignore */;\n }\n}\n.spinner-border {\n --bs-spinner-width: 2rem;\n --bs-spinner-height: 2rem;\n --bs-spinner-vertical-align: -0.125em;\n --bs-spinner-border-width: 0.25em;\n --bs-spinner-animation-speed: 0.75s;\n --bs-spinner-animation-name: spinner-border;\n border: var(--bs-spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n}\n\n.spinner-border-sm {\n --bs-spinner-width: 1rem;\n --bs-spinner-height: 1rem;\n --bs-spinner-border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n.spinner-grow {\n --bs-spinner-width: 2rem;\n --bs-spinner-height: 2rem;\n --bs-spinner-vertical-align: -0.125em;\n --bs-spinner-animation-speed: 0.75s;\n --bs-spinner-animation-name: spinner-grow;\n background-color: currentcolor;\n opacity: 0;\n}\n\n.spinner-grow-sm {\n --bs-spinner-width: 1rem;\n --bs-spinner-height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --bs-spinner-animation-speed: 1.5s;\n }\n}\n.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {\n --bs-offcanvas-zindex: 1045;\n --bs-offcanvas-width: 400px;\n --bs-offcanvas-height: 30vh;\n --bs-offcanvas-padding-x: 1rem;\n --bs-offcanvas-padding-y: 1rem;\n --bs-offcanvas-color: var(--bs-body-color);\n --bs-offcanvas-bg: var(--bs-body-bg);\n --bs-offcanvas-border-width: var(--bs-border-width);\n --bs-offcanvas-border-color: var(--bs-border-color-translucent);\n --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);\n --bs-offcanvas-transition: transform 0.3s ease-in-out;\n --bs-offcanvas-title-line-height: 1.5;\n}\n\n@media (max-width: 575.98px) {\n .offcanvas-sm {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-sm {\n transition: none;\n }\n}\n@media (max-width: 575.98px) {\n .offcanvas-sm.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-sm.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-sm.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-sm.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {\n visibility: visible;\n }\n}\n@media (min-width: 576px) {\n .offcanvas-sm {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-sm .offcanvas-header {\n display: none;\n }\n .offcanvas-sm .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 767.98px) {\n .offcanvas-md {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-md {\n transition: none;\n }\n}\n@media (max-width: 767.98px) {\n .offcanvas-md.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-md.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-md.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-md.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {\n visibility: visible;\n }\n}\n@media (min-width: 768px) {\n .offcanvas-md {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-md .offcanvas-header {\n display: none;\n }\n .offcanvas-md .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 991.98px) {\n .offcanvas-lg {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-lg {\n transition: none;\n }\n}\n@media (max-width: 991.98px) {\n .offcanvas-lg.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-lg.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-lg.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-lg.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {\n visibility: visible;\n }\n}\n@media (min-width: 992px) {\n .offcanvas-lg {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-lg .offcanvas-header {\n display: none;\n }\n .offcanvas-lg .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 1199.98px) {\n .offcanvas-xl {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-xl {\n transition: none;\n }\n}\n@media (max-width: 1199.98px) {\n .offcanvas-xl.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-xl.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-xl.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-xl.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {\n visibility: visible;\n }\n}\n@media (min-width: 1200px) {\n .offcanvas-xl {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-xl .offcanvas-header {\n display: none;\n }\n .offcanvas-xl .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 1399.98px) {\n .offcanvas-xxl {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-xxl {\n transition: none;\n }\n}\n@media (max-width: 1399.98px) {\n .offcanvas-xxl.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-xxl.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-xxl.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-xxl.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {\n visibility: visible;\n }\n}\n@media (min-width: 1400px) {\n .offcanvas-xxl {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-xxl .offcanvas-header {\n display: none;\n }\n .offcanvas-xxl .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n.offcanvas {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .offcanvas {\n transition: none;\n }\n}\n.offcanvas.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n}\n.offcanvas.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n}\n.offcanvas.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n}\n.offcanvas.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n}\n.offcanvas.showing, .offcanvas.show:not(.hiding) {\n transform: none;\n}\n.offcanvas.showing, .offcanvas.hiding, .offcanvas.show {\n visibility: visible;\n}\n\n.offcanvas-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.offcanvas-backdrop.fade {\n opacity: 0;\n}\n.offcanvas-backdrop.show {\n opacity: 0.5;\n}\n\n.offcanvas-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);\n}\n.offcanvas-header .btn-close {\n padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);\n margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y));\n margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x));\n margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y));\n}\n\n.offcanvas-title {\n margin-bottom: 0;\n line-height: var(--bs-offcanvas-title-line-height);\n}\n\n.offcanvas-body {\n flex-grow: 1;\n padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);\n overflow-y: auto;\n}\n\n.placeholder {\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: 0.5;\n}\n.placeholder.btn::before {\n display: inline-block;\n content: \"\";\n}\n\n.placeholder-xs {\n min-height: 0.6em;\n}\n\n.placeholder-sm {\n min-height: 0.8em;\n}\n\n.placeholder-lg {\n min-height: 1.2em;\n}\n\n.placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n}\n\n@keyframes placeholder-glow {\n 50% {\n opacity: 0.2;\n }\n}\n.placeholder-wave {\n -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);\n mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);\n -webkit-mask-size: 200% 100%;\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n}\n\n@keyframes placeholder-wave {\n 100% {\n -webkit-mask-position: -200% 0%;\n mask-position: -200% 0%;\n }\n}\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.text-bg-primary {\n color: #fff !important;\n background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-secondary {\n color: #fff !important;\n background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-success {\n color: #fff !important;\n background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-info {\n color: #000 !important;\n background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-warning {\n color: #000 !important;\n background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-danger {\n color: #fff !important;\n background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-light {\n color: #000 !important;\n background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-dark {\n color: #fff !important;\n background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.link-primary {\n color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-primary:hover, .link-primary:focus {\n color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-secondary {\n color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-secondary:hover, .link-secondary:focus {\n color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-success {\n color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-success:hover, .link-success:focus {\n color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-info {\n color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-info:hover, .link-info:focus {\n color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-warning {\n color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-warning:hover, .link-warning:focus {\n color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-danger {\n color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-danger:hover, .link-danger:focus {\n color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-light {\n color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-light:hover, .link-light:focus {\n color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-dark {\n color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-dark:hover, .link-dark:focus {\n color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-body-emphasis {\n color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-body-emphasis:hover, .link-body-emphasis:focus {\n color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;\n -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;\n text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;\n}\n\n.focus-ring:focus {\n outline: 0;\n box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);\n}\n\n.icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));\n text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));\n text-underline-offset: 0.25em;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n}\n.icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n}\n@media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n}\n\n.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));\n}\n\n.ratio {\n position: relative;\n width: 100%;\n}\n.ratio::before {\n display: block;\n padding-top: var(--bs-aspect-ratio);\n content: \"\";\n}\n.ratio > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.ratio-1x1 {\n --bs-aspect-ratio: 100%;\n}\n\n.ratio-4x3 {\n --bs-aspect-ratio: 75%;\n}\n\n.ratio-16x9 {\n --bs-aspect-ratio: 56.25%;\n}\n\n.ratio-21x9 {\n --bs-aspect-ratio: 42.8571428571%;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n.sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n}\n\n.sticky-bottom {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n z-index: 1020;\n}\n\n@media (min-width: 576px) {\n .sticky-sm-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-sm-bottom {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 768px) {\n .sticky-md-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-md-bottom {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 992px) {\n .sticky-lg-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-lg-bottom {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1200px) {\n .sticky-xl-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-xl-bottom {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1400px) {\n .sticky-xxl-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-xxl-bottom {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n.hstack {\n display: flex;\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n}\n\n.vstack {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-self: stretch;\n}\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n.visually-hidden:not(caption),\n.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {\n position: absolute !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n content: \"\";\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.vr {\n display: inline-block;\n align-self: stretch;\n width: var(--bs-border-width);\n min-height: 1em;\n background-color: currentcolor;\n opacity: 0.25;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.float-start {\n float: left !important;\n}\n\n.float-end {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n.object-fit-contain {\n -o-object-fit: contain !important;\n object-fit: contain !important;\n}\n\n.object-fit-cover {\n -o-object-fit: cover !important;\n object-fit: cover !important;\n}\n\n.object-fit-fill {\n -o-object-fit: fill !important;\n object-fit: fill !important;\n}\n\n.object-fit-scale {\n -o-object-fit: scale-down !important;\n object-fit: scale-down !important;\n}\n\n.object-fit-none {\n -o-object-fit: none !important;\n object-fit: none !important;\n}\n\n.opacity-0 {\n opacity: 0 !important;\n}\n\n.opacity-25 {\n opacity: 0.25 !important;\n}\n\n.opacity-50 {\n opacity: 0.5 !important;\n}\n\n.opacity-75 {\n opacity: 0.75 !important;\n}\n\n.opacity-100 {\n opacity: 1 !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.overflow-visible {\n overflow: visible !important;\n}\n\n.overflow-scroll {\n overflow: scroll !important;\n}\n\n.overflow-x-auto {\n overflow-x: auto !important;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden !important;\n}\n\n.overflow-x-visible {\n overflow-x: visible !important;\n}\n\n.overflow-x-scroll {\n overflow-x: scroll !important;\n}\n\n.overflow-y-auto {\n overflow-y: auto !important;\n}\n\n.overflow-y-hidden {\n overflow-y: hidden !important;\n}\n\n.overflow-y-visible {\n overflow-y: visible !important;\n}\n\n.overflow-y-scroll {\n overflow-y: scroll !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-inline-grid {\n display: inline-grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.shadow {\n box-shadow: var(--bs-box-shadow) !important;\n}\n\n.shadow-sm {\n box-shadow: var(--bs-box-shadow-sm) !important;\n}\n\n.shadow-lg {\n box-shadow: var(--bs-box-shadow-lg) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.focus-ring-primary {\n --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-secondary {\n --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-success {\n --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-info {\n --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-warning {\n --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-danger {\n --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-light {\n --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-dark {\n --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity));\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.top-0 {\n top: 0 !important;\n}\n\n.top-50 {\n top: 50% !important;\n}\n\n.top-100 {\n top: 100% !important;\n}\n\n.bottom-0 {\n bottom: 0 !important;\n}\n\n.bottom-50 {\n bottom: 50% !important;\n}\n\n.bottom-100 {\n bottom: 100% !important;\n}\n\n.start-0 {\n left: 0 !important;\n}\n\n.start-50 {\n left: 50% !important;\n}\n\n.start-100 {\n left: 100% !important;\n}\n\n.end-0 {\n right: 0 !important;\n}\n\n.end-50 {\n right: 50% !important;\n}\n\n.end-100 {\n right: 100% !important;\n}\n\n.translate-middle {\n transform: translate(-50%, -50%) !important;\n}\n\n.translate-middle-x {\n transform: translateX(-50%) !important;\n}\n\n.translate-middle-y {\n transform: translateY(-50%) !important;\n}\n\n.border {\n border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top {\n border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-end {\n border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-end-0 {\n border-right: 0 !important;\n}\n\n.border-bottom {\n border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-start {\n border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-start-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-secondary {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-success {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-info {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-warning {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-danger {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-light {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-dark {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-black {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-white {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-primary-subtle {\n border-color: var(--bs-primary-border-subtle) !important;\n}\n\n.border-secondary-subtle {\n border-color: var(--bs-secondary-border-subtle) !important;\n}\n\n.border-success-subtle {\n border-color: var(--bs-success-border-subtle) !important;\n}\n\n.border-info-subtle {\n border-color: var(--bs-info-border-subtle) !important;\n}\n\n.border-warning-subtle {\n border-color: var(--bs-warning-border-subtle) !important;\n}\n\n.border-danger-subtle {\n border-color: var(--bs-danger-border-subtle) !important;\n}\n\n.border-light-subtle {\n border-color: var(--bs-light-border-subtle) !important;\n}\n\n.border-dark-subtle {\n border-color: var(--bs-dark-border-subtle) !important;\n}\n\n.border-1 {\n border-width: 1px !important;\n}\n\n.border-2 {\n border-width: 2px !important;\n}\n\n.border-3 {\n border-width: 3px !important;\n}\n\n.border-4 {\n border-width: 4px !important;\n}\n\n.border-5 {\n border-width: 5px !important;\n}\n\n.border-opacity-10 {\n --bs-border-opacity: 0.1;\n}\n\n.border-opacity-25 {\n --bs-border-opacity: 0.25;\n}\n\n.border-opacity-50 {\n --bs-border-opacity: 0.5;\n}\n\n.border-opacity-75 {\n --bs-border-opacity: 0.75;\n}\n\n.border-opacity-100 {\n --bs-border-opacity: 1;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n.gap-0 {\n gap: 0 !important;\n}\n\n.gap-1 {\n gap: 0.25rem !important;\n}\n\n.gap-2 {\n gap: 0.5rem !important;\n}\n\n.gap-3 {\n gap: 1rem !important;\n}\n\n.gap-4 {\n gap: 1.5rem !important;\n}\n\n.gap-5 {\n gap: 3rem !important;\n}\n\n.row-gap-0 {\n row-gap: 0 !important;\n}\n\n.row-gap-1 {\n row-gap: 0.25rem !important;\n}\n\n.row-gap-2 {\n row-gap: 0.5rem !important;\n}\n\n.row-gap-3 {\n row-gap: 1rem !important;\n}\n\n.row-gap-4 {\n row-gap: 1.5rem !important;\n}\n\n.row-gap-5 {\n row-gap: 3rem !important;\n}\n\n.column-gap-0 {\n -moz-column-gap: 0 !important;\n column-gap: 0 !important;\n}\n\n.column-gap-1 {\n -moz-column-gap: 0.25rem !important;\n column-gap: 0.25rem !important;\n}\n\n.column-gap-2 {\n -moz-column-gap: 0.5rem !important;\n column-gap: 0.5rem !important;\n}\n\n.column-gap-3 {\n -moz-column-gap: 1rem !important;\n column-gap: 1rem !important;\n}\n\n.column-gap-4 {\n -moz-column-gap: 1.5rem !important;\n column-gap: 1.5rem !important;\n}\n\n.column-gap-5 {\n -moz-column-gap: 3rem !important;\n column-gap: 3rem !important;\n}\n\n.font-monospace {\n font-family: var(--bs-font-monospace) !important;\n}\n\n.fs-1 {\n font-size: calc(1.375rem + 1.5vw) !important;\n}\n\n.fs-2 {\n font-size: calc(1.325rem + 0.9vw) !important;\n}\n\n.fs-3 {\n font-size: calc(1.3rem + 0.6vw) !important;\n}\n\n.fs-4 {\n font-size: calc(1.275rem + 0.3vw) !important;\n}\n\n.fs-5 {\n font-size: 1.25rem !important;\n}\n\n.fs-6 {\n font-size: 1rem !important;\n}\n\n.fst-italic {\n font-style: italic !important;\n}\n\n.fst-normal {\n font-style: normal !important;\n}\n\n.fw-lighter {\n font-weight: lighter !important;\n}\n\n.fw-light {\n font-weight: 300 !important;\n}\n\n.fw-normal {\n font-weight: 400 !important;\n}\n\n.fw-medium {\n font-weight: 500 !important;\n}\n\n.fw-semibold {\n font-weight: 600 !important;\n}\n\n.fw-bold {\n font-weight: 700 !important;\n}\n\n.fw-bolder {\n font-weight: bolder !important;\n}\n\n.lh-1 {\n line-height: 1 !important;\n}\n\n.lh-sm {\n line-height: 1.25 !important;\n}\n\n.lh-base {\n line-height: 1.5 !important;\n}\n\n.lh-lg {\n line-height: 2 !important;\n}\n\n.text-start {\n text-align: left !important;\n}\n\n.text-end {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-decoration-underline {\n text-decoration: underline !important;\n}\n\n.text-decoration-line-through {\n text-decoration: line-through !important;\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n/* rtl:begin:remove */\n.text-break {\n word-wrap: break-word !important;\n word-break: break-word !important;\n}\n\n/* rtl:end:remove */\n.text-primary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-secondary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-success {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-info {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-warning {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-danger {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-light {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-dark {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-black {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-white {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-body {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-muted {\n --bs-text-opacity: 1;\n color: var(--bs-secondary-color) !important;\n}\n\n.text-black-50 {\n --bs-text-opacity: 1;\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n --bs-text-opacity: 1;\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-body-secondary {\n --bs-text-opacity: 1;\n color: var(--bs-secondary-color) !important;\n}\n\n.text-body-tertiary {\n --bs-text-opacity: 1;\n color: var(--bs-tertiary-color) !important;\n}\n\n.text-body-emphasis {\n --bs-text-opacity: 1;\n color: var(--bs-emphasis-color) !important;\n}\n\n.text-reset {\n --bs-text-opacity: 1;\n color: inherit !important;\n}\n\n.text-opacity-25 {\n --bs-text-opacity: 0.25;\n}\n\n.text-opacity-50 {\n --bs-text-opacity: 0.5;\n}\n\n.text-opacity-75 {\n --bs-text-opacity: 0.75;\n}\n\n.text-opacity-100 {\n --bs-text-opacity: 1;\n}\n\n.text-primary-emphasis {\n color: var(--bs-primary-text-emphasis) !important;\n}\n\n.text-secondary-emphasis {\n color: var(--bs-secondary-text-emphasis) !important;\n}\n\n.text-success-emphasis {\n color: var(--bs-success-text-emphasis) !important;\n}\n\n.text-info-emphasis {\n color: var(--bs-info-text-emphasis) !important;\n}\n\n.text-warning-emphasis {\n color: var(--bs-warning-text-emphasis) !important;\n}\n\n.text-danger-emphasis {\n color: var(--bs-danger-text-emphasis) !important;\n}\n\n.text-light-emphasis {\n color: var(--bs-light-text-emphasis) !important;\n}\n\n.text-dark-emphasis {\n color: var(--bs-dark-text-emphasis) !important;\n}\n\n.link-opacity-10 {\n --bs-link-opacity: 0.1;\n}\n\n.link-opacity-10-hover:hover {\n --bs-link-opacity: 0.1;\n}\n\n.link-opacity-25 {\n --bs-link-opacity: 0.25;\n}\n\n.link-opacity-25-hover:hover {\n --bs-link-opacity: 0.25;\n}\n\n.link-opacity-50 {\n --bs-link-opacity: 0.5;\n}\n\n.link-opacity-50-hover:hover {\n --bs-link-opacity: 0.5;\n}\n\n.link-opacity-75 {\n --bs-link-opacity: 0.75;\n}\n\n.link-opacity-75-hover:hover {\n --bs-link-opacity: 0.75;\n}\n\n.link-opacity-100 {\n --bs-link-opacity: 1;\n}\n\n.link-opacity-100-hover:hover {\n --bs-link-opacity: 1;\n}\n\n.link-offset-1 {\n text-underline-offset: 0.125em !important;\n}\n\n.link-offset-1-hover:hover {\n text-underline-offset: 0.125em !important;\n}\n\n.link-offset-2 {\n text-underline-offset: 0.25em !important;\n}\n\n.link-offset-2-hover:hover {\n text-underline-offset: 0.25em !important;\n}\n\n.link-offset-3 {\n text-underline-offset: 0.375em !important;\n}\n\n.link-offset-3-hover:hover {\n text-underline-offset: 0.375em !important;\n}\n\n.link-underline-primary {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;\n text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-secondary {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;\n text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-success {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;\n text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-info {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;\n text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-warning {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;\n text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-danger {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;\n text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-light {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;\n text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-dark {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;\n text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline {\n --bs-link-underline-opacity: 1;\n -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-underline-opacity-0 {\n --bs-link-underline-opacity: 0;\n}\n\n.link-underline-opacity-0-hover:hover {\n --bs-link-underline-opacity: 0;\n}\n\n.link-underline-opacity-10 {\n --bs-link-underline-opacity: 0.1;\n}\n\n.link-underline-opacity-10-hover:hover {\n --bs-link-underline-opacity: 0.1;\n}\n\n.link-underline-opacity-25 {\n --bs-link-underline-opacity: 0.25;\n}\n\n.link-underline-opacity-25-hover:hover {\n --bs-link-underline-opacity: 0.25;\n}\n\n.link-underline-opacity-50 {\n --bs-link-underline-opacity: 0.5;\n}\n\n.link-underline-opacity-50-hover:hover {\n --bs-link-underline-opacity: 0.5;\n}\n\n.link-underline-opacity-75 {\n --bs-link-underline-opacity: 0.75;\n}\n\n.link-underline-opacity-75-hover:hover {\n --bs-link-underline-opacity: 0.75;\n}\n\n.link-underline-opacity-100 {\n --bs-link-underline-opacity: 1;\n}\n\n.link-underline-opacity-100-hover:hover {\n --bs-link-underline-opacity: 1;\n}\n\n.bg-primary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-success {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-info {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-warning {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-danger {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-light {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-dark {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-black {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-white {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-transparent {\n --bs-bg-opacity: 1;\n background-color: transparent !important;\n}\n\n.bg-body-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body-tertiary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-opacity-10 {\n --bs-bg-opacity: 0.1;\n}\n\n.bg-opacity-25 {\n --bs-bg-opacity: 0.25;\n}\n\n.bg-opacity-50 {\n --bs-bg-opacity: 0.5;\n}\n\n.bg-opacity-75 {\n --bs-bg-opacity: 0.75;\n}\n\n.bg-opacity-100 {\n --bs-bg-opacity: 1;\n}\n\n.bg-primary-subtle {\n background-color: var(--bs-primary-bg-subtle) !important;\n}\n\n.bg-secondary-subtle {\n background-color: var(--bs-secondary-bg-subtle) !important;\n}\n\n.bg-success-subtle {\n background-color: var(--bs-success-bg-subtle) !important;\n}\n\n.bg-info-subtle {\n background-color: var(--bs-info-bg-subtle) !important;\n}\n\n.bg-warning-subtle {\n background-color: var(--bs-warning-bg-subtle) !important;\n}\n\n.bg-danger-subtle {\n background-color: var(--bs-danger-bg-subtle) !important;\n}\n\n.bg-light-subtle {\n background-color: var(--bs-light-bg-subtle) !important;\n}\n\n.bg-dark-subtle {\n background-color: var(--bs-dark-bg-subtle) !important;\n}\n\n.bg-gradient {\n background-image: var(--bs-gradient) !important;\n}\n\n.user-select-all {\n -webkit-user-select: all !important;\n -moz-user-select: all !important;\n user-select: all !important;\n}\n\n.user-select-auto {\n -webkit-user-select: auto !important;\n -moz-user-select: auto !important;\n user-select: auto !important;\n}\n\n.user-select-none {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n}\n\n.pe-none {\n pointer-events: none !important;\n}\n\n.pe-auto {\n pointer-events: auto !important;\n}\n\n.rounded {\n border-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.rounded-1 {\n border-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-2 {\n border-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-3 {\n border-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-4 {\n border-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-5 {\n border-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-top {\n border-top-left-radius: var(--bs-border-radius) !important;\n border-top-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-top-0 {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n}\n\n.rounded-top-1 {\n border-top-left-radius: var(--bs-border-radius-sm) !important;\n border-top-right-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-top-2 {\n border-top-left-radius: var(--bs-border-radius) !important;\n border-top-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-top-3 {\n border-top-left-radius: var(--bs-border-radius-lg) !important;\n border-top-right-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-top-4 {\n border-top-left-radius: var(--bs-border-radius-xl) !important;\n border-top-right-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-top-5 {\n border-top-left-radius: var(--bs-border-radius-xxl) !important;\n border-top-right-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-top-circle {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n}\n\n.rounded-top-pill {\n border-top-left-radius: var(--bs-border-radius-pill) !important;\n border-top-right-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-end {\n border-top-right-radius: var(--bs-border-radius) !important;\n border-bottom-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-end-0 {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.rounded-end-1 {\n border-top-right-radius: var(--bs-border-radius-sm) !important;\n border-bottom-right-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-end-2 {\n border-top-right-radius: var(--bs-border-radius) !important;\n border-bottom-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-end-3 {\n border-top-right-radius: var(--bs-border-radius-lg) !important;\n border-bottom-right-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-end-4 {\n border-top-right-radius: var(--bs-border-radius-xl) !important;\n border-bottom-right-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-end-5 {\n border-top-right-radius: var(--bs-border-radius-xxl) !important;\n border-bottom-right-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-end-circle {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n}\n\n.rounded-end-pill {\n border-top-right-radius: var(--bs-border-radius-pill) !important;\n border-bottom-right-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: var(--bs-border-radius) !important;\n border-bottom-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-bottom-0 {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n\n.rounded-bottom-1 {\n border-bottom-right-radius: var(--bs-border-radius-sm) !important;\n border-bottom-left-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-bottom-2 {\n border-bottom-right-radius: var(--bs-border-radius) !important;\n border-bottom-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-bottom-3 {\n border-bottom-right-radius: var(--bs-border-radius-lg) !important;\n border-bottom-left-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-bottom-4 {\n border-bottom-right-radius: var(--bs-border-radius-xl) !important;\n border-bottom-left-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-bottom-5 {\n border-bottom-right-radius: var(--bs-border-radius-xxl) !important;\n border-bottom-left-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-bottom-circle {\n border-bottom-right-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n}\n\n.rounded-bottom-pill {\n border-bottom-right-radius: var(--bs-border-radius-pill) !important;\n border-bottom-left-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-start {\n border-bottom-left-radius: var(--bs-border-radius) !important;\n border-top-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-start-0 {\n border-bottom-left-radius: 0 !important;\n border-top-left-radius: 0 !important;\n}\n\n.rounded-start-1 {\n border-bottom-left-radius: var(--bs-border-radius-sm) !important;\n border-top-left-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-start-2 {\n border-bottom-left-radius: var(--bs-border-radius) !important;\n border-top-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-start-3 {\n border-bottom-left-radius: var(--bs-border-radius-lg) !important;\n border-top-left-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-start-4 {\n border-bottom-left-radius: var(--bs-border-radius-xl) !important;\n border-top-left-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-start-5 {\n border-bottom-left-radius: var(--bs-border-radius-xxl) !important;\n border-top-left-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-start-circle {\n border-bottom-left-radius: 50% !important;\n border-top-left-radius: 50% !important;\n}\n\n.rounded-start-pill {\n border-bottom-left-radius: var(--bs-border-radius-pill) !important;\n border-top-left-radius: var(--bs-border-radius-pill) !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n.z-n1 {\n z-index: -1 !important;\n}\n\n.z-0 {\n z-index: 0 !important;\n}\n\n.z-1 {\n z-index: 1 !important;\n}\n\n.z-2 {\n z-index: 2 !important;\n}\n\n.z-3 {\n z-index: 3 !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-start {\n float: left !important;\n }\n .float-sm-end {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n .object-fit-sm-contain {\n -o-object-fit: contain !important;\n object-fit: contain !important;\n }\n .object-fit-sm-cover {\n -o-object-fit: cover !important;\n object-fit: cover !important;\n }\n .object-fit-sm-fill {\n -o-object-fit: fill !important;\n object-fit: fill !important;\n }\n .object-fit-sm-scale {\n -o-object-fit: scale-down !important;\n object-fit: scale-down !important;\n }\n .object-fit-sm-none {\n -o-object-fit: none !important;\n object-fit: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-inline-grid {\n display: inline-grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n .gap-sm-0 {\n gap: 0 !important;\n }\n .gap-sm-1 {\n gap: 0.25rem !important;\n }\n .gap-sm-2 {\n gap: 0.5rem !important;\n }\n .gap-sm-3 {\n gap: 1rem !important;\n }\n .gap-sm-4 {\n gap: 1.5rem !important;\n }\n .gap-sm-5 {\n gap: 3rem !important;\n }\n .row-gap-sm-0 {\n row-gap: 0 !important;\n }\n .row-gap-sm-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-sm-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-sm-3 {\n row-gap: 1rem !important;\n }\n .row-gap-sm-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-sm-5 {\n row-gap: 3rem !important;\n }\n .column-gap-sm-0 {\n -moz-column-gap: 0 !important;\n column-gap: 0 !important;\n }\n .column-gap-sm-1 {\n -moz-column-gap: 0.25rem !important;\n column-gap: 0.25rem !important;\n }\n .column-gap-sm-2 {\n -moz-column-gap: 0.5rem !important;\n column-gap: 0.5rem !important;\n }\n .column-gap-sm-3 {\n -moz-column-gap: 1rem !important;\n column-gap: 1rem !important;\n }\n .column-gap-sm-4 {\n -moz-column-gap: 1.5rem !important;\n column-gap: 1.5rem !important;\n }\n .column-gap-sm-5 {\n -moz-column-gap: 3rem !important;\n column-gap: 3rem !important;\n }\n .text-sm-start {\n text-align: left !important;\n }\n .text-sm-end {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 768px) {\n .float-md-start {\n float: left !important;\n }\n .float-md-end {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n .object-fit-md-contain {\n -o-object-fit: contain !important;\n object-fit: contain !important;\n }\n .object-fit-md-cover {\n -o-object-fit: cover !important;\n object-fit: cover !important;\n }\n .object-fit-md-fill {\n -o-object-fit: fill !important;\n object-fit: fill !important;\n }\n .object-fit-md-scale {\n -o-object-fit: scale-down !important;\n object-fit: scale-down !important;\n }\n .object-fit-md-none {\n -o-object-fit: none !important;\n object-fit: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-inline-grid {\n display: inline-grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n .gap-md-0 {\n gap: 0 !important;\n }\n .gap-md-1 {\n gap: 0.25rem !important;\n }\n .gap-md-2 {\n gap: 0.5rem !important;\n }\n .gap-md-3 {\n gap: 1rem !important;\n }\n .gap-md-4 {\n gap: 1.5rem !important;\n }\n .gap-md-5 {\n gap: 3rem !important;\n }\n .row-gap-md-0 {\n row-gap: 0 !important;\n }\n .row-gap-md-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-md-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-md-3 {\n row-gap: 1rem !important;\n }\n .row-gap-md-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-md-5 {\n row-gap: 3rem !important;\n }\n .column-gap-md-0 {\n -moz-column-gap: 0 !important;\n column-gap: 0 !important;\n }\n .column-gap-md-1 {\n -moz-column-gap: 0.25rem !important;\n column-gap: 0.25rem !important;\n }\n .column-gap-md-2 {\n -moz-column-gap: 0.5rem !important;\n column-gap: 0.5rem !important;\n }\n .column-gap-md-3 {\n -moz-column-gap: 1rem !important;\n column-gap: 1rem !important;\n }\n .column-gap-md-4 {\n -moz-column-gap: 1.5rem !important;\n column-gap: 1.5rem !important;\n }\n .column-gap-md-5 {\n -moz-column-gap: 3rem !important;\n column-gap: 3rem !important;\n }\n .text-md-start {\n text-align: left !important;\n }\n .text-md-end {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 992px) {\n .float-lg-start {\n float: left !important;\n }\n .float-lg-end {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n .object-fit-lg-contain {\n -o-object-fit: contain !important;\n object-fit: contain !important;\n }\n .object-fit-lg-cover {\n -o-object-fit: cover !important;\n object-fit: cover !important;\n }\n .object-fit-lg-fill {\n -o-object-fit: fill !important;\n object-fit: fill !important;\n }\n .object-fit-lg-scale {\n -o-object-fit: scale-down !important;\n object-fit: scale-down !important;\n }\n .object-fit-lg-none {\n -o-object-fit: none !important;\n object-fit: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-inline-grid {\n display: inline-grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n .gap-lg-0 {\n gap: 0 !important;\n }\n .gap-lg-1 {\n gap: 0.25rem !important;\n }\n .gap-lg-2 {\n gap: 0.5rem !important;\n }\n .gap-lg-3 {\n gap: 1rem !important;\n }\n .gap-lg-4 {\n gap: 1.5rem !important;\n }\n .gap-lg-5 {\n gap: 3rem !important;\n }\n .row-gap-lg-0 {\n row-gap: 0 !important;\n }\n .row-gap-lg-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-lg-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-lg-3 {\n row-gap: 1rem !important;\n }\n .row-gap-lg-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-lg-5 {\n row-gap: 3rem !important;\n }\n .column-gap-lg-0 {\n -moz-column-gap: 0 !important;\n column-gap: 0 !important;\n }\n .column-gap-lg-1 {\n -moz-column-gap: 0.25rem !important;\n column-gap: 0.25rem !important;\n }\n .column-gap-lg-2 {\n -moz-column-gap: 0.5rem !important;\n column-gap: 0.5rem !important;\n }\n .column-gap-lg-3 {\n -moz-column-gap: 1rem !important;\n column-gap: 1rem !important;\n }\n .column-gap-lg-4 {\n -moz-column-gap: 1.5rem !important;\n column-gap: 1.5rem !important;\n }\n .column-gap-lg-5 {\n -moz-column-gap: 3rem !important;\n column-gap: 3rem !important;\n }\n .text-lg-start {\n text-align: left !important;\n }\n .text-lg-end {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-start {\n float: left !important;\n }\n .float-xl-end {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n .object-fit-xl-contain {\n -o-object-fit: contain !important;\n object-fit: contain !important;\n }\n .object-fit-xl-cover {\n -o-object-fit: cover !important;\n object-fit: cover !important;\n }\n .object-fit-xl-fill {\n -o-object-fit: fill !important;\n object-fit: fill !important;\n }\n .object-fit-xl-scale {\n -o-object-fit: scale-down !important;\n object-fit: scale-down !important;\n }\n .object-fit-xl-none {\n -o-object-fit: none !important;\n object-fit: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-inline-grid {\n display: inline-grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n .gap-xl-0 {\n gap: 0 !important;\n }\n .gap-xl-1 {\n gap: 0.25rem !important;\n }\n .gap-xl-2 {\n gap: 0.5rem !important;\n }\n .gap-xl-3 {\n gap: 1rem !important;\n }\n .gap-xl-4 {\n gap: 1.5rem !important;\n }\n .gap-xl-5 {\n gap: 3rem !important;\n }\n .row-gap-xl-0 {\n row-gap: 0 !important;\n }\n .row-gap-xl-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-xl-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-xl-3 {\n row-gap: 1rem !important;\n }\n .row-gap-xl-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-xl-5 {\n row-gap: 3rem !important;\n }\n .column-gap-xl-0 {\n -moz-column-gap: 0 !important;\n column-gap: 0 !important;\n }\n .column-gap-xl-1 {\n -moz-column-gap: 0.25rem !important;\n column-gap: 0.25rem !important;\n }\n .column-gap-xl-2 {\n -moz-column-gap: 0.5rem !important;\n column-gap: 0.5rem !important;\n }\n .column-gap-xl-3 {\n -moz-column-gap: 1rem !important;\n column-gap: 1rem !important;\n }\n .column-gap-xl-4 {\n -moz-column-gap: 1.5rem !important;\n column-gap: 1.5rem !important;\n }\n .column-gap-xl-5 {\n -moz-column-gap: 3rem !important;\n column-gap: 3rem !important;\n }\n .text-xl-start {\n text-align: left !important;\n }\n .text-xl-end {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1400px) {\n .float-xxl-start {\n float: left !important;\n }\n .float-xxl-end {\n float: right !important;\n }\n .float-xxl-none {\n float: none !important;\n }\n .object-fit-xxl-contain {\n -o-object-fit: contain !important;\n object-fit: contain !important;\n }\n .object-fit-xxl-cover {\n -o-object-fit: cover !important;\n object-fit: cover !important;\n }\n .object-fit-xxl-fill {\n -o-object-fit: fill !important;\n object-fit: fill !important;\n }\n .object-fit-xxl-scale {\n -o-object-fit: scale-down !important;\n object-fit: scale-down !important;\n }\n .object-fit-xxl-none {\n -o-object-fit: none !important;\n object-fit: none !important;\n }\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-inline-grid {\n display: inline-grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n .gap-xxl-0 {\n gap: 0 !important;\n }\n .gap-xxl-1 {\n gap: 0.25rem !important;\n }\n .gap-xxl-2 {\n gap: 0.5rem !important;\n }\n .gap-xxl-3 {\n gap: 1rem !important;\n }\n .gap-xxl-4 {\n gap: 1.5rem !important;\n }\n .gap-xxl-5 {\n gap: 3rem !important;\n }\n .row-gap-xxl-0 {\n row-gap: 0 !important;\n }\n .row-gap-xxl-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-xxl-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-xxl-3 {\n row-gap: 1rem !important;\n }\n .row-gap-xxl-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-xxl-5 {\n row-gap: 3rem !important;\n }\n .column-gap-xxl-0 {\n -moz-column-gap: 0 !important;\n column-gap: 0 !important;\n }\n .column-gap-xxl-1 {\n -moz-column-gap: 0.25rem !important;\n column-gap: 0.25rem !important;\n }\n .column-gap-xxl-2 {\n -moz-column-gap: 0.5rem !important;\n column-gap: 0.5rem !important;\n }\n .column-gap-xxl-3 {\n -moz-column-gap: 1rem !important;\n column-gap: 1rem !important;\n }\n .column-gap-xxl-4 {\n -moz-column-gap: 1.5rem !important;\n column-gap: 1.5rem !important;\n }\n .column-gap-xxl-5 {\n -moz-column-gap: 3rem !important;\n column-gap: 3rem !important;\n }\n .text-xxl-start {\n text-align: left !important;\n }\n .text-xxl-end {\n text-align: right !important;\n }\n .text-xxl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .fs-1 {\n font-size: 2.5rem !important;\n }\n .fs-2 {\n font-size: 2rem !important;\n }\n .fs-3 {\n font-size: 1.75rem !important;\n }\n .fs-4 {\n font-size: 1.5rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-inline-grid {\n display: inline-grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: var(--#{$prefix}heading-color);\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`

\H H_s-8BB/!wPF+l!:TE<'h C?h@=Hkn奝F؝yNo# \;eI#WI5.*pǛIR:ʤdf+M:0$sͷgrNܯyLWLQ@#;v/CtI+2]Zlc+ف&hcraDK1žxbwD;ѧj7-֍CK685=Co,LɲK@Ҵ ~WhB8 -t[UIdG7|0jV{|Z:N<WYz[i2Gk4?oS Τ3؆%&O;u#\e(X!3[ -QdNb8øP4k@5ޘ-x︴s=Amy>AK@Fy9,$PS+_$}iͽ}Ua A f.ir)lҏOnCo@<7#γ`@_(!%brdjOGOh7(%G{=?u7 -|D6)m*`*r]aDB G"S&H - )CreFCǥ6zZJb(xHMb u rc@vq(rf5`6igVgvEK} -WK?gP)`c٢t3"i2^ U' bl_!s(yxOY<ǹ4Xl p@G2#?b`|&̳: -r8p^[Cz&2gHR|W@Q20 YS]z'l1P*1")"D6( XGNCY %jH'-?S@5XV"?4"! )i {=%ꁜi@n -DwX!:XvA#-#zD"|g:o{JͺUX ˮIs7A Ŀ@p}rϞO\죠v`6(Mk3:-1:x#Wp]@atӼEzh=wnikgNY^`q, N_뤾Es̺\1$ ,k1n3V5=cݠmIwC|=[ -Srg',h+AK"'=AIk9#Bw&YDjojv}}E.+z^~Rޢɮu`e:3]2l165:2ׇm7ꭱE?hn=8B>LMĵ ->:uANt& -cT2e \N0&AOܣ U>W@r#}eest/>~ht<#("3X: hb6єV[qH,4`O +4ZTs wi0dL$ NiJ}ZZ1j+;@o(`TV4UGiesA|)PM[:ƳIϚS”h%>k)ʋa: j0߻5L+$R _{ -E8fau,Hz^sB5a{Z`SiF``>=y%=W3w'f_B'$wͣlg]Kb`W VqlSp%H! 0_ШCßI!_s[0l FžHBmoͣGB%:8;h[t4uZ[C  }F> "F5-+[Pw /#\/${8J,Ox3}c*~2%"Y~UqtGQen4*\T%{$ )TK2}B:40te@h peH^H8^%X@ErwWOw Gg,xh<&4,~R{n7]&>cv GYe4Qͩ AgZ0F0bl@I`ݹ"%M{<@,uIf)@R?p;>r;)zQ`u}YfR4Cb ]R| >jT8%?Ř90^s|S.V^BB1hܷ1V-m|)f 聟VNWݣ09=6 C)GmsptfZp$2-3P!=Pu_60.|JhK['ef#D*%8#CvJʌt3Lr#|ENcS? @ [ "UAìF!@. -T3~Pen1\tBV<炓qs 1(S]o$d9,?Tڳ9 aL^TyЁ");jX%"F>1V -ޯ_ !؈ dQ#ؚ$XPbtp{郄dNg/'#w%ӠZ*Ҧp$ ؑA,H͈8>>036@<DǶN;} 6ЈV"F@%A:E=O?ˁ$7'K[oT no"]8]J -KyzhQ' 6o+r5<-czT\t^<̟Gi&Q00b>hSKd٠.6D  ۺF1v9ky v-s]Q -1fd/fHiKa/T֝97`E X48m1za,@ -kĴL'Vr!Bdaơ"o tJE.ӆ$JƅK66ݚ,rKk9D?@5Q`+RwJ0?]*}3Y&'5^_z:}H! -<}?/vه/4HSW4yhr-<(G|\:i&E4'~u`š cY -Ձt(E)85PiLnj# q;zGõ*[[3砆o5"y\ѦlA ךĻT nKGJ,BG\;j5vFNANH*xd4$rj"ݏ͟@cf`HH6LD0vDvr83,o"0!O ^Ti=XYT|6D-y@B*Mw/Y؛f& 62Ǩ}\ -\6wU -NYFlL'SE/^Q!zܢt`38ǖ&-JzSl-g"frFj b.,Ӛ> ~(D<opYMk<֙U|ѝ>a3PЈɢ; -&)^uDx؀Id֫mJDS -YaFUT#j;kE@-)~e. ?Ϥ+w[M=}Jtv &5U$=H8/ t"~2!C"ۧ8cQ."L2¤%D]:i%,CL[{x,̊.VVB[god2uJ HK}6( EPi0tѹAJ 9HVTׂp%/dDJWt;Iwwgp?T Y>l!rF M/15 -GcSA#ރ1eOKx`h,̎Lwk G74E:e< nFO=zY#]z/|V.w&-˞45 h`e\vllhU&?gmʑy+33?pWgi3ީ;k%QtقV-!Mt49hly({^N)戀f@wLf Py7%tnfdJv7XbX) !>駫`~ɟkp -]nc q&KՌgbhȮds (\G1fdeA#P&B8BdwǵH&@ލ"'F_; -@t`g(L^A[&., -#B#%ٸyj[Xʨpv3teܘY,`jC8_hKdt6+sTBMV/pvT5pI{E =7ExmEĎ -V."4{G5{ۼl$/n]NE$?k P |Ex -_Ŗݸ,k,uk!U;ÌL3+u/ȯ:'ŀRGԿkIMdC.= ZaŬ.yjdpR-0(&6L%aaxF9\EȲjF &*ARլLQNU3wo%f[()ՃõcF08gY`"2W (En[N,~ա-PnzhMu<H)^H -Ucr@P5}_o]oPԷ/B[' V16}$>e sϥ}0e݄HЙ݇&&E1mx׻4:azʺX_]l;<_H쩘GW}]¹wxt)R0K)-Ly[)f식_ҏ6R4Z^6h -sEl~h/zUZ'0gS:Y~hĺ=V?uG=\*FIY4~}"4ć.[1N,k]!4AAL˅}Vu>Y:.y,VKJէ8dpu(jXNGmj! aZ:){KXp'+&y$d]]"=>4+}~e>tFѫA 5zf>_`pEsИ? Gkmbw7jHOG. {EÚph&Gcg̟6;^:߫KYS4~|Y {^MA(fu}'Aazq5j' hC yhG/??=sSJo-[Lh'=G&[7^j~I -~.K'` c+J -܇ -h_;4Qn55F{))oPl:seD)c<7h&wCƀ)pOLLz|,sNJsD> D= u?&5B/ѱEוZؼGR(q -u-6Ǡu}k *Bp}l l\ m$cy?kփAe)hעr3Kd;$ -3u;\kmkZ]y;-N8$P8wr{ӏ~I^v_^$bHnoѓ] wh&CX òI1[6E9^z.}#<.s0 In#̳ͱIq]=ۛM.oP8fI{9Yzo4G.}9۝}{4Ms=%/Mq˽ǒ{{=dIaY{ESbwwH>7;h6qp6q$}^am}ߜ1CNGo .!8ͶC gۡ(.(;$}}(9mbp6q!/Xnsvir_o[oob9rOf~{#CȾnNOC҇MKmKNޏ,PmGnK4y9r^vO{0Msr&nN^'(v}!w}],ޥ)J8X ůޤ/yyc7})9m")Iǐ[$RIN!Y͓%%\$r]^ٶ.oC͑s/mv^,&y9mwY\.Mqܡ'I$K9/Gr$ő,C^#/9)ݓG,E,mb7=in<쟄B'=/9.mn{ssܦζIQܻ˽HJ4XJN6%mK&iM_ɰ ooK46%mo.l" [yI$IS$vf]iNt!koeQZ<0uWA;nPܺuqso ZFtۜ{ &Q$o&m/nAnHGq~\od ߏ[؇?Zv' k.YYYcq ǭ?Zo [+5Vڴ-YY5' 7˲wVX f-4M@mװZ&fYn}oMsY~kxoX緵?V|05ڭYA w&gˢkNJd}}~X+>}/ \s.V' 0h' к5~Z:f}_?z^f09~jh5ϰOdڢz[v\[kSuܦ0ح]k019@=xԼƴ;o-xb8p?@[Vn* JCucPݨZ$rOz@*8n801ǥ + g^:P 1hʀd׈q  -Y3פA;B!-o@]˗襢.4*LfhƗ_֘<$2Qpi()8DJ_ ZQ3qQ63++vE8̀D9܎ -K8!8{a$8qgxq:BYpA8u XtF0PĚ2 @x H段DIŞ4ҚTa[@fcIY&LDյJ :c/NJ\*<.MäS -ObeE?κ Ĕ.$K-biEhה=Nk -Z5wi'AQS m4qpD7 :BA9 -겻=g:PbI\̮ZZs~[pA<;BqP += (\{^9B̞88E Svz)WkY dI 0u| #h<=C6۲H;ew†Y S(7JFgFC"Q>%",6ҟf96u -U#XGb@1BZDfpH0oSҫmpK΂In\r@Y,9I ܢJRq NR9PJ $T,<;mt->JȨ@(o@(HT>jFʉ GH,9;t\D|dBI|JTN:BCwZ "SbBsp e2XT,N_|ъgUQj(D5L<lO)@MDio&ig -…j>7C;B, mkY8;%5F h'a͖=':ɌP< - tnVE;lF/[%>Il9.p$1tc,3BM -A'RDǺ|4ڞNt :~5LCYpmiMG(wG(f'ֆ֯ ӻ :<:&Y tUf]m*gbc)GQ[{DU6"a/%rPHRMe(m RG(В)PDLmV y^FN0b\X,h -ŽPpȴOs@:mʚC~f]!#O$q2`6[&M. >GIH(l)eA6OL *dUH:3 -CI2 -xAʌA=~ VJhڠM\䥖;BUiꌡ4M(|-T41pDJ+$و3Dh߀WPS4FP砵 $mP+W}QK㕩,hG(<˦ēHD(x 8+@,;P|-3 : n<Fߝu#P&/)&j]74xoѵ/,jd -:B#_$Ide0YUxQiAﴆkJEdŒvph9 9x -r-\vVg`6,)Gd - |aPN_PR9* /4 -K H43)RkX#/D$K ^s%.`J_1h K Ay>F -|E;B2aW:@";BAA;8#Y <1|<<  ˸TGYx\:HJF2vL@h霼5Uzx <zk2P@RRSAVxYv@4D\j1x*;BamF'B58ZA~* -V*i*FO|)4D7\Z t e֎PذmMCgU2x $l{~:.O<YK9̮5X.7vr3;6}!=Z|1se;Z ]2a. Ks^d;* 8D^*"TEF6.%60VNT,D$zau٧kI322 -7UP( |K -D1[㰺H('7Sæ7 O ,N ⎋\huW WEL²*JEh"'s -ڝaTDiz.kG(| Y+@ ܏Y -m2M)Ahpie"@1,j!43`AD@ -e`l]+M|$VP |NoqX]gLA./(DzDRԼ:Zj%ΪYAhF&i-;ΩRZ*eJB1&3C-WK;V H'G$sHg`]J'۲)a+qXLY;sL#H #Cl~P7O~Er4D52-B,X@gfLcn]L`Ad4 -7}yUJt/ ᭇ_S PD- P Ԯ4T`Q+6biM#'$ؓdJSI&1I1iA< Efek{hdkd M2QFexf4QB3 CD2" ɥ鰖lR6$H>B,4$(Cq` #9 @ c)lZ<Յ8A|,cI0WCUvӘ~!l2h= P2ع7.߬L3<n2iZnDqevDʌ$r++j@MЊ27x~&m%BQ U?ς&|37%# yivgAR{/VO3ŔBZ$qL %P>i0GikhZokV;ES%F@{юp Dm >ƘĄb˗WjvW|H͂w MGuafDZ$ϥ&KDG ARc#(I^ewHhfk"qjP xMCP&bUЖC49@O`5>sS.dR"v0vRZ1w{ȿުD[\)xwiI])7Nk`Tg29 YG^A -S)oS.-mwx=2HD C( <@A DMXʠ3Q#>8\Pk7{p܄-<GWMx&l..U,Ȭ8 -!g|':ZSvl 9na,oJ ^lШo)%EY "ЀU@m-|@?_Vry>Ywq5G/h9+8٦l.1HM'IPۀv2XU5Ǯb[E'?ծq -kK`K Ǐ!f9Qdkyr A8Cb9 L/FA[1h5T=YO -2+c anvs_WiErs+DZdW4z5nP \㊨TFWf'ܞ7茢`>Xnm1i K.Ufx椡H;8n | -~&Rt'#OPRE&1J[#hzр^[xrOtM⧓Cs鼝" -%*W1kBTzde X ,cquKOr3b8~?7Bc adxBhO>6}SlD rOF 1﮳\nŠE>@ڵj;gUO-w y,dMieέV婌MRR+a<Նzmw2Xސ |_$RCv 旰nI+Ѱ_Z/4qg84>=f=8 -Z\w"ޑv~^|/lR-VR̵l;myϢ5 uQ9C kx ) 2J?Kp5(^Ry[6F>Pwn p,uaԗ]/}L3bL긟'R`Kt_$XRv\exN[-Q 5Ɩ%^8,ޏ$$?KEl -Q G#eC6iTh-a MpX7qnS aUwH RruWp؈FDFRL}Q) lg 62)T J)2yg0' 4]ՌqIea%Z9_D|ê,z 2wV QmB:JbsGhhb{3I[+k< T +u⎛i`C&j] \j -1 -)y<=C,Ͱ v}(I VChٮv4-c#'Q -<]eJ 㫺7yJRX4_7 zsi $9$S(ڴ{4#_ -S~'iGUZ#Uih_&BJJaT[XAC -6}Zp ӰpLBn.F26s -՜u KqqKs9/%͓{~:M82 <'wNJ` -X8/-iʅW >}ᘶ'KPAVv Q8IC\0_/2l.mz0 \}m:]w҄`rD|69ȱIM)-$~O:dA4V&q5t :DO$6 VS9J@d7oO434amsoG>!pEN BC< %ʨXKŮK(ll-^Qji!Ի{#CQ#%~:1k_~_o\p<P(DT}XLUeM`:N-cCL fش:8q?o`t"*WuD`^QײNo,ܚ[HjZf(3ȭ4 C,\Щq#v1<C p@e -I+ cET:,KBlCi)}}: 2 1cC5})ͽ}Ly)jˁY"VT_hp*RmT -WLuK]L '9|'[m긿XpXS%/4Cۉ;P&Bv -WHo69S=;'B#NRk3qu;ܠzI9uzp-湌eV8iZ'gE( %mךM\脍K֡zۙ2_{ C;a$Iw{p,YP -LeGFZ<3¼Nj{VDVVl XWg)~ˡ^GsA=$zE#q_Ƙ$T//HX. %\'8x/ -Ȃ -dπGNd)>3c_ ~񓸩ͤ0hPb,qdjn7ŵ1;]켸DQWf4LoQ -DA v˟LаnNQ8F郗B`||<-g v'yc @:53!窘 -)<&BHWkĜ[J Wf-v!GnLf Ǐ+@uPUc(E)(>*z(# š1/\l;=ղ$I*.z7T kyL{%D]zKLv"k1@u?4*st8S -rXאφ]>v#bI'1^A@džqdi)&,F<s=%;zo Y,^q ˵Դ.zX+Ait&"dy, 7w^)1m- >@54O1ozN17e+g%^ˣ0P[[渇-/WDMʂ^6غُ}67J Ce0T8dXi`3|^P`V>kS Cb=`eNcCj'R Ai`Sv'F,2N'0O &-,Q$a0Zldޅmu~k]#8hY` ڿ$2VlH.LGUaG/KI(`c0_ a5ͱi L2F?9T -ivWړ (\ C["v%^2ئ0q -[2/'gjcU=W)˒rʉi&ۗ3 O  3q+_?V|vnJe8V~ zM"j^,HX6~̰eutY.ks>:ۼ/圔c)v|$v|[p`5jξY|`&x8XmY9O#,EBT8V蓍qXe@re -`{KHpL+?7G6N`|Qzxr `K_u+ <c  `|]q\A XxߘB ƔgEs:V81wmvV6DvR ]4S:U:[t$<{[a@0.'~8 Q'qZfOr5kro-;oUo k90ͤ^}]ɰ3Li5 C7쵂V). -KpO[,IksgxznT40{wKv H(ȍy r\zu)ЄiQ.!z?Lpeȥr.G`\](hV[+cߐ6CϚ[)Z8lWI'{@6[h4LȤ|dQ9> $MB AC -2/i#W |"ﮍ U=1R3 ,P¤ϙ/^1`F;扨;[aAhॕ{;VD`?"{hpİ s.XB~rCon-BݦU&M5 o L-x,]oC*Uck⠍}ǾDXML D;^뭔E yt8:e+(?r脡]6\GUՐ^#(^ftx +^vEvRxRGQRD;L"3k1I`А֛& h*pJ^LWxRGFӺc{H[KlC=!3[Eq> S@mۨe]m߁M"G6mTBS2Ny8Z908ҩor^6 <]+f)q)1 &E Jm|! #_vpHQe8B 14N ;|۲M=dKZj`Bdo,fm_vZC> `2w#Nfq= ٗTy۬ z0TRY,+ <ɇO-^* x o2 -"Ɯx'!/+HupT;JOxN -"Rۏ.q -~f:A۠"9Vmr(|;g&uQ g˺1U\,>8%ЍP}Qx9B|&S2rFPm4Мi746C-P՚DW"?ykhV -$7 E~6Ti']bi\TCCle{sW2q;L7Oe>I-C}60t2 -4}!#pЫ9p7uFt -/Uq - J mb?XǶ̢%eEyekn+v)+,4Օr=GLb(*TjmkA>ݤV*=G 4o<њ9$O&|4n9#quIVx;d e$O\MA\^ea4v+ƿVBb16 mt'ثc<5vFC0 t6 H0#Jl Wz<ЛySD@FʻaX.N~8W=:j/t<>lEoݴN`NN6N@j^cC;\2@: ƒp>؋. Zn;s@}+-6"vMD/eĈ2}DXk;}+0q(6WgTi>lR+]4s%8 SWD7{S>Uΰi7\ =0rTub/?%D]MAhQv`2PĐ)Wc` @_j&ߎkàQ_X2!n&F[^C̊얨0+*kZjZHkV\,Tj2P =o 3Ti*)m,)ƾkQ)jnVHⲪ2;ޮ1ť ԓetn8%G'=˦VCϞ9BkHCICyў~B+egOAѪ(\.O(% -LL5$=2q3τеr* Mh^Ugm {bh^CX۵oZ*n{[Vq7-撣f'K`02JѴ³/,=Ü m eCqe@jvD)b<\<mY*Qm+"j瘃E \ЖeiC!Kt⭽ YpV ws -V^H󾏾z˽wa+2[ty[tL;  -}k>TqT;1pB,V^# u^)1Y0|J70j2j3+>9R=C˹V9Q@Tѐdё`lpV0 Bዥ"}8'/ -dnJ<@`ˢjO&@y)85sNE#;jތ07ԝ:d Pk$rN -|yukע?0ZAޝ\ Nv}ĂHIJoum_>X41mGW^`{1+<(ɥ UFg~ؼF{ڊZADx:8iᩐ*/^&B@._t;VĽCU͖4ZKɄ -h\T΂ƾy>VӐIu`; K{) >+_Fq R@vPZ)`QmO3V?ܑDR3Aq1ƎE2N8n𘻹0;nD DM9u.-3W#Np' Ҩ1&ł+`MZa_yz htQ "Q%5j#YmQJQnQh(Gn!}f6S' f_6[1 -=T<#]9W<YM BW]HRƭe ,VjfÖM[ôstZD9ϕ/UBн8NQ|\y`geM?bfmzqKnJ;`d{"(;Д^pWgNhkX-S"OJ-UFZ%= G8jVd@87ƣ)tpr{U(oʇ*Kݱ1Ơhd;3({ 6vdӟ1/Ҟ9zm4o_%ဳL]3yZhN?E"r-9G WJ-cL`l1TDf "&71|p+SM8>of_/:j1Yf=_f?d'4m*j~)DO)Y^'n9.`؈k{ ̢5YGlAX@-^/G+,,-27S @Ufm&&s7~C<$;[b L>8 -׆ XCe ke̓/_lNH.;[ -w0"bD$&OL"~ن1Tf8(칀Qp;EadNZ 0ҝ|ӭ!"Q4ck5dW^pZUYcEIbpM3qT]U*MJat_V8Ɔ{[{Ʀ`E#s K SE2=aP[d'cV=^ FxjJ z/un=W<ҞIFC2ńwt;{*iYюL, BCPd_@Էr0 oD4T/x 0Jlm 'B]G nfn-.c~`Sy:nE[集xF}ˆiK%вCz5ˡy,-p &j h]>2Dy{2⍠χހUm8?Y3&#b8 ( )AbaSdrRQ ~ zR뺖Ku2/1^4pOݟxE6@z,fa_gۻ KOK)GI* ^s0׿FdLC{gqoOZ6}'X=ȭJr 2+pE*[}I4yD1,S49q5Dм=ICG!NKivJzdCSe­n+AɅQcSCkx*#qYKF$tvm-8сEȐ-`B|_-8ZKPn* xzKv}:4V[.Zq *Mɜ6<T<cڳL(hD#yN]AձMMP܈ٴ;^ oTBJ$j]2]W='$eApv,1qGQsDڻ% -qB_Qn9> U\|,a/D{%f&gG e|ݕB[ȑ٩#7]h3ӣJ :T=i~8 (o4PN_wwq%H?P΂2&HUnPN!K5˨hol=/-mh/ջC2qX LB ?pǘnMۉx p2f ؝a+)P=O%) D=m >.!mφauC 55P ]l_X芠/@"T,ѧtSTQL@4qk;] ,vZZa^?l^@cOK`dg5s £UO4rxOOOE i -b{캅@B":fU0-^̯}fͰ:؈uÿUŅ8eo͋/9^jX]otrN)8dϿN-'lhVBTWDQ݊y!ZΚHDze -09 -یZi+M"#?)LyGo3xK`@Kua^_WOPPV>)q3ͥxd/N f6B'yАg`1^:)$5#RoR"gV&QfƙZO#ubr-}GQc1\#7ܥ TJCD<,ξ/JE}7#Km(&֭@;ڿFOҠ&Q/[0'RoD -doZo_2 ae{HAo ׇCЙ^ιߴ5F{Y~F9Yhs4ke騳Bʞ -ָ -C[әG;jv57C/w K"Ǩ-aꬆŅ#@8-*g) 8ix et[Y%~Dse)nb1rM7KnjW+k QGjLA4G}F\$D)E4*UQ1IB \2OJ)r@T&N%Qs9}XV%Fqq*7#[yЗCC Rԋ$] ƐRbV'= #-`L\H()qP9PP8Є8U -7&X\PZ!R,TnDQT0bEe1Ȉ Ll(.ʸ}VRCk!K/Á %(aT( B! $LYZJ2B G/.фXHq1݂C>ZJ"Q -yl%DT倄W@‰w8`\Z DqJDX.eXJʕvE3(-ӈ ۏ<$!5:E!I4B6)Ah]6bRTJ(AΆŌF!Ѱ*AA@$I4z0ɰ&00`CDRL) " cr}H4u}LjID8 LFij[Pl(a!DVcS`=<4PR,(~ CIupLQɸEj`D I\T)-(MJF`f„ByȌ HݰL 4d.J+;Ҙ RчD 4r !je/i0D*dbUI!M&n)T:*JƥkX0ɐO/*R+t܀R.ӱ1hԢ80 i#d -*T(z %YAq$D \BN4 H^n""!? \F|DRJ LR")*pcGC43XpP%@uY N@HiAp"q!0|z8(] RB#LD6d2`:CDTb D>xXQQ.,0ʼnF.   NH@  ((iL,2bRLNB*rhP( P0F+DPxh"S(sQ PjЇ1ɚE*7!PړHQ"+Yځ i(|@ZÛth*'zax$m8*00b2ZJ4!Lǩs RU Xj`-4>򡼸dTQST8I.(hh F3#AI4Qb0hEs2āRC ֥s!AkH@"2VZբFQH6P ђ:oHeũtnHC I0a;/P6R Ɓ|Z;)4h^D N'$AbP8"Dn@}`(0Q HI1(fT@@(UBK*d*h M(cp!уCȀ%hW. 4OGit$|]@' -\D$PK R"-%y'Rai0 O# it|*}iTrxVF~Zr4:ԊZ6ܰ`!! F -a48(/|]{DN#`mi ,,mi  MEӈVP64R D >4@H KN0PB|!hP:̐D?%"N $ԉt2B)GQ1 -UiUr#"%jHDť+p#Kw@p0D.$HR/‚q:1)J p":AB҂!#G )Oq}Vz#"BP -40)(](2H)8fqrt.XN"Z" N@HaB^L&H.J -RQK!lT i1Еq:(C- -#cqP>+$dssQiII4|p -/ $Y<$j!qzL$A HC STn̼1Ԏfw|Y^֘2erk̪Ή}ێ ifkz:2?"{ڷtee?tzy1ǟy,oyy>.;/3<;<Ɵub7!˃ݒoQ9}kketD]͜ˣz1g˳iX^#M%%f%a2hH[Ѥn6^V-6-1-paɼ" ǙLxY 32@BhZ61-djYq:gCyL  D"Xxs977s"q:)1&@ 逍42d@@PP܄FK$KHJ -I7&( -FƂ'#RSca G։eBZ$ (:̨UltB2T(Q71 Ԉ#B(@pT@IҠK*%LL(4P KiA8I 2H-'z ThdWĪ՘ʁR@ГD8e$E -(Rbih*C0 QK9XZJ2d@#"kvft2!AA@P&ne,4>zQZ (Qp JHBNjQ\ - - tT3%$;@t@\>L(QްD%LlLHhcCxF)q@܀b@5/R89|FLRS$0TH"V -$҈( 0Im`ȸ ^@m1 J 8DLhh!H@Y8H,8llLX&#itR h) M 1(r(h[R:R 2"!CN\ .=R"u-Rt Ĥ0,2"H"FƂTDri!q8 RΣQ:~lV RT1(QTj. PDˌ;A -q0PRLrx@,X,A+)$I*QņIɥu  X*Q"TRB3YAAI.DhR !K I(!XTHz  -#LH:T)<@NÌC>\8V}hLHTTBөY8HI@:$@?'-ǐ0Q2#zCC dLGLG2lVH2"q!&)b Ȯ$GKJ -"#DDBN%kv2PՋ u" T "/p1fN&{XAi))\Ț8`XI5Ӂ - -6PےOGJFI6,0Q(1  -4P2 &DCb4AH GF˯>,-  -&7<|DD N'e܄0I(D -]! U(RHMˆ@G̓(t2QjHr4P`%r)ݭ0(]kwȄʰAG L‡"E -h8LNEC~T(@t,E\`S80иHmJ,(EXR NG'Is,@JBɀ$%C6":&}>N$aQS J -1 Ef!3d\P ,&sQ %P"dAӑj- F{2pj)%(?/J) \F/*x&5*Hgsp@JP)]0PG JX VêIJ.J(DDj!։BբjQ8A 4P"2TC@z`]0"X\P N3:(`h fA"%pLq XB!/24(>HÅ$>!&\Z* ?,!=@ZzHEdLEL.J4D`F+h%5%J%әX) E*'*'+E0>X2 ٔhBH/щIE ;q:p!j }$Tq.43( Ql,e//3-t!DB\\pN2 -FXH 3q8IV5P"a!fVYRQ*hIGndv>"b- =`*(MXX1iIN*HVcmF,tj -X"E`SBB -,C8iTj@΍ D7 -YF@j3b@Yx>  Nb>GD>s}FD0 !7.) h@IP'0J4,)=pi@} p^>R1(IYB4|@N.`,8@/eBq")@`!!(Lβ0ap4H)#5%MS b0u&c/@ɀQq:*7 d#5B rq̣oX7 - -=H62P HHHTxN6W`t@q,f -> -B@;^:Dy:h GFmXNTq#3/%$ NQ(AsF -Өq:ـ "%F P!%>Iu5 % Cd hUrPiQf(dДP`Y<` -$x^P6#h0xHT@c3N 2tT 9fYrpbHhX?'kߕ5“̮{YkyzeMf!~_oeo!s'[Ӭ|6u}oսӖx,޺om~wc[e֔u!);vslZϟ5.SGeȜ?r:0ܼMoMn_{g.7􎽷ƾ2f[Em-_==5C~f 45G6Ovr㱪#:v}^xy1iV;_{/]ȣ̬kf~-Nۣ6W9vZW~7M6=ٸryڲ:n|yzR9ƯZO63fmw?b5nm3/jnKdώ ߑQJ9':㻪g]b-b˿<y/O7:gwmۻ|{36GnsY;]ݕ鲻ǻe=nY;[붏vߏיz_gcrwd ec諙l[Yigcc-r&K^nٺY3?V5k3K}lz-S9_sΏM=/꧶7sTlߍq_&F¤cDB@Jáݱ=8\y,Oqcw'<Ɵ6Oe'"kX~v˃ߙ0љnbcuWnǿMstSvMd|W[Un55vNsQ=LqyKl?֝ɜW1c򹲶؏ 57Eoʜݔ[od(kfwm,}p9ֲf6k13t杌?/&ue۴ݦ^n=VM/jW̆Y^]nyQ}\FE\}l8'*Ƽ阘YԆ}ͷٜKߵlޭ1o_}˿ݾf>>{dct;6_;Lno}q֚m뷯h^ۭaco5dbj*6s/2Lܧ՗9x!w#r:.sfCmgan1L_W~ܾv~솪}z}msanj}n Syߓc:K֗ln/ka#cԶ$,Qws7nx5GoMmn?~xn^3gܛo;lc\뭯.W]"nnߡvtO=lۍn^UVϯϝ6fd?{9;ٕ[S5v̬?_˷[6ˈSb3ln~y5Eel ן:o7x[dyy|{r:,ocf<[۾-sycv;}6r:dbn;cܨ/sv~/m|L[nnco[xyncꯗ3vmqg][}qyyϻ|s}9@Ьl:Z-&SfdjY]&L"橮~r:,\lrկ%kȰ-ά9Q77/O_}T~m}Y3rlULceW\n^Gƞ5G:j&w^Nt`;2?8zfkYkvlmmnl#=lv3at5^en<ޜNDq: dXj<-͊i٬ldbbVNҲZYitQ!r2{g7;,d߼9{K|ϳʍ=xXZg>eؘ]7?6ki?>#Ke읊v՟!Cgnez_gvAwf|ΞgeΞ]v<֜3SwkfϮ%2_͞]MY6k?kB˘լyƗ)3nnn{[_|e|7e먗2[wo܍.3=qY{kNd\/C\oӗK\m|ͼ9^z]5^{dg~)]okU5ޱixެZ5//U^\mUUdzjs*㐫ݾYz0S}9skZj6coe͒[7muN>SWsUfϘ~{{˻}tB<@x,D4#a@ C1 102F F!j۳xhۉ 6Vl!#NMS%]{~1]Äc<ۭ{JgKEJ{ [Y-js%5N'y44oz 4X[kqڤsՕ!T7`zߔ%6u)1onq:]ܼ$@bt)(ġ3hb񼐩%+UAW>od)e2!ÞbjQs2\>P-L˗SFe0񏽭%dRLU^*^4;S^x4cOc?(ֈ>ڻ%kJ$ H"!W 8 p8 E-!b|A&姇 [ -pn%J]?Jo[ i@bT7n_)`!BK[؉:'IVj=SpF.HE \~)s&}yΓ<6fHI#NoR$cFyYJ\WA}O>5qr;Z.)a%εj_t -)$6F!@*jpa$o((q?@^U-r|3~@{ٵQzaD+mZ3A?P\ZzyWZVn*#Op^ G_u8 sSebZ|EK[ 7uG)F[QJ`}2/))>ƌU gȟ2M -X0\^jy+͎8DGU Q!E:0i50f sh5 2Z?zzH_ށVȸ?d^AB{wXNBc(R0>S]ܺ JJC4h&%y7og LX427֝]~h +@X+=$IY]9.y3 {l/n>]qonqQ8ШEbϫޱng!CH`Pvx`)BB+g*=1"?d6۲ qWf>5?h {ub"lQ _mL-:zP`Xᓃ=&Z~9UPEO9E1.,Y"o㳐ݖ?1 m -w+HRY\AV)ښ|Hb("!PRjHz}`-ZD&WsQXAnqf_' -͂+ۨq ]-q@Y!+Z+a; GZ/?[&?=8f9'!3l ѩ3&ISw p#Jx AV5%f) NN{6dxCbM@C.õ24 E?C8]|/Un<[E[.kl?/!T82vk Syggԋj`N3x Ru:hi䠇zx[-*6:ی⭫ꠗ6[6ŸM~qoJ[?bQ:Y[z ⻞l%z\vmX2{gb7>2!W=*WC=x|8uXOKf?sRTS1Br~L / T1dzj: xNck[=jx1̉}p5RAGk&*k[8aD[NJ -=ch ^DƙiزZ-Ihz-g3pWx%]K~=@hoN#GHp=%N[%BQhElnmWѣpuv&'bd<􄒎B-lq(\nPReFLu4e=g)cv<uk]cLͨH&;dP_Y0gM1E'npuP 8{qH/n4fLVOc.ƃNQg%z A;ssk)gsdA! KQb8SMXtٱz9j )\SpuEi%G*3h7ܗY6s -av2yCH)>1Q@.~㈾UP^nH: Cg%>9)6:;?oFMnH2.ʹ~E(}R - .Ha<ش\+AOp!tU)m%I82ӛŚpjL}`"U8Py#)+xRFY>viY{8~])8VPtQC2N]wK >uWqᖾ4ܾh+"nk4_5!/I䎖!- I9 Œ]wzx:ѐ*O -DW,@q:TPvǞ ǿę׺nzI J3T->`@&ֆ;V1*勒K -К) -SbBZO[Qh/up]h”:*X0P>~M7Rr -*lh;kpn6QP"3XgzwQf!嗦%?[`0sW做nj1"kF~0)Fi`Ɏ1-$}498@W;=C:@7YF7)ix(°ZC Dbe;FƣDAO._r~4yFK7JmϓŠRUTDWlUлz.Mg鉓(~qr|9lbiI t3 !JgC=\ڵ -:yRD^ב$9#1,h-J1t襵A>$ R2@N@wN [x:M$xm<4lύHԞ >}#:G w\mL[:rE?ҽ$·Z)%k_l* S7β =grhԕN0 tZ6)va/N0n@Ͳ4c6n'5!07+_2]u,R76oVyE'_odPqCAY ư$qokN!vnݣ^5}!p;ݪ6;ܸɗZSl/:MÓ^98ڪ -C$5Gœ bKF!frA@Bb~]`p8_SaFV&w.mյ'w#NhLGzG?] #OvgaGb;I((&+ Tymg?-SI-p6 /'# z_$`ad,{4Ƿl ZYΒ#{y!jXwj+K]S!x7P-c`4eLG"l]3 -#H~yAB'Mj]|͒nW{%NS1n5eroZQpqE7X "?3\$.fJDFLD>˩BFӧ/Ҕ~ nZd(Czy%XeBrKkdO=P"s8&,+ɒԄ򵺝ve̬vcNqP4"pހ-$27GϚqn/  Нa~Qju>/` fAû0(nz =U+lRq]z!u>FwЋ;ްުmIFyşcp+u:u;exWr%p!Fリ@\y`caumiC\Go%Ԙ)%3@aOj1ajOjnpYo$_fĠ.WII&Ŷ3% cR2\gZ_5I#4/SϛsaALN2L:"hbPE -et@C"؋x4e؀Ƿy@dz(L^MZ9Å%Ma}n/P(FMQ,k~UY#wOH;p)ԚSF@l+9u]85T~7ELx,k>rNW8<zcO\Re 7vd.&;13 #M -8Sg*EƸQ`RA>++ř:T*UF--J­@y{ e=vCO95⾰ (i{AQ4bHtI Fgkqesw*L|4rrf`fU~m $I6P'Q_8r-}Oioxh2 $o J @\x, U-j|͠$S_^F !&8-9QvM3/S| ~U/1TŮqշrDvms)OS6 -CeM"0R7@~<:=4tRmUx06{A4j;$c­"TRq\ 0*!-@_++符3-Y e%lgS^KkBZ||&jqcd'.8E)NYSkuZܬJ8]vnZ£Ȟ!`8"L bFMZjtZ}<;cklK=9Фt:6Z ?k¬,I幉GZӘ ={*UI -YV [[_` uՊ)UgBؖ]DLfI"P8ia%4+[ywŚu@U7Euy,\UO)XiJMʍ75ic5HkEH; M~-^R Bݰ v:hV0tzQn,MhF u=W=Zx1n[QtMb15e\:1k?zQx$uC -,ko6[ר={BFs>ȸ@ @(:\D6+ACyycN+(dIp~=C ס}ՂlMvO _I|.2E59:`Y2Cj\rbk j7^]COW [:;<:MO[yq0ͲdSe? .|{b5-bmN ύߪҜ|pJ/W"~+aJi4h:z2@~C@G5+OQ=opꚤn ԣD -wb'F۸1N tQ}$cZ(zSjɏD'͗~AJhZdGv*|\VWޡ3kNnK*ji} p$ Ӎfؑ} -%ƅk]a/S j -_NDOqMEaD:RTy2~;M%*XT#GN>u{⋌tquNp6IQppfaQH*$%QI7jO=PD&. nF(YV5C [Iwzvqbyke i -erkrM?ʗ4?]f祀G4J<%n7,;>+- ,C*M@Nj"wryYR.VGJTFaЊz<[@~1΂W[Tcm^u˚tĭtBc)`0N -.8 -zu -mn@ߪ=e7sk~CH޻:3ZM`_CvVHsxQX%8n5@f'6d1Ɓ7'YԻmcw~#0j$d oFkD6iȲa|بM8HVZ`2 8^PECC޿ P{[NC7Ii;(.װf~lK/L -0D^Iqi8 -rň f`<4SCoBl],fR*ׁς6bɫqo8 pMܖ  =O$h}U bjymk ϑ%g{F˳v4 i2F&leWit&(6$w:D/ߏH1@(WkT Edʰs -t4W e@]7e ܜ\B B|, &apt9kHd eqtO j]{#x1C7Cbv7jx5H/Sd['pG9X?ŏaPb6 hl掟%DVSLF f긌 /pdӘfhs}<>;@qDs4&7S̷\GO1~b]51Y\u{%GpX,hs[ФѰN{{T"Z*9Ӟ%2b9-R=z8M',/?}ѵ7L#8xm-$syK!.;oZߛl(2:)}Z<J='j!ON!zh6j ;{jd3n9d a2KBđqhأ^gM`N~^g5Qp z!+ /WiϾn~N~dk٬6Ì,q0r^MqW6Im& ZZuO0䪃g˖LCۀ@ؚMK9@-/XvO97lR`CY%! 1*9)B=Uq৅̆Qg2Q9Ny\P+Y# - &hM<҅Zj_1C[txIQatqГҩ}&3S`2>{)ᶘ9@~;#H]W,z`~n9坂&wH *S[0vR\K9t 3J R٥O%G/Eh@7UCnG]J&>bUz\<;9WDxnꫪH$ 9%\t12nIaѽBr$a__p%^; HAq}+W̳8vO/L櫃5'뢸q(teeu兿~F'm$I^VJ srF%blOEXMf c83_$wQq=Y#$|%`m)̙,}lOlBLhmҝ X̧i~PIFJzɵE/blsAS?pP"~z7'Kt\#k \5I:LV2Թ돸N?u#M,o^K'?\+[poiaQ%{_V6JY@+]l=ݣr -c%gŽ⎮SԽ2$;`xLxz_im)Ff2/d8\h6Q@Ԡ( $=VL#O1Q$䩇Ϝ*I*@K0G ul&nK c.JtvWŗ-R?!Q~JgAj1)kM HĚ.x; #d ?̰"3ڐi܌aMb2fy#X\7k@ksT^\hr |XICnR}py|=9lrHɭⲅˠ ErsdԪiҹ1UC=ҲӁalB 8y~^8kR?n7Ff| IZp]Jd=mho4) L`UfVO>Iu3NvČʚÅ2}Y pc䓩b饬"oK b&K~bD6Wl;[.K$*Zޠ;NWy1o(:eU dĺGJYGdc-QbZ8# qΣ):&.O(^N@e&!hƾ-倐Bl!*\eoeX9 Zϱ2Tp(Atu0ݪf0lEƚX9Ȩ҈Hhէ3C\RWY!3ݒm&W̶b.\-'&:]֭;TsVUԞܚs+oJ$_h2< p,).ŤN`0clF7640ҭ:fo>-r'vf(hB0N=cר1(\F$gۘ54YLaD?%Zدﮃp֊Ȕ b/Ã'4.$+?]:ruNBԋkJ ,]4MH}N<2o1s`JY5Q,O=C.6 ƈ奈Q5B+j"2BP"u#Ǧ,IqKuHhgT<؀`e-TX";q aȄ]ApQy=i<͗hB>/ п@r~vd]=VK:TՈTK~fH,'0Ջ lZPtVKSd m81Al0S d%:lN O7I<"< MP`yF5b;Za=Mb݉FyybFq%b/{Zd.(ۇ^waWDQG &Jۗ86߆tvaY,=tWnjR@Mmw*pL!NϖWfC'd]<2Zs=dl68u9IfkOѰ#td[-σԪ+@I -mjt+WNn oUNEuXo4qDT'|"?/̗R4S.SQ$%fvjɏN30mCVcLK=]ERqE@iZ@\@vԞ[nc-9׹^qgUиE_E'M#ctvN h4tKQI5vʔ\s- ƶ:4@hW@rR:ҡRQb*صJM.dpGvox"?QEa sLHN[KSYk~0'&2$A_J%!!qYq>>w. 'hJ qEBxQt]su O4E=~}q0[-@O4q ={ru8v4 -S𥵳hpf ҦL*=݁֘ \ ?,C#w/9W@gG/4P;lԸx>`"WF/+Ite݁Cˆǫ8ţϏ/9Pheѧs|g#2Yrˣv $l?:"qE6Lڀ,vݰ*Ū1t:Aeqk71.ꔰ8rb-v=CAwVԌF/3{Kmԓ,E~ؽ Ɵ4+1^n!pQ,FD"%YLbu] W1shZ07W1y7]Zqw̴ 2qLnpK addU/Kaqy 3tΌ -8IfS,1;.vbd Pb>6?HBLbdgMsp*!i e^+7+%xR"+Ʒ -la%!]YZHؼ%mG#|HS8 /$!)ˋq ܡQ$+!CR񏕉B2>חwc/1%DHtYl1uJ<ޔ,d&F?_a}\tؔcZ<#L]8O~TI<,I* Ui.5( _> q! -H.6 -i.v2SJ '#ܿtV$#mR:kP/O;sK9d$:Ml K:Կ`ka38i.(,H҃Kie2MjoQg YÔȆ CGtDbrv>=!X|N8w`5Xrzrz&7M\^Bl灁nzSlتUM;[*T"O#":\`tD_$qF@[IoiP8Pa sR yWAB"^ЎzШ Y:^L 0.J4 y=WupD%#5kl:@ -Yi 8_@WmϕOp[WH/8pŗckȯ\ -Lo  -LK&۱T'M@i(Jud'nJ3E^bsm@'EFH8 ߢꝕG"ęXˆTmc5+c3[Nl@uڥ^rx쀑iJ[^ -m g|WrY3 TXѽW>\'vQ0oGsEc Op'3'+c`JB2U" KXKKdV;!8 - !GDk1$B݆Ni"kތg$nNtK"$b?rܜY?bo 9Xٌ5@`2*zj1,DT e aX`ڰdtER%J]"v0 +ߩW, a}x V%5,PI}CPV=Y%Ӭ~\l(;s+ʂ --cLu -$l愡z=H]bJ$i|9ٯN+U^AA~zhdy<gu્[ ©/͹ -`E'9e]V{ZLyn'}Hl![$!R1AsQʨ.{B!e)Z\@l -zG5{}? |ݱ1zƺ8X! -PGAPb4rln,@ѬbRٗFz['u5ii=cp`D܅_ybWS/b:c]wZ#U@_r~gH4rچM^9N( -t7m3d|*͊8HcD7un:6 7%*7x nxvʴi-;N!lCcA>+2ws ^n,Z a"+<*5й`G`Q!䀇Q$;šC|PG~‡aBqzxƼ8 -Njo iJfbvRHO -\1XG -f&^'@HMNu8\>LCBG u`=r.g1{#ix#v Ro㷮ZwePp?9Vwš^4[&S_dԽvJG9[i= pl8߄6bVpj!f.اss>|*l$CdBM (y XJOt8B]JLU(e|~/HgmE4Omu¹p.;"0Cha#j|'I{GJc8p`SĠN ϶&cI]?0.#MCJ@@WV.ht$ne$j#d^X*9 ե{ ,⽤d>o {S\Bmh:B$J"4Iʴ)j29 rӆ󫶛k+H׏$'cXRDtyY+2|2yM%(HV?EЖuG@Q _G\fT|xd`-KX-&aJ;OLKg7DI[P ; -ĒO}I;sEσB1ѧ -JMxЉ@wPYgqI!'B#2̶-yGb4vG+AXLX&PÖ@(>cr"\Ih#Z"g*KwDɉdXWGcX~xu,3W+#e;Z]#xs=j_A\Пl%&j::I!p8` pO+eVHɮ0$Wq z\Kު[%ܭ% -TQHMEo0CXf֞" YL%\DB(V 7еbUj,Du9jxŹ0I/D!(!{USqɜwk0%[_B?/(~r-TWڦ tZx~DLz !pvj[ ve[L7MhbefKn(7 E6dv8`+1cZe@g qn&E%!PƖupKRShf]H+x¦nNvۯd`GN~ a>L5C -?!30T)bR[ur2lWęa1մ!7?oȦ6x*eIP) -orU2'Ҙ68ZS~-ȰK_>ݜy7/o8ӄVq]ۊ1.|CqwPh|vgqwS 5T}]QoxS͑a3Sisdc8Qj=\ -"&wk~{7`K&s2*b WT0h<'h6a,vnoz] 4 # dZPwǠ-rؔt`( pTXm 0E:-ޑCkvr{R%c^I9;mAbYl&w8/n䋥NaJe݋­5鿫j*X 66ЩZ+r%L:z a;%F0x,j<T/8jDhF*fs0{jzldH}P4F+rɘ853oiuxI%dAֲQ$O0,Aڃ'߆r+]l_*P.c$4); XCUbA'vL3۰<'Q?["4J;j?,[|D0;جo3(G’ J'B$;ܜDEuɽ"t6)Z84ܡYaUݍL")N,,b yh;ﳘAQ$=u;5#hdkUI -+w~;X@Y -אEĢt9dCYIl6~+u"(S,H1܋{hn &VtiP%EjlhtHx;+'0;" *+\dٷw}30tGV7e/cOtR5Y4 -* WbOn/|GKZ,A -PVKSWS6a=;s{ =!g -,P1bx3)o$BY s){tĈum\ -|MOdy@H( GM3Q;̥d"M_`ֺa/=PҨ F-_==聅ӭA4݋i)8U0𣭮PzԄho}*s¾c]|äw]b!&.) HC(S=w MQR -)e/*M-K1o1]0%bcA#,p F\2uWގo(/ֶP;-ӣېG"Xp̜a8Ygbn=Vv"{(i -g/et6$<` yBӚ9@Ȼw`k/ tQ/J -ͬ9w6}}^> -@ Vjvn^c_ 6©|N -Ru0+1+ 69aT⃃6  rho.h%}40$YiG~@R2[C -sgGeh5[ U L%k -l[)7Gҍ߶pakK jJ!"{|IġC=I3lrKoA1#G?Hu"_0b fɔ\ZF> >W%0ԕPbS>I .` diV- /IBL#ԛ2f% z֝pH3wP{|rsSKR0|l`yc&tp )c^S$#.֫\T@E*Eظ4֘;^ hTp[]!߇"f4*cQf*Ӥ_M -`)V)C~:KWS−kSl'7>_yvoq6C2BDDܗQ}El"X25}E^ " y*S"6b0BI*ѳ4P15))Ni6D 0)|E+;Ycn`Ϸ9;Д&( %]/\bB T_RvBBLvA&~u [tm/Zy?<1KA=5O^z.'\Yxl)$tHoLn%R'~nFdٺUW/ndM89 fX ApQ"9Jĉt߭vuDhSO2މ[wHYE+BfP %֝N%uQS9w -w0ARo1a8TySIDGlP"U3$4J&b.x3͞\]3s"{SDKQp&~ --gF}} ^"OV}BVQ[H)[hM -oʖ8 - -endstream endobj 53 0 obj [/Indexed/DeviceRGB 255 54 0 R] endobj 54 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX$6Ra!<<'!!!*'!!rrmPX()~> -endstream endobj 36 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 88.1942 311.1407 cm -0 0 m -0.822 2.048 0.534 3.617 -4.147 5.638 c --7.955 7.282 -10.12 6.829 -11.123 4.697 c --11.947 4.67 -12.723 4.185 -13.071 3.378 c --13.369 2.688 -13.284 1.929 -12.911 1.337 c --13.161 0.758 -13.448 0.091 -13.766 -0.647 c --15.734 -0.272 -18.336 -0.215 -19.211 -2.243 c --20.165 -4.452 -35.497 -43.753 -33.636 -44.557 c --18.097 -6.923 -17.142 -6.353 v --16.889 -6.202 -16.676 -6.493 -16.497 -6.994 c --20.789 -16.975 -27.471 -32.553 -34.566 -49.226 c --35.325 -49.31 -36.021 -49.778 -36.345 -50.529 c --36.673 -51.288 -36.53 -52.125 -36.059 -52.736 c --50.025 -85.596 -65.037 -121.442 -66.297 -126.622 c --68.018 -133.704 -67.104 -136.257 -66.452 -137.138 c --67.14 -138.732 l --67.273 -139.041 -67.131 -139.4 -66.822 -139.534 c --66.512 -139.667 -66.153 -139.525 -66.02 -139.215 c --65.334 -137.626 l --64.242 -137.494 -61.752 -136.396 -57.785 -130.297 c --54.882 -125.833 -39.123 -90.406 -24.799 -57.739 c --23.92 -57.772 -23.07 -57.276 -22.701 -56.42 c --22.334 -55.571 -22.548 -54.622 -23.162 -54.004 c --13.384 -31.679 -4.547 -11.277 -1.324 -3.826 c --0.52 -3.781 0.232 -3.303 0.573 -2.512 c -0.96 -1.616 0.695 -0.612 0 0 c -f -Q - -endstream endobj 37 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 92.6361 255.5165 cm -0 0 m --1.356 -3.208 l --2.248 -5.319 -2.177 -7.724 -1.155 -9.773 c -6.948 -26.024 43.179 -100.448 53.998 -153.086 c -55.016 -158.036 60.366 -160.622 64.754 -158.312 c -81.536 -149.477 120.875 -131.728 173.519 -126.986 c -174.84 -126.867 176.106 -126.403 177.19 -125.619 c -186.947 -118.564 238.763 -82.269 282.19 -74.793 c -286.705 -74.016 289.517 -69.348 288.134 -64.871 c -244.83 75.361 l -243.574 79.43 239.332 81.676 235.371 80.369 c -4.592 4.27 l -2.534 3.591 0.86 2.035 0 0 c -f -Q - -endstream endobj 38 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream -BT -/CS0 cs 0.733 0.737 0.749 scn -/GS0 gs -/T1_0 1 Tf --0.039 Tc 0.039 Tw 0 Ts 100 Tz 0 Tr 17.7013 10.9336 -10.9336 17.7013 269.027 310.3146 Tm -[(LO)-39 (G)]TJ -0.071 0.017 Td -[(LO)-39 (G)]TJ -ET - -endstream endobj 39 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream -BT -/CS0 cs 0.733 0.737 0.749 scn -/GS0 gs -/T1_0 1 Tf -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2725 11.5992 -11.5992 17.2725 279.1402 268.5983 Tm -(BOOK)Tj -0.072 0.014 Td -(BOOK)Tj -ET - -endstream endobj 40 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 341.0906 93.6723 cm -0 0 m --1.308 0.831 l --1.276 1.844 -1.898 4.255 -6.735 8.664 c --7.83 9.661 -11.382 12.17 -16.545 15.662 c --17.064 16.54 -17.802 17.35 -18.739 17.995 c --47.102 36.916 l --48.414 37.818 -49.779 38.271 -51.028 38.305 c --56.038 41.547 -61.148 44.843 -66.182 48.081 c --66.146 48.794 -66.464 49.5 -67.088 49.896 c --67.704 50.287 -68.45 50.267 -69.047 49.923 c --82.66 58.673 -95.419 66.819 -103.6 72.033 c --103.723 72.506 -103.714 72.839 -103.452 72.861 c --102.466 72.943 -72.086 52.94 y --71.131 54.542 -102.202 75.912 -104.016 77.064 c --105.68 78.121 -107.555 76.684 -108.805 75.347 c --109.41 75.733 -109.957 76.081 -110.432 76.383 c --110.459 77.028 -110.78 77.645 -111.347 78.005 c --112.007 78.425 -112.815 78.376 -113.431 77.958 c --114.679 78.697 -115.928 78.537 -117.223 77.293 c --120.384 79.301 l --121.407 79.95 -122.754 79.607 -123.393 78.535 c --124.148 77.27 l --124.787 76.198 -124.476 74.802 -123.454 74.153 c --120.35 72.182 l --121.018 70.188 -120.39 69.259 -119.2 68.459 c --119.4 67.626 -119.086 66.728 -118.35 66.261 c --117.701 65.849 -116.91 65.891 -116.299 66.288 c --110.177 62.406 -93.405 51.783 -74.974 40.217 c --75.111 39.423 -74.787 38.593 -74.091 38.151 c --73.388 37.705 -72.516 37.787 -71.89 38.282 c --66.792 35.086 -61.609 31.845 -56.522 28.675 c --55.929 27.456 -54.92 26.338 -53.581 25.557 c --53.58 25.557 -53.579 25.555 -53.578 25.555 c --53.574 25.552 -53.57 25.55 -53.565 25.547 c --53.419 25.462 -53.173 25.319 v --24.325 8.576 l --23.8 8.272 -23.26 8.064 -22.719 7.902 c --16.764 4.341 -12.555 1.935 -11.104 1.337 c --5.111 -1.133 -2.745 -0.619 -1.883 -0.133 c --0.575 -0.964 l --0.321 -1.125 0.014 -1.04 0.172 -0.774 c -0.331 -0.508 0.254 -0.161 0 0 c -f -Q - -endstream endobj 41 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 502.8662 159.6236 cm -0 0 m -0 -36.854 -29.876 -66.73 -66.73 -66.73 c --103.583 -66.73 -133.459 -36.854 -133.459 0 c --133.459 36.854 -103.583 66.73 -66.73 66.73 c --29.876 66.73 0 36.854 0 0 c -f -Q - -endstream endobj 42 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.376 0.231 0.086 scn -/GS0 gs -q 1 0 0 1 474.1201 172.5836 cm -0 0 m -0 -16.604 -13.46 -30.064 -30.064 -30.064 c --46.667 -30.064 -60.127 -16.604 -60.127 0 c --60.127 16.604 -46.667 30.063 -30.064 30.063 c --13.46 30.063 0 16.604 0 0 c -f -Q - -endstream endobj 43 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 148.6851 270.9907 cm -0 0 m --19.37 -8.661 l --22.627 -10.117 -26.447 -8.657 -27.904 -5.4 c --37.41 15.861 l --38.866 19.118 -37.407 22.939 -34.15 24.395 c --14.78 33.056 l --11.523 34.512 -7.702 33.052 -6.246 29.795 c -3.26 8.534 l -4.717 5.277 3.257 1.456 0 0 c -f -Q - -endstream endobj 44 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 184.9527 297.5518 cm -0 0 m -0 -4.821 -3.908 -8.729 -8.729 -8.729 c --13.55 -8.729 -17.458 -4.821 -17.458 0 c --17.458 4.821 -13.55 8.729 -8.729 8.729 c --3.908 8.729 0 4.821 0 0 c -f -Q - -endstream endobj 45 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 171.118 173.1477 cm -0 0 m --0.821 -4.75 -5.338 -7.936 -10.089 -7.114 c --14.839 -6.293 -18.024 -1.776 -17.203 2.974 c --16.381 7.725 -11.865 10.91 -7.114 10.089 c --2.364 9.267 0.821 4.75 0 0 c -f -Q - -endstream endobj 46 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 178.0351 167.716 cm -0 0 m --0.821 -4.75 -5.338 -7.936 -10.089 -7.114 c --14.839 -6.293 -18.024 -1.776 -17.203 2.974 c --16.381 7.725 -11.865 10.91 -7.114 10.089 c --2.364 9.267 0.821 4.75 0 0 c -f -Q - -endstream endobj 47 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 196.3973 308.2205 cm -0 0 m -0 -6.749 -5.471 -12.22 -12.221 -12.22 c --18.97 -12.22 -24.441 -6.749 -24.441 0 c --24.441 6.749 -18.97 12.221 -12.221 12.221 c --5.471 12.221 0 6.749 0 0 c -f -Q - -endstream endobj 48 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 335.064 322.9471 cm -0 0 m -4.9 -18.389 l -5.604 -21.033 3.836 -23.005 0.95 -22.798 c --35.025 -20.23 l --79.394 -17.068 l --42.532 7.715 l --6.498 5.151 l --4.545 5.012 -2.595 3.921 -1.313 2.408 c --0.692 1.682 -0.228 0.854 0 0 c -f -Q -q 1 0 0 1 339.0847 288.6416 cm -0 0 m --29.941 2.135 l --66.812 -22.661 l -7.45 -27.957 l -10.335 -28.163 12.104 -26.187 11.399 -23.543 c -6.5 -5.159 l -5.796 -2.515 2.886 -0.206 0 0 c -f -Q -q 1 0 0 1 339.4178 287.3915 cm -0 0 m --86.043 -57.804 l --64.246 -60.123 l --67.863 -78.605 l -7.45 -27.957 l -9.85 -26.342 11.225 -22.891 10.521 -20.247 c -5.622 -1.863 l -4.918 0.78 2.401 1.615 0 0 c -f -Q - -endstream endobj 49 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 251.1365 285.4116 cm -0 0 m -86.043 57.804 l -64.246 60.123 l -67.864 78.605 l --7.449 27.957 l --9.85 26.342 -11.225 22.891 -10.521 20.247 c --5.622 1.863 l --4.918 -0.78 -2.401 -1.615 0 0 c -f -Q - -endstream endobj 50 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0.957 0.82 0.376 scn -/GS0 gs -q 1 0 0 1 261.609 246.1104 cm -0 0 m -75.313 50.648 l -77.714 52.262 79.089 55.714 78.384 58.357 c -73.486 76.742 l -72.781 79.385 70.264 80.219 67.863 78.605 c --7.45 27.957 l --9.85 26.342 -11.226 22.891 -10.521 20.248 c --5.622 1.863 l --4.918 -0.781 -2.401 -1.615 0 0 c -f -Q - -endstream endobj 69 0 obj <> endobj 32 0 obj <> endobj 31 0 obj [/ICCBased 70 0 R] endobj 70 0 obj <>stream -Hb``2ptqre``+) -rwRR`?> v^~^*vD_)p%?@lZhdg"I`($>dCW@$ ]>faˀ% { *23J ---SR+KRs< -KRSj!ABPi5Zho@p2A!@riQdL0cR?1^: Sbj  O -endstream endobj 68 0 obj <> endobj 67 0 obj <> endobj 66 0 obj <> endobj 65 0 obj <> endobj 64 0 obj <> endobj 63 0 obj <> endobj 62 0 obj <> endobj 61 0 obj <> endobj 60 0 obj <> endobj 59 0 obj <> endobj 58 0 obj <> endobj 25 0 obj <> endobj 71 0 obj <> endobj 72 0 obj <>stream -H|P[HaQwVtPvj##oR -j%jjCꌺ̪EL̍X6zH-&HXRH CO}MQ4Mffdί*>(Zy:jsuu5[&Pʏg -d)-#cb(/p_xʋE29dpNFbQ%]cPՊ|2YbjEF^&HȬK-ʼ$.yY:DoZUbC*YdWDm|"U6dt1G/PJl"(*gT6iLjK}>ܸȀ $n`! %k-k)_)D ~z3e1p<ꙃ-4 ^4 봿%PGŹZ<;.bCi6ݍ> endobj 56 0 obj <> endobj 55 0 obj <> endobj 26 0 obj <> endobj 27 0 obj <> endobj 75 0 obj [/View/Design] endobj 76 0 obj <>>> endobj 73 0 obj [/View/Design] endobj 74 0 obj <>>> endobj 33 0 obj <> endobj 34 0 obj <> endobj 35 0 obj <> endobj 52 0 obj [/ICCBased 70 0 R] endobj 28 0 obj [27 0 R 26 0 R] endobj 77 0 obj <> endobj xref -0 78 -0000000004 65535 f -0000000016 00000 n -0000000161 00000 n -0000056355 00000 n -0000000000 00000 f -0000056406 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000064392 00000 n -0000000000 00000 f -0000064465 00000 n -0000064683 00000 n -0000066239 00000 n -0000131828 00000 n -0000197417 00000 n -0000263006 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000328711 00000 n -0000330210 00000 n -0000330284 00000 n -0000330976 00000 n -0000057074 00000 n -0000063055 00000 n -0000327619 00000 n -0000327506 00000 n -0000330586 00000 n -0000330701 00000 n -0000330816 00000 n -0000317441 00000 n -0000318833 00000 n -0000319588 00000 n -0000320031 00000 n -0000320452 00000 n -0000322397 00000 n -0000322849 00000 n -0000323302 00000 n -0000323819 00000 n -0000324259 00000 n -0000324713 00000 n -0000325167 00000 n -0000325610 00000 n -0000326477 00000 n -0000326924 00000 n -0000063117 00000 n -0000330941 00000 n -0000316866 00000 n -0000316914 00000 n -0000330147 00000 n -0000330084 00000 n -0000330021 00000 n -0000328648 00000 n -0000328585 00000 n -0000328522 00000 n -0000328459 00000 n -0000328396 00000 n -0000328333 00000 n -0000328270 00000 n -0000328207 00000 n -0000328144 00000 n -0000328081 00000 n -0000328018 00000 n -0000327443 00000 n -0000327654 00000 n -0000328901 00000 n -0000329174 00000 n -0000330470 00000 n -0000330501 00000 n -0000330354 00000 n -0000330385 00000 n -0000331008 00000 n -trailer -<<818687FF790D2F49BF4781A5737C318B>]>> -startxref -331194 -%%EOF diff --git a/Assets/Images/log-book.svg b/Assets/Images/log-book.svg deleted file mode 100644 index 2803c6f..0000000 --- a/Assets/Images/log-book.svg +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LOG - LOG - - LOG - - - - BOOK - BOOK - - BOOK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Assets/Images/man-doing-squats.ai b/Assets/Images/man-doing-squats.ai deleted file mode 100644 index 1689ee5..0000000 --- a/Assets/Images/man-doing-squats.ai +++ /dev/null @@ -1,1593 +0,0 @@ -%PDF-1.6 % -1 0 obj <>/OCGs[22 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - application/pdf - - - man-doing-squats - - - Adobe Illustrator 28.4 (Windows) - 2024-09-04T15:51:56+02:00 - 2024-09-04T15:51:57+02:00 - 2024-09-04T15:51:57+02:00 - - - - 256 - 168 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAqAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXzl+YP53eb4fOF5a6FdrZ6dp0z2yR+lG/qtGeEjuXVjuwNKU2998VY3q/52fmNqdu bdtT+qRsKN9URYXP/PQDmPoYYEsKe8u3ufrTzyNc8ufrlmMnIb8uRNa4q9+/J/8AOa1ubE6N5s1B Iby3oLPULluImj6cZZG25r/MT8Q9xuUPZ1ZWUMpBUioI3BBxVvFXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXzD+aP5R+ZdL1691HTLOXUNIu5XuI3t1Mjxe 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 u/Vj9J3zGnllLmUorK1f/9k= - - - - proof:pdf - uuid:65E6390686CF11DBA6E2D887CEACB407 - xmp.did:dac9a0f8-1b44-2e40-b96c-93e6fb5bc89d - uuid:2690a088-d09f-447e-93fc-d2272c4c1c53 - - uuid:e168161e-2345-47e2-bf37-96203bab45b5 - xmp.did:bef8f9b5-b4b4-214c-aa85-9d68c03e853c - uuid:65E6390686CF11DBA6E2D887CEACB407 - proof:pdf - - - - - saved - xmp.iid:dac9a0f8-1b44-2e40-b96c-93e6fb5bc89d - 2024-09-04T15:51:53+02:00 - Adobe Illustrator 28.4 (Windows) - / - - - - Web - Document - AIRobin - 1 - False - False - - 401.000000 - 267.000000 - Pixels - - - - Cyan - Magenta - Yellow - Black - - - - - - Gruppo campioni predefinito - 0 - - - - Bianco - RGB - PROCESS - 255 - 255 - 255 - - - Nero - RGB - PROCESS - 0 - 0 - 0 - - - Rosso RGB - RGB - PROCESS - 255 - 0 - 0 - - - Giallo RGB - RGB - PROCESS - 255 - 255 - 0 - - - Verde RGB - RGB - PROCESS - 0 - 255 - 0 - - - Cyan RGB - RGB - PROCESS - 0 - 255 - 255 - - - Blu RGB - RGB - PROCESS - 0 - 0 - 255 - - - Magenta RGB - RGB - PROCESS - 255 - 0 - 255 - - - R=193 G=39 B=45 - RGB - PROCESS - 193 - 39 - 45 - - - R=237 G=28 B=36 - RGB - PROCESS - 237 - 28 - 36 - - - R=241 G=90 B=36 - RGB - PROCESS - 241 - 90 - 36 - - - R=247 G=147 B=30 - RGB - PROCESS - 247 - 147 - 30 - - - R=251 G=176 B=59 - RGB - PROCESS - 251 - 176 - 59 - - - R=252 G=238 B=33 - RGB - PROCESS - 252 - 238 - 33 - - - R=217 G=224 B=33 - RGB - PROCESS - 217 - 224 - 33 - - - R=140 G=198 B=63 - RGB - PROCESS - 140 - 198 - 63 - - - R=57 G=181 B=74 - RGB - PROCESS - 57 - 181 - 74 - - - R=0 G=146 B=69 - RGB - PROCESS - 0 - 146 - 69 - - - R=0 G=104 B=55 - RGB - PROCESS - 0 - 104 - 55 - - - R=34 G=181 B=115 - RGB - PROCESS - 34 - 181 - 115 - - - R=0 G=169 B=157 - RGB - PROCESS - 0 - 169 - 157 - - - R=41 G=171 B=226 - RGB - PROCESS - 41 - 171 - 226 - - - R=0 G=113 B=188 - RGB - PROCESS - 0 - 113 - 188 - - - R=46 G=49 B=146 - RGB - PROCESS - 46 - 49 - 146 - - - R=27 G=20 B=100 - RGB - PROCESS - 27 - 20 - 100 - - - R=102 G=45 B=145 - RGB - PROCESS - 102 - 45 - 145 - - - R=147 G=39 B=143 - RGB - PROCESS - 147 - 39 - 143 - - - R=158 G=0 B=93 - RGB - PROCESS - 158 - 0 - 93 - - - R=212 G=20 B=90 - RGB - PROCESS - 212 - 20 - 90 - - - R=237 G=30 B=121 - RGB - PROCESS - 237 - 30 - 121 - - - R=199 G=178 B=153 - RGB - PROCESS - 199 - 178 - 153 - - - R=153 G=134 B=117 - RGB - PROCESS - 153 - 134 - 117 - - - R=115 G=99 B=87 - RGB - PROCESS - 115 - 99 - 87 - - - R=83 G=71 B=65 - RGB - PROCESS - 83 - 71 - 65 - - - R=198 G=156 B=109 - RGB - PROCESS - 198 - 156 - 109 - - - R=166 G=124 B=82 - RGB - PROCESS - 166 - 124 - 82 - - - R=140 G=98 B=57 - RGB - PROCESS - 140 - 98 - 57 - - - R=117 G=76 B=36 - RGB - PROCESS - 117 - 76 - 36 - - - R=96 G=56 B=19 - RGB - PROCESS - 96 - 56 - 19 - - - R=66 G=33 B=11 - RGB - PROCESS - 66 - 33 - 11 - - - - - - Grigi - 1 - - - - R=0 G=0 B=0 - RGB - PROCESS - 0 - 0 - 0 - - - R=26 G=26 B=26 - RGB - PROCESS - 26 - 26 - 26 - - - R=51 G=51 B=51 - RGB - PROCESS - 51 - 51 - 51 - - - R=77 G=77 B=77 - RGB - PROCESS - 77 - 77 - 77 - - - R=102 G=102 B=102 - RGB - PROCESS - 102 - 102 - 102 - - - R=128 G=128 B=128 - RGB - PROCESS - 128 - 128 - 128 - - - R=153 G=153 B=153 - RGB - PROCESS - 153 - 153 - 153 - - - R=179 G=179 B=179 - RGB - PROCESS - 179 - 179 - 179 - - - R=204 G=204 B=204 - RGB - PROCESS - 204 - 204 - 204 - - - R=230 G=230 B=230 - RGB - PROCESS - 230 - 230 - 230 - - - R=242 G=242 B=242 - RGB - PROCESS - 242 - 242 - 242 - - - - - - Gruppo colori Web - 1 - - - - R=63 G=169 B=245 - RGB - PROCESS - 63 - 169 - 245 - - - R=122 G=201 B=67 - RGB - PROCESS - 122 - 201 - 67 - - - R=255 G=147 B=30 - RGB - PROCESS - 255 - 147 - 30 - - - R=255 G=29 B=37 - RGB - PROCESS - 255 - 29 - 37 - - - R=255 G=123 B=172 - RGB - PROCESS - 255 - 123 - 172 - - - R=189 G=204 B=212 - RGB - PROCESS - 189 - 204 - 212 - - - - - - - Adobe PDF library 17.00 - 21.0.0 - - - - - - - - - - - - - - - - - - - - - - - - - -endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Properties<>>>/Thumb 27 0 R/TrimBox[0.0 0.0 401.0 267.0]/Type/Page/PieceInfo<>>> endobj 24 0 obj <>stream -H\K w*K{( #ɨt ú0SEI|R_^~+z׭߯|r}~}u}?_?~UW5>b])c/Zgu'*8OO:|uSD}>׫Te xje[;2Y}_5Sξù3.ybRU6g.װ)xRLjrur¶p19v@|G1r?ak[f*(q;ƶo -iqL.̖uoLPY*azU/soQnzwrmctyV.".Q@UmZ}GR#نۛ7K1o -`v̷`N1*$߆%օS -U#dahu[;";ҀuK+)}h&:tls4F$%eQjv=/jl~eڀ oMOnCXMxd8kk͏\4s _XR 2u/6"&V T j-߄N ߠk @$Y,7l7ЛƗp~I^cjJh;Ƃ1I ?R̅P8>f=.5UPSǝp+TvcZ6rTjJ^?iFuK:*.N5rh1ğ,Pv -0><Mdb;U" krt4B~/M!mO /YE~ c*`YBw [/(l].(#*IH<{) -"Ukrm6ni -کXs=7[Г5iXFh5 q""IHJ  gӽ-yp1jewEsߤWR㕷y>7x4*w.QY?d14WRYi%4 -kgٟ t̅8ޤatu-h )m!LةTz}xRf6Fwo}'xA8-9oV^Ɗ/4g#鈳wf^Tn'8[)AxIg -,8EGG$=L]h&A'2ǎpm(; \h@fwOb#X2q#\@D4Lo$r7L<ԏhW@VJ/J TWS]"]DOCJ]~ApZ髪a%"LՏ^Xn_$ӕNI" 7"^ g][(ã OÓa:X~3r2BC-:a:ʲx*~߹xybK3mFO*S]^؈#ث "3XėJ AٍYPE n{ =`ҪM*.8BPXv {:_7\ס -n˃SLx*)ziKت.FX͑V=Bv”j~ gͣ -TCbS4(.D<)t@N3/nF8e|bY&M#fV&9 OhH^jeҰal fؙ:s|~@,5N6MuET3jP5߄|zPwKYf?E5 .p'4!sU_簕@h6Wl|{tRYE.v*d9I+zlZR 8F3xN@ܫsaߨxd#倚J$m1@[-xP:(*-!9C>t[gS]:- 9E{ġ`8MP5YW@"c)nQjG bxHG2l UJH6Nm1z}V5[8f筋(mj1LjQ5]L@]lov>8xlӤ -*w;jDDHqr(|ܵg4kZ/egO zI[lY$ jMT݁O?$8uǺQђ?@r8tTa'Q/L`/y>Oy;L_IX%n`襔̚`tm}6+Wym.9m)Q|.p'ɏ@ٌE8V+\Ly+ 3ppkq -HP[ 5c]窾sM?q̻Z'Z֨xUP*A sH!:a!, .Z9p!}&<$1gt>Tn =%=90m>WF2pJ7LN[%Q{I54.zNJdz`s=;D -U㹵PtvU<8`.xk3RM Ix - bFia_1+8Љ=|~0|w +ts8yQ;;$VU@ÀrfmҖ mU!zY9W!ئF] 8pMXs;Pۗ—|gZt%6=7rviҽv]^BҶXHbщB!eB5FлUN+M?t”OY8R Ikwrox Hπ: eMQ ͅ\6ް2ߘYxʠv0 =eKA}@+6ǹ,ǶPrpzE'-yHo` r!jԵ!k3gmll(7f 0x"]ix+Tܵץh!}Ge :} \x.XD0F6Dl`VюЫ*KH>+^M|B$1ݖ}}k|Mܤm$_= H7-Ϧ**qaЯ"PB{"4bmԂ rrcH:+&b)zy7Ma^-yNnRh WkEb (r\)z~!,VTl5Qi{z==by33ç\S m!aTyfZUđ[vC* >DS:Wb&`wOmwB#jGG`uC>n'$$a2;'6=*G@"|H%[N~u17 *4 $VҽPژ́d0CBIU5 -fFE18@X~X/* -*48L_@ԞvSn*Qy&B@T"dTC;:8x;( [|`Gʪ6!V$Z]쇖M$.㑷F WmWV:eǮ0 Ufxiғ/ujU^V'Nbh.h;0RuD+LBb! - P䈋j8Fm`,"_EUn׾SL{Rp޲3]Sj\,rv2a*ԣWuQ^s̄ȡj(6?MXX:n.Ƣ8 N︎9Aí#ᎃm`]uCzQC%oAÀa ZhT4J;w)w0hv}f]8Uic.tJ6mW'ƫYQjL$J41諾QL:nRwq-u/p+{+}1kn[—&׊M:duuO ܪ +Q 7،qR+bSY*',|hTVqO q/U)Ahw$6QJoCcl5F$hٓ5\#vYtIv^pfЯ6&!G 2ُn\}Q݊5 T9庄;q 8yWܶR|4޺x ]I|@;H&1Y11!b1tgܱb$gOTz랼 F|f?bPWkaD[Qftŷ1]:¨ct_kϫ]h`jv-1#a5_p b3@6bEau"Jת]hupy$H*0]ـ`ޭ.͔3NoskDt/o86X=Pv0`?}_TK<'5}o5qJ%[/ -sţ~k18+ ڬ:U߽_](FJǭ/ކ9 -dOjը >o-ts{mxՂ{qCFP<%sb0ZlKڶ|K=M28mG8Cςy5N$Yp!I)wDmN*$W[PI{aE#Y>Z;.눿&A]#2ʍa酹-a>ר"4 %WJ:D0c -YQ[ʷdǡ/;~/zs,d>ԮmbpvO.k|hYN^V%,}kۡ֝Kf^PrJj6szjK4;Iz.7HٜRl걝~jPޘ)uQw[asR2$ +?1SD4 qHŗa6я Wu=Dsҝh_"hm]5J}fSAa;2I\x'$y sN%̖uvvNS 3|VAT^0~NNXz?3b5'mj^'bl踒$ Nc"0({Pf`+^N h:sSbp[wVIm~u>](X狳u;ΪIǏch 5{TGHMmmkG+t\QL0=k 1j l2]7vPKWٔm^Ρ7#LM^HaiV1M<'tz!9liZp&ƭ@O^PH#nQseQHְ\Vݤ\>+EȢ;파$F18Yl;k2jÌg{PgnW<:: ^ǬF+np2;pSB̈CznW~=>0C??Cydu#ApSF tv@VfVQ Y?ap7ȘëYW|ޟW E|yI۵l)={} -< 3Yyӭ|„ȕpBRJyjn41R -f@g87YK - [E09W3h˜sV?^YIr" Ez1jsbfbNVЄ|fS+V!rXǖ D\6h%DHmkf2&#)'@bGԍt2 -zٖFщ|W6>(@N%VUʹeΫL8XX-myAž0l<4Şp!lwTEF-cuKDY,Kᇀ8;w=ǵvbz.  5,-t#קeYnǘE9(?@md8IWΙsUIoX lzH:'# Yp\h$nhb][/8CW3ALy#mR {l;Qy1Z.rѱf.bt& #YqQ=zGͥ9 @n2HVpkW.B~?b7)Njn ]U7Wq[Q1yI@11u@Mğ =bҝ4<# y YsFNNe=ɖn rz CAo/Q0,W`#s>>>S/{HD.dh'v_(+cTIdm z(A4|wL:iOYwQXՊte̬cx?gޅ6sWjJѯȑi'C)x:n!Ke+i^%i9%6m3)ѮE5ߓI9܌IR9u44O,r<2Z ec:y+jkjhFE> Ĝ}U܂RMy4+:tdS>ޒ|iK铙.Ψwk9Ir=t-,LG/6N|{5vs4{s_@)ȄX]{\:̌ -GyUK)nfШyw)wJ'+J8v%oUsMΒ/`dRȔƘJo9&2᠅U)I%nmc%(iI$} Ҋ-gO\674i$aҕ÷Av4itOꃁZhEl[[ +[jY~h< T,f\2v&MuN.]ww^fn;D؊52C\ؤ.ZFJ3 CA5* LF"VirWk׀|"Crm0 lyi>pm&udYO'Q<.#Cz܁us'Kh@6I -g:vmnA/ZIDjriG.4q'xj\dب(/PjPSuEkEQ 05g[o$Vwp8Vmi:gUU-֨lsU޺un,uFЋm ~&Ti -v|.Z[fRu{ DZ_HGsLgj3SsMG }{G[UY[eCwnŹjAMˀ昧]º5hIx3rc{Z!aӱJWNg0Hbĥ&ARd͓Ȋ[4Ofkʿ4:ޛHweɆJٖ>X9a/<WO,b6ۏ/5QuE ='__Tcdtxb,X'u]1q;rT-#s>A 7RU -&uN#'Gpd䣭(e$%^3vXJ&ػv enU9 5EScMq6ZP}'tĤ͉ji ,^ڲ;h= ̣t[t6CHwi C=Ҁoc:.9%8lFS[^E0ANS- E.(;Qe|G/ZtmkI78KʢgFV3=~}8 -endstream endobj 27 0 obj <>stream -8;WR11"sJe$p@EGVbDCE-_)r;L2O[q)%$j3Mr'&>3cU]T+k2D#?VS7^eqV5gK;9ru -ftLU;rQb+rpb.HcB?5OX!r7Nq\epifIR(+pHV3S\6Ga.U#DiPdEr(/&dh)C*n1U&/ -Kq.1>Pg7Y[)f5Ad1W78LjJO]Z-\tA1F1780&b6IRYpO&g&rVosC=mVm.ltCUa[tB: -4tTh,"f*Dror92K+tB6b\WkY?4RL96ZXR/(Zq\?7kLmI7loaU%KqGlu -830Ee=bV%D*-Roq?W;:71/V!H?1+L -endstream endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <>stream -%!PS-Adobe-3.0 -%%Creator: Adobe Illustrator(R) 24.0 -%%AI8_CreatorVersion: 28.4.0 -%%For: (Giuseppe Scorrano) () -%%Title: (Senza titolo-1) -%%CreationDate: 9/4/2024 3:51 PM -%%Canvassize: 16383 -%%BoundingBox: 61 -383 454 -130 -%%HiResBoundingBox: 61.1569380200181 -382.838170823248 453.287596853821 -130.085572405153 -%%DocumentProcessColors: Cyan Magenta Yellow Black -%AI5_FileFormat 14.0 -%AI12_BuildNumber: 82 -%AI3_ColorUsage: Color -%AI7_ImageSettings: 0 -%%RGBProcessColor: 0 0 0 ([Registro]) -%AI3_Cropmarks: 55 -390 456 -123 -%AI3_TemplateBox: 256.5 -256.5 256.5 -256.5 -%AI3_TileBox: -157.044885635376 -545.737787246704 668.075073242188 32.6622009277344 -%AI3_DocumentPreview: None -%AI5_ArtSize: 14400 14400 -%AI5_RulerUnits: 6 -%AI24_LargeCanvasScale: 1 -%AI9_ColorModel: 1 -%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 -%AI5_TargetResolution: 800 -%AI5_NumLayers: 1 -%AI17_Begin_Content_if_version_gt:24 4 -%AI10_OpenToVie: -189 15 1.76 0 0 0 1576 940 18 0 0 1966 87 0 0 0 1 1 0 1 1 0 1 -%AI17_Alternate_Content -%AI9_OpenToView: -189 15 1.76 1576 940 18 0 0 1966 87 0 0 0 1 1 0 1 1 0 1 -%AI17_End_Versioned_Content -%AI5_OpenViewLayers: 7 -%AI17_Begin_Content_if_version_gt:24 4 -%AI17_Alternate_Content -%AI17_End_Versioned_Content -%%PageOrigin:-144 -556 -%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 -%AI9_Flatten: 1 -%AI12_CMSettings: 00.MS -%%EndComments - -endstream endobj 11 0 obj <>stream -%AI24_ZStandard_Data(/XGn +LSldj-bRWsV\;EIHE - -UuصK] -`Y b.16WOHPf_:ʿhj64 ͆V)<%ӫ22d4SwFhB1y@LMeO(p@,0hL,ҸXL.a7lWLW(an,@YF6 OE)5i.mjVmUʊNQJW7Sv́Ewu+fV5&ses%Ɔd|tt:kHmH^ܠ1HF.d JXFbL6z@$7G`l"Ř"p /FoQmGQy9#㐕yGĩYQ渷Y3582f/`$ F1 7lDIFEGJN㎹>leՈxəՒmqb8 \q8#PwB1 9F2P0F԰6P4Fhp q@4H5&HE9 < w@"1?rhE^h RX@j< 1%2bH74cbh0iqU"%JԎ903s@hDgѳ\݅9~sZlXH@; ゆ H &HAF$W=wX%s@De6'K[s@ AB@au;7VL1sjnL|@QLEh* -:T0 t@PDaĢP2) Fe 1So"D; Hv8+2QD8  <{@4cx>baP$~xVe<-cH4%(f -+@j1 -*hИ0svd۳ b ]FPTÍ.a …-\ -E#H$h/#Ʌ .vE<VHXHd84k‘.< JaE)HP#q@,yبh0#X,Qv@8qikH\FAQ @Pqc&9R:ɻ9Hvdr{G ;:;_85nFBCc@6p'NJK"HE.\y;>'7I4%*aK`"O$"H4 bUXARH BP0 łb]xAZX.X0bQ cD2H0h0h jTF6H0f [ĂbaXhbj*.\`>X|Bq@Q u -‘bXhLp@xTv _8 P,h$Ƴ l\֨5FX`4 `,`$g$0F1a,, bH,.pq [Ԣ]bAP0 -EBqE*T(E)HQ("H$OdD%(AMLb3^bd"g&e%9 dxLD<,$,.5nqK\::_on0%vfVFf-T(E^XVUT1hA -:%!ED7VFY0Fs]BaBN;r`4Df3w@X׫]8 Ø,Q,F|2'@p@(O$8 Ot:h;aE;^Bmt bxDFUrX(F1ILb67W9 p@PP8сŁGb(L T Aq` `ˠ(@C(@d> -,`4@ &020 ,pPh@ -lB d@ 6P(< BC @@ hp#|BP ,@aB4cG T`h ( a 6 \@ 0@ D`1B T&L@ -  1!B Ha„ !` -#P@$PhP0q 60pH` 6@ (LAC -", 4H 2pL`Bp C>0ゆ@0CCp@L`  D$@@ $`$ؠB0a -HA$4dTp@X 2KhPAWz㷓GU `@0 P4A  .0*<@Bly={L8Ca=5aA LL([P%p*Hh a4(`5Ѐ` d "LР0",Dh`BÂ,ЀpP *@ - 6L*PH8 $pX`%h"DƾӑY p$2&"XC2:ˬA"@0ar -" k㬎90;,`d@  *h -t@sXX@ 4@ -,Ѐ  0xB2@DۀD -20a!րDDP&!B$4` (Xh@aB 4h`@$4dզf9R'Y BVG9ؤggPPP -l!B -*ܽt#DCw,\굧n wrڪR!k#BO6"=x2{҅u)2<զyMkIcWVVNuIQb(h{5Qx {*%Wz\1Kbb8Nh7yFv;fSWNze3I H.s潲,:=2}Xy61N{Tc)N0-TWfʵ]Z&k詝~_lVͽ O{YKC4Nī]w=o)fT˓FEX7cʍ+6ihIS"?1 f=FhNV#uِ/)v/!V0n7\w7g!ʫ9{*ԂT-{朐3v6~3(fbTZOIJtۋn윑*јI 槴񤮃ԴSŮrWb[*4+s^H_i=3G& ﯗl$bi;395xG.>gM Vo/.TԉZe]iYLIL< »q)O )ut[Rc%Ϫ?ɤ~}Ho -2qJ'ޭ5y`}+)NR=O%I{93g2ط۴ZO%quRf`Wީ%}L֑9&M9KHHþ LNU1{kKQsUV=ycӯ#(,ܫ' p6Sbi[7ۻZKG>'oo$bu){+41 -?xCٽ n%.U;wF\M VSdiN6KUdUYF>ۙ敦Xvf<;$wu|=^$:ª\g)iN4Nl}GbN3{϶R+6ʱ+'_I<_rKCb׃hlND;^:#Jv4+=+/=Lo"wRDJ@Wp -ٓGU_Ӌ[t"W=I> -Gr|8,ϯ{2 Ghc􉽇\^mɳʌ-I5>*KocV9xL=\#ɯ'~d9x2gCdwL2YP -[<;^^8 ]sQm!^w'FHv&"$B띬 osi/~ܱ(tL+:MV*e?'#t|،qsюe㣌^اʂQ#HdGIeAo#?OAεxU$}ͬd{i^$H%@Ña֤l5"YAӲ.WWq4tѐM Gtf'$7 _0[SGkz~B*9Y5Ua9ƺ>?WNGUdZeFj|>fFʌS/!Rؠ]\VYeAY2P>WJjN Ճ#t)^L2l 9HxID2G]XF$Wi`p"@PH8ƒ4T - Uңelu5X =grs.SKc(=,9LLt'9Dq,3ө嘎S)yajIMGKNd< {#)*GLK0SK6QDm8]*_%I5C?,OlFݷ1Di?;*;Cl%ǹDw$=$.gRwd5uxrv}J)%eSE>z&IGήU$=X2>:oOe -{kONl ezf#AA'q6V:4:]|`U:XϾ#C]Y~g·(vhHZG^(,碓_K`V:.]LAM:<1ʯNNGQK4MG/KWIG!Iam$胲7Irt ~ Gn]}$\Lׁ4S㹄N}H,WMLջx'OnNӡ/Iځgs4҃ "3'TUH![&8z% -8(@4DpH0 -a:@&@QB*8 $@ - - .88"pL=Dpl G9ؠ!a $^e[)W#J:#U>$O P!! LQf̹J9 rR+v\*;ֵ - Mcd9%՞7fs,r#Ej]hLbwˣw9sIɪyKW$H5DR02?H7M;3/1ŗwP]|xLa_#W܊rlJRt`Xf:&/M0U&i&Ҳܔ4Մh%u5MU|{Mn #:mK9yB#ЈNl9>Ҏ3$E$iܴ{wwӸe]R%1vx'9+^ϊQVtR,¨w̒2kI|Y:&/IG#t|#WwI^w'},a%e397;^f., UxP?x<hOsrwH7v"_u ȫ]):3ވ ;ʕsɄ-K>AK>'\]tƎά HIQ4˫|e$C,b=*ߴj'Y}h,SIG3Hgq+-7)~G{[wY4vkC5Xef@::f-3 -T.KV$)-VΠ\a;'}l,I3~N&9N͆ll -psl8Y3sg H0zVYUԤ" Ogtqzmk ot69ld -1)VF nP|Gmg*{&]sOvC)VqZj8Hfw79[d_Ʃ-ƷfɓvW!!?@cSšzFx -VJ3*HU|fR."1]%vRgQ -/ >iXwq2A852/;ƒS£ WLDxrg)=\B!4aF:G -MϛJFץ*DƟX8nk]7MWi|T+2z괝|Xk6'/ UM}P~tt:bidp^19rEBsc%oZ=-X'$%}zΪfK,5>IkҕHήٞROkdwIph/ɳ/:u!+Y3ԉe3֟#%)%w=#-vEFWر)X1]5}e/eKtsznḍx)fg$Σu{Rk>dhQw=ӕ3S| bhrjq97>%exOr6ax;IrYܭGbJ{HjGǼG;zP||]s^4+wmN~}E$^QGU7$[I끞b^ekwY,J%fiŐVԠ /o?u=#bj{RwEwM_뉯Q$nU_^U)UUt6 Q -MJ5ºV1)lO!>(IcLnW&&ڝ7U]ѳ:F4u6Obc'}LLHho]Q٨BV657os=){N4t+ShXS,먐;;ёdy^h<غ-OJ$ىr1)gHUy)?I2RL!ʩF*#ݍ, B{Ww-R-YQ?U#C3C6gTIm1I Gk-;R[hEbʌMt\歽 >{6xV<n?czaYVC[򎣔6֋*~2+Ve8ū܎vGCK&wUr6#Y6+k벥 ]VuyDtLCiU趈>G:?q(Zw+:uAY+a'n*TNy>!4?ip,Q33sF?]m$YE-ʂK3'#̛]Uj.*v#,J2*G83HF)f&QmV2⩉+Υ쌖YɮGfjjNhGM YZ9Dssp>x9v%i]SWC*GSgeIg^]2ĚbuJBqju4AB1#󍃟_5KhhOZexW;-sTǘGt;;SzEx<) J%"K+ ƚGRl|(Cy5d5OӨظ.ː\)XlDot&f۸:$;k}nR%#Sq^SwM,,UΌSot^ OSOr \KS6TGq O^ĪfhM$=>,,+,BI hxTG:NJw&i |P$ 6*&+UJY$ -=s{fդgW8s&QAcTt{ҕGa-S2k`Q]L] Jf_7iJJ}2tS} -^)zvsf>F"4 -3R:JXrV_tC}^xÞ##SwБcJSe0]R$e*]IHӡc䔝*KuTM末3^\G-}cTdDLOcJ)P#08< A>B^>0B@ =P3y+߲pGm7fUviͣq@0DH1׸9?_1"*N8 - p6 -ᏣoDE3ة -hڑ=!MäO"`bI)IڔQP?<eB^]f4BSw$xi܉ qz+O w; 2`Z쓜HAא2i>pE(i0P^Ke̸ d(A2]k`/li -:Lq;) y5(UnYۍ"iS(QkZGCҋX)]'0WYYzQR :K˝O cЗ|1yF8a9{|9%Ɓ4Fj}6SstDE  \]T#~@[YL(II@3䏓s<(O&:8d/lOKPJ{?4=v=ިX%L7MS9=ƾ*dq!x9 6+]jrpǓm7~=EyhF[cڠ9ZTVtx2d MA6 R Ayu01zO:> $k{.kQ':'s]nn-0}m|YP;:e}h+p܈,7i->BXYM9 -~[T޴P:yZDvM"uꑞ6!JZS))<ۨ~1qĝ%[l֭_X -+Dl?S!LeGM@[ā -86)!t<ț<(9VvisyAPR1聝qKīݛi?}qmantNBurIHK6O5mԬ]MKH){ƻmeAScIa& jC;&1 Wж7I]b+^(%v!">qֻe(oǀV4tt,VM2ۿVEдrś+yD<|XC! YYkؕ"[aT#%߂RA1R&+o;)nl\+߿Guk3AiqG Ԅܾ~,a~lRRzik؉Z 9LJqBC i`* -n]C uJ.d^U(bTXb/3[֪y1!QjCM(u 2CYwN0$E7J@x ݕ(nXV*c<@%>SWQwJtZXbͬ&~&G|b4"v$[1ʁ= ^Xd0vO&K -8\>Cw -3F^;( -&N8~3iBDa:k#jX6ػAgEwq^p.W>S1򂵏F&G.yr-"I-У{rJ3x WGܓ%';?GE&'Or+g}rnwu4  僝g%T"Gp8fƟiBy5Lu֍Xu -,uaN6{O6U͹JdHx@m^P'[P"s]&|xQ7iσY׉F! l+߁d>)H!@5)LT8NB 26FzR9S[Ka_bᇸa^$dbt߆3$O6ĦK^68K*@7b㜺="f!Ud?lDItsTsX 'McTIPNizif?Չ ` h\|CG)X\~p`Ya0KK+@?U/&GHI2\U{G?H,BV@[EWxFV\trb[rqAd΢^ՐP1]dLS)UǹKޛsUc Tq'(|)e}SӬfPzwq jҗXG*)' txE(y\E|n)?=G M?ׄMTa(v](g)jCp\3?GE|m[ウKxALa !&EgKڠ[$Ϧ ..]9~TVPZ WofBE(9^Xm|'V*eP3| iL\JdW p@IO2 ak V7,cud}o;."*[Z38D2 aXpwT;\*YZq 6k*RNFɀwuE(W< B$䆬^&)fMIwSp>T($|c4~!OE=e-g{?ZøuG}S{ti8!d65dԺVw!OAT_RT8hGX+~}j`fCM`X\?(]%e]^U&SBxZY۰Al=2Ϳa 8 ɵ'2pDh K,"05e$(BI2x.5`EZ3 -^@0{IFq(d -E=ݓD $]iGuiY/։ȃ6HȜ: P.tz`aSa_/MWR"<$!Ξ7RYȿK@X5Ya%|^_dPE4|y Yġ,R:Ӑܹ- bτ4\m"m*x,6B5_ DcY\Z,4T(M8򫙢V'"a)dž0zK(x;yw[rAm_{^L:XN t -]΀|o u3 KFb`P\8#R[?6k=RYؾqO](5g8x ag&؋Ӝ@aVy/lA6=qK0Y<_xd)ntNOQ(vSjs$wp5GDzdyl<aI9e.Uq_9U@ZޘeŴ={]\5' 5@Ɇ5ѷ2||ʪ_Rx@TkF5_E~ɸnjÔybq(狏Gjԩq{ZS.OEόkD ׏񻰬dвF>CV) &y TBMz#h7.YYj|Tŝd` pW -IƆ"]eul^bsUK C -{™[o6JD9=(k\GL!9[:uݦ['"cЄՋ^zps,ǢUfRzo+SEJ^uzXT/%1 /NɧBAə AF_]aj^ 2H3O0S H߫R$ʽ֠֔e$He-/(1ycbrA Ŷ}M -F<"n#RT*t^R3Q&0#Zkt -\(H"W.`q -npQ,/\lD6Y$ -O3hYJ"zAIRX3cFXf^ I.ӍiDz8hd9UQ_s NŗXZ=wo8տXyD,#H&En;[#i#tc#|㿇b eԗ&Adle&Lz/4V=F,W^l3fَT_zLM"S1cWD-\,|)sXp͞Cs;$ F9y]q.ͼzF M@t)00tC XOFr YA+rCmtGک'i>IkD ]@[UxCN‘΅yyiN=#^;ת%G(zr[8C -)&+N0 -)Q_DiA~%xGM<4bys9Oλ8)?lE>,.!eokE`j]um<~ -.L=6dctC)$]c F*b';%\941hWHG'pEc/VPJ|K1lH: A;63,b,ztYk0[k=Mx/P7|4eBDuN ̅![nF8hѡ1[u'L,AS\\ǡ~ -1bC(hmyTxu֚Bn 9*5B!kFAs+d,&z)G-7)ۯ} @w闻 oVHɱ_c2R w}9k@`K߈NtίBniG)> -ǏPֳh]݉34HЕgm;WURUB'CGjϟ愛?Y,wq&: -;7+o -ﱪ\%Tw<$-> a=TuJ\H;-RΑX:s[ 9"E!M{2\\r*UhbT.xFL6kirpefX^?i`a02Vac -t=FjRF*FC*2nh"#Nd>䃽 &2kjK?K6I}K~y!i| ZD[L~" VC0o5%dLZtЄ&W$"R F.td\whVoiďY7V4{NPe9]:u\s2\2= bz좕q7LU?~SpVTRP"ǚOB -8)ëi%RB&ª$7čh;gSZz Z*LImUys3x"XY>Km@ҩ1uY)rvHۃ;)f=br\.H"ҳZl@nХyC?5q޹x -DQ{!]f :kbc0GxxmQPr@ -[q!<:>)1hY}Ak#\Osh62 3JK@ }p$V[%2r@Ɖ\µ!'cZEV9~~* k;RS5*RP'2P@Q5{Ldd -f8aW] )wfzj ƕd7+!2S-rHˀcQZdٌϠd3i-nĹD5(ݜs9XhWM{EoTE#uC@Ud/^R{3_s&][:]4v=>fUʡCw*v؆F+}O]D3X#ws?S&S[6/7Ӳ U$:{q}$D`Nֱ \7"!OR.#HIeKAQ1#=2w`T))GEп]*>YZ bc) պu|N)@PS)-XNNjm^!2V)]Ƒ=.qFY֬] hhHaC:NR0HP+BEϊmE=L6dX -sF^\i(bb gYX+4xՓ -*šX"C -<GZu%M !#•Pdk9Pǐɯ ަEF?%Ӽ`2EDKB}@ІF=\&*Eθ(<`nT (vFH4 GQPF&DxC;sF7GS Qkk)BF{'{ -AñQvpTgzJiWÈi k~Fki DbiK?-p#0S"QKeuEވzGZ7b<|B>7CiѓGX G!h[#st ): qI'Gr0GN##9C\ˠXptS-*:Hm( ТvmTWXNrzʐɭC nCy.RA {h2l9X?Wz嚾瑌tgu PQbhd`V\>ıJ?^ý~R'Z_*t"=])Ҍ*.BZr$ ̶Kͺ7k~ oD[쭯ϴ^+@E.# >HWT"1\:q(@wEj9j>&ر`-Q`2Cǟ%~>Ja]$ILRJFБm$Mc"KW1+``/lJtgn&y,4ZQXrlpR`l%^r>;'| ף'=`SPGBሡ -Jv%h lA*ܝ:pޟ$4ڌNF"\ Knt1`b5{8/c7Mx73_˿t#R2-LvMK;3Z0"e# }Z淢/b-aYU 1vB AJ[:TȜBg gLӉ2 'I@ 8Y!p ԝ,zotą'ePFRv0[alXT`"ꎽx_i)ɦ-Mʏ埸`a-t<(V`$SClR0]UWëP -PI_;i[0G5HÊ}ӏ;FոD;2 z' ,>d:\qSʒVXH7.I: -TKR -(P$Dc3<ǐPf )` ZȂ#RGǴ(<4BG3Ȏ#MA74F4X#9Ah$lgFJA6 #Mm0nt7HEH'rFXt|UK6*rHљ?QMC? C$9HCzc\#Q!o clmes 9 ePr&RpbBKd%!Z$BPz:[(4SI9=Բb^Vg3moOJd}cl*;BQ>Ouς)ݽPS 8~zu (B*SfJRBH֏" .Le^_o/mN-VT3>bTE~votⰷ~)m)r/0Іp5 2ɮ93✰@iOi1tuP e$Hr@|e;.0}*Rߤq= zvc %IZArK 'Q,  -'c\AGh.sL&ӳLI>=E[.ei\CQ"j%23Z3`_Ⴘ>8KJa$:$Hg@\2DFC}!*Xb:}PzS:VqM+d"4 ET4:O"8aenK_l>rU^Nf5y<ܰE T<^}UB*}Y>9z;rJR.@!TNytqT՝'`0 (\2)P _4+Ѐ. ( -;]eyf9L?ՙQQ3Ks!lrqA5pD3WoDf`eqv/.hntzfI6daU& ,Nj - zt؎v#`H} i]lNSgwіJyt5~5=ەchr߬@X-j*ru,#W5.RE((E#ՙPe_ꏄO) _%_,+$37C+y@$X0 ܔ " ΋kzPL4%8AM(PaxHBf{&) %pUպ ]Ny6.j9=wS"E<6]b-r ¼ĮL OջXTRi,~w/e/ԇ38' A#\k`a"K/}u0݅ȵe9G]i D|9rGmzG,2WTX=z ryVÎ7 9,D&I F>!|Xl%SӞ%qg5dq[hX`6  哨EcQ)-Ue%w':CZg.(!~=FqVN80>#;[]Zbx0ۯv>`%l|#hS%ETh!J낅K/;T RLʯfvJH'U8 -̥Onp~ZT$`2QjPaE(KA>3o@5kkbt;JL6϶Ts&zVjcQ'K - -gca' _pN1;~"xDP%wd˔ գ0"§Uv -ކg1B$ D!߷s@X YKa\Dl#/T1n]J}]k%~xWZbX("ggJvW{tkE|s5?z5> z .kH -U2EyWXcR-@k{ hz4_|^QM"6HE,)r4w $CΦM|a= `G9H:niKC$UOUm-XZᗊ <"̸ &N:[(j -dȇ%VQ uKߜOW2f8l[]81T2AߟBP"wc9tƳ9) 4B}ab7,r:RƣU  sMMWQ68tT OPWi䐈*6I.S8>Y1Dp)j@Sꂏ3$ER.,u?nԣ-ʸ -#{$JW&(fCmJ(6y(Ѥ@ @u~Z.v{r1=vsO:[I'ut1ҝjss w4MM(hi)3uVGdPLG)n`g JåIDߒ;dFozXK|RzL(EIC`#oƳDH,& @T -$*jd"XMgkJ8EXC,/_`LP :'E(@za @LEѐ|{J^U˻V Evc4\ - ʠ!GbbHdӕcH;˳ g+d'1=)VKۀq?FUukp~j$N!H$0uƺbKvG#hm9EXw}7`?VJy?8PܬP$%jTKx#77/R.<͆*oŽwyoO>/1 _з%$Oh%Z )n^}%~K/le# P:F; 3Ul84e^JJP|a%c&~a9ts a`̄an4q1?1/!\6)fĄY_b{y9'pelHbP،U2^ZN-x4,G^F/R}֘`%Me^+Ϩu{(9{Ex<bX>*(8a["4UW<íTWQg7_Mcpm;́QP\/Qdd5kgWWE ? AN;S3gR;M搏&!DI&B:EV;yQZ~㐞^^+h!FgVKUЗ@nX b{!H"mZ;s*+m]ӛān*-(qi -dT?ޯӿ(@:ycmITi1\j1W!g,ݙM(&㼰4R3$Z,ф ,U$7Sd^5qИz4jFYiDTq1.hb(h,hr XXVYH>d*rAV]%VXtX'ѩ-O?%ZțhFҌI k뀡XҺգ.H r׭;7⛞P=ӥ>Xw_ s#uʅĿm/B=IZcEqrH]6=8u/*UW͑h -tM:F0-Z Irw7rh5 5t416D#}/P#QݲoTsƑ;=Qmx2c FBRWkA&A4UDB»xl9ɸ a.ɦ9sB"kz8"f x*1^ENȚ+-@/exy!>jD?cV7C-2ϛ?YzuNߞ-Tx"52[ H -Dj5 9u> -^0YP4g٤Qj&z:f wN8D/ q jȖסԤ.s̑:Jmځv٫NqH_y[1q@[ѮOP0!8d“\,NYj+'3kȨi~Ӭ -' -bĚ4|;[ %e'OrgZ}?Â*xÓ -"$/yC*h8+ɣtߞ_Dl=. sMN%{0h+WZ8R$c&C"*B*NIs؆AM4֜>9lDi(7{%GƎ}D~xB+-%֬h# m4JuEVq -vXaUss՛ߢ-!5-!"v:T1&p(]uym*,JT$[l_Z+}+WɃĪZ)!oNsP @R -Aey%ײgw) -YeSo} ͛@^jWk4iT6Qk^|"?3 ϬTr׊ `$X] @Dž"zd=[枽'+b[ɵIFIm 1*,"G^ꟜLZ0[+L.nپmOB_}Kf=k7,!tsj,>'XbˢZ&%;rEetaqP".BPJis6,+ -KpꅶXi4L.TՒ/鏸$4-GEQtd_sKwr?ӟ~*Rc 'V397>i^$JE1S9zζ -Me."q#6w  P!Քf2!& !°zmt,cd6nF.j!^hu eEB#B2PԮ驠?2ne %2W=*DT~; zCWhL[ -I+8hr./fIXBkQaVb,)pD[t'LV$T: : 4@8!' 73T!:i.?Y X5;: H- ]?Wu“om`]wi&s -\FzvUs$M>Su,2,ՑU+R!u_VL͏"Lr\g1f.T4='g9w//\ι=4sRzW?is>'45t.7tѡNxڰ-QO8BxWGq^5h]D( wwSz?QR#[vo#g;swl ^EV׫} rF+ -J1? -ߋ9% GgSOz!M|۬f-5ˋGh -Þ+/>&ZDX@إ m*#HNV;[U2`ޕ6+ G! PvINȓMD(1KAL`'[8ɳJxj/=mj?9+1QB 8{ev:[yA(!Etr6/>?t 9/ L -U}C& /\HâkE՜6W7>4VF0j>/7ho(eTTC#Z)L?lf8 5W<9pE`y:vLR> -"ۅC"hj;AluVl'?~G(p(>ƣ D5DK56q&}+OE@zG\-ہBV-tW!q[ 6ҖGp 0*X] )iQVݛiZ u FKFƷd R^j ǶHfD)pZOG`!}L1ѧ*g2vdZ]! o+$w\j+QR!qȪim$sYtHQo;Qp/qB-+e(RCB'?-m!_6>c@Cw|!&'΃Zgԃ'(pR&WAJ -̉?Aq3m߻~_Jwq -@pNU~*±ywZ-k0aPҒ1Kˍp/~RzbĆ=okΕۮ jb(ػ7Vvrz Benu^Xzx=c#U! Ʌ"E̅iv>8-8ޒwgDI1oGx`# BEa -TA2t`mwN5@8WF.s ^wEЮΥLjpp Pj6 W㳴_ ²28a% 3<5y] ֐[kwL$@Y >ќd\_"D+(yP*f_sΚ[@5,LT ,я$GC -ˋ0ڕ&3.- \qSM~~\яr2;:cا֡+hhnD^o/|vkȫ7F\g0 nb.]:=:2]~ur,T|c&sҏHc?v%e}jHBhl)qm -@+tëh ; jPoS[4Y}F]##:w5NId'}K G(7\L:l:ގS2ۇs ᭽GOic*8 u(tu>ӂ bm_dFD:"sYBA@H\oG0ˆzJ:aնuc "RYGF;k"Pg: -~mj< :#I/v=h Ḷ5hUǎ PXGĿ٤SPs"֟e/Q߳& 8ksܾ}]xPPI@d"MCжbH92ylY''ҊeW<+kOîc` -FPjH !8[V4eTAѨ+rb,W#ސ;݂@U%v eÔ2˓fTحuAߠ.Ճ*]rE>k)(r Jw$ \D[Zߑnė;ɶkȥIّ b&:0(),jQfы _6B/1,yMxiJe&Ll @ '8U, LEw6_nZ{[10K)n˽cccw >nzU(I>"M#K?b-grޔs4 AUC̾L  t/sWN8/x*"A "kR657dܲ#tPq4=Ȓ -ܚ84ȅ>,8D̷Ȥ09P[ej&?G,U9H&MŃ8+Ti(&I,TCD:DVlÚ?1Ie~\/62+2w]eK-jZB9(diySW]GZk8Qv";݈/[W̅]7Vsv8qR h[)Jz̈́NwŪ?Yٳ2Z\=K1vҕ(?x6$ir@\3|d:&&dwɗKxc+VrY%g*!)%O(|wA&$Li$΃!9rfx G{^^5Gv7eyŎ!Ue-ތ]W T·>'RHe`)o9 Ek۰A"Coc$I2J% $ zR?w.WT+a=5\O*u+f"Ε}nsi699ךPxL^B?{$ɂI6T@L C~YD _6~ -l1͔ƣr^=ĐjNzN  યs7:Cy wJ>lŽkeh_wGc6yj6Rק=xg_α`d<J\#4rL2˟(/[ScRB0UxTT5Zht 1ARxJ)eѥmYjG7a6cV< vW'aY XҀ Tk16x8 07uqԷ9x7Nޒ,]fx.*z5ntM>nW9\xq0gGq)wؑxR["B?#l4eAo& uABԡ9\Zɽpp`k Fg&jH0 - QBGK!Z=*Bui.ʞվQ+O-fY|i*D=.ay$(0޼yQ@\2`E.xf)7|o=ammf±O֭lr J[$,J&Q܌Z$yZ( ̖sA5p.&gDe}@T٠#=R)h\1LG|N&6dW+Msߔ^ùuܢ2TZPxڏ!ohsdo2~/V)&}SNs[bvO|٬/ӏB-Ǧk2ug9"Q6r#Zk "ˈ zQ%*PAPb)TU$SF6яp*7L({x,Ɖmylh(Hл@+VφdDMdT?Py)C*|FMkf}Sd!q#])[Qf. F__eHt|wL[!I b\hVoP OEK3އZ 0JiWA&5Ye`0µU #58J׃;A<jO"_L:~Xǫ=ef VACɆ --F Sm!do> -u'SrzPIpmag V9@̂o'5=~2˧g؉֚`lruPsR;:xXk!&ᚂ/bKu ?|}\_  TA)Gfi -F~-GJi(M<Y " jTOR$e'+}bIPUR$H-36EBF(tbSW̦3Mϴ_QJKih/F GP-*8XF2٤&Y45% pWVEA:Ef6_P(b( 1#/Pʲ". 'ADy B -kb!aRd1KA O4-!H 5vC!!Zbs,lP`Y\8 -'G"e&Ba3qSiL9L0F[m',!ZCSVS-[ -t۱ЮC뚵P`,PHf5lXjqCLHb6#CG04Wôbj۹Ze+ ENwBN}S;%>GCAIM-6y_Š?dFnl8O^1CaCTpany}oþV8 ̈́N 'pD8E8M4!qC;N [Znܕ'79qAfd|r: KR2/ I1A.rOU}DjZRDJ-V Q'*Gq  {N>TvtfƲ%1Hb!"C!)E$XBQJP"Tk Z -4;$2CEI0R RRH#RyU#_H*FFf}[<py3s " .1wj z0͙i*F M Cӿy#G:țAw.z=2,(!s^F5JAS7(=" W -a?ĝKlmPX&p=EqA#2*2Ҭ82'NleP%&ԠE>L+|U2!"c*Z|g?+lJV]XhRq(8Sp,&b;b% I(°Hs?ӿff"Óx2A -1 PNEđʊUT&S1Ց̦MUّo?py16ԑB0=(f3mdmؘ_rC(X@EN0~YM -.ҷT@%!) ҄t"R]ˋ4HOAS{AGCV4`tF%PM^Y:_B:TD=7G{p4BQSѪp75_lcTE -1C]D.GnFu6"yJxU fQ}XǪ -$HOZ)+L*«CŠe fOU!Hޒ(s2-4ZdSQ - -0 -ԶI#D+j%Q4 -B -T21I㱄DPȠRM!fN=*w\c<0ֱ-] ͢5A%)F -bGqCt#Y?DS ڦV+\ul^ҝ݅,L:{M\V){ʴBHȄؠ1$|Bt!dm$nz7ù]5tpԖ&x#"FDB8 aUHDYqS祯}ݱմZB -$ي$5e-FRpA^"A~WOz41SMaGv t%5($f3d\Z#Tqz~cQf -9*OT*iRf K!rXgж/ЌGZjq WlޤfCW?h=>|4ޑc]qfdӑdj}V -JFOĞQNs1'%E_ h$Zi+.6|EHMH(V<1]R>ӯIeez3w7[utof! mZRA3qlSU}h"kUǎKqgfVMPpĥibD'~G1YgFѡq[qI%x$*Sl;S9ț%'Q]3~JRR1_H|ZqjCwKQ]Ƃ(+e~L7Q 1G"mT:,1:{i> euϙCOmS,kCsxGB4E[\qfܠmY5(~2Vi '"Q["Y'NG+Z"qf:s(rRڏzeidmt Z.qg6CATkQ*[tbCXrH掛Wmb("2&&Ci6򍼾 iz0û6N'}W:mԐH0h Qo߰ ;uBQ͆1i[3#!IRNP:\y&HyF!a13RKTY4418Ԭ~xМJ$!-v4xϴRxD zZ -WS5 v$WeZ>w" ~>nA)#DZZ4!)_dQWT9XwSC:jBK=MLe(CB6ChDFljLe>%E!Pr2$m0viQ _%k$.F5.a )w܅fd~sF\Ld,Pr;ͬ.$!(C$[5MIB KPJTDB!2T)INVQ ο'+2qh)r]2ѨKd&-=scA(&e',Ќ(\fN+!4Z6轫t+x&&J6VĪ8]zӾFmf*32oQk"yL1L] M֖kL5/aspG,2̂2B:12j;[d5[db̒ȔA8Y -K}W?oaG:5+83Q՚ -Moc_k*WyiGM ML %tT MX\{*آ+ -U5wx"[ ^5/#8/"*"7޲}y@t0a>BtsJL<D [cwWE~E(FhR'¤` m 3E!;] R ! -13 5<MC%@dSщ%bìP5dPNdEY -M). 3LQC 1bR~@( 'Ni*L K:U'!7NS2DT" (]!FN$| ''QGǥqpB$j*D5g|3եR +!KVC2\s$(\ڥ.uU+TBu7`E,d%lY_ HD󾇐)䊺F 2AAȈ * UB~CwzS g)}Gg$@ KSj1.11N D̀2!a&\XC!S<⎈HN2031YlpfBk@c?Z-076cb>$AXa( ;$16P23`LF " E6BxԡZw ˦dTK.N -eyrezb~ NJ-t򼑍$#+8>;R, º#nᆴOV[8jI>KBМK_B![жTR߅O@SA?&0WE',vqm! Bӳɲd> j Qrkg!UW}FNhS!xy|X}wT7om99Jxx9a7#sFk10QhNm=2-_ VZ9%2a[]΂zz!p Xp|cOHpN?Ȳ݊9 BL~*+@B&oM7 ەZqJ5vCXt&[DZD dZJGC,qnpjset"v4kC0VQR2ug8!YU5M=x]&:i4bF2\)t9?a0?c"~Dr$lw[+%U@!L%ʒrNl#N}|C c|@dLlSg]n8`FSɃ0$R&:dG0*Fk tWJΊ6.-Qu/#:%|tɛbH2l?k߶~O)7>9 C^^k]oNA:!dG2Yuض)v%5X'Y'dR2|!'3ODnj#/Y"=: .xngVkG3G4y=5޾3 ܆6،ZM\|1C4p4z9dX mQz M$:/yGtZruh@J29y{vޞD#nm(`(ӡu'jTX @VrҸn銤C#6A FY/&\8 "K v=1&]{[ZJ=XČ=tۮ f*"t\5*TZ%{ueFKq<"Y4'qXh襍վiPQIS-Ivg4ˈT ](D&dÁX΍|2a/-vG5T:{A&"<֘kJt53G2h)PZU`H֒gψTü!&GD ;+iA-Nx5t|:;ʺM#!כUFX %T͈ldf )ҴI=.!U|Rn'yb%(@':%Sn1bGzC/j e -oC?W |fqJQ!L oPdH(+zԙ"sXSBיxJBSBV(~9hthޕbɽ(nA'~O96ȃ~I$M<bUQw*V$kFW fl}8tiGWKRRK-eϴTU( Paf5lIg`"a5)cX֨} ᧓X&*Ov8-\6 EG3WsA֨6P:: /+@ATy࿙[90M:\ s;H`Li *K9cgLS?-m[0Z̹%3cUo$k~cW<,M둂?VTԻoƜ{']^ 3EM.E_(ΪUJiz֟&޳UeRlBEln6kj GaDEݲh(p|b H~{ BD3Ƿ񂯏4e8hlE>u4B"d;2wh -lFW#n^Cr׮+z:'Rܓ9PZe=%zk7t8, );&Vu*Tg`z[ liImߓR61o;5 b;01D2:WC*͟ҪrS!=2[HҖ'R+q+}Zx{Z0Z@&g-7p}n*rhc - Wb]-nfJOqbw,mӞD:7s:X8- -T-+YZPݪc NMKG=ZOwj͕zkexm7!M굱n,1ITD 2U`bl[t -UZ`nw@BȶhGL=FJDֵ}Ë> Vh\Ţbhjxξ͚ D.!"Q`H T̋5YQwӲ-Qc7ur'Z,{_i7bsv)srotQoɤeH&D2M،p HѢ)s9zºxzOIF(qɡS]|\0C[;Dgh(d~"DLAGY<[A0KZH _k{fF(GS4۽-#,{V&@a!J.C:{0J? -/t1뱢I%mdU,jrwuW4i؆r){@TwWgʭŗmMOR):MF[zwUT2H FcbGZwRhx)VACeUDQQm2{F/K(S^NN֕uڠ_4LDI$D.8:mI 4WeŦ K`[z>t܈/c&\>mMޗ7Ѐ*3[p -*d-^ u&4)M/D|wx oc*´rAmcWr[@TTh9{#onWbu0XsȰ-j:joޅP`0S]I#RN,HD4_B#Cmn&1(0 Sn|Q4tye^{ 'ni,oC\^I!ow\ ݸC $?'R#5dIGā-ZuSXriܭjTf\0UKoݣg0Ic^\_?b-X  n囁F"U `ve/JO JlCk.9n>yZU#C,˛i#Har)!9WGaDfI; X' 4ŌR: Ց*fp`JzZ$4܏ߎ\u8r#cBNҢjC=Eٳ_0X,]09;7 㷠*;A#oy1XG+ʀFuK$}(kKR{ipfi|,>kiu]ETy(Rɯο{)䵖!#XZ#-nQ кX0/ڃ0Gq x}J{ -x>QEJL僨aB51Xd[E6n} T}PCSPu[Pg_7)2Cly6c@\v8C{EC2h_@Y?KJ@Arٵ${ .#J nwL5jvsc@ԯ j<%P~\Nj٫fkm21H8|J >c&}Lt<;]'gW, pU\t^uu]hWIԮsX%PT{.nN2AOH5 :ߦU .n>MyZ著 '%Aa1;$݁٭Lr1ćllc&3)zb&X=bDlL*vdK>D{!OcZA~xal!d6@hA#=BtDT@Ipp g "̸  71BjL$DS -1[#0tAH5&6 Bd1A"-"i%MDM#L8udSKF"l}ֶ0f"#gKc#B#Ru`q$2HKF{]0%$TuLt.!x(Wo,ݧ%PS.J-yg D#Fβ$FeXby&҅%ıdk+[x`d$Fb%_%dF'lP%Qb<) dM De)1'ЁİBBK,JBPXI`t1#V<)4$jc5 SI#]K5EK,|;$YEjIQub ]*nz$3-M1/P_ A<͊;{0{BWU$RD+"B$p>Ű00$걈zNם, $ƏEXf:GGZFiZZ[k<:[X-’ -f \p!q1 ,s~3]L?T~] G<.FAnd'xq*z FR/^Fg"Gu/| FZ{}l:Z/4!ۉd\7Fz=&p#9 (LQ4ĸt.cbDiZjwfg22T"#d"H6 Xz"ZbOD2"4ȌL@_l8V$R" GψgD\"B𡁆r"F`k^ r4!IJ#4B(!: 5p!Rll8dj{C7k!5d5!]3ĥ0F(g# Kѵ iԅ}@x]7з"grM[~v|m7Ƥ F($lo|nB|ŕKB -'qpX -!i  d;レA,9qtuxqXʑ#9rA8Y2Jq -k`.xt+q2a6tuh}tD[Dc: P!ȹUxq?%:@i b7v@Ύ+'O !.ޑqpS@P!`x3@|` &aᬏC? ꡡ@.4`5C4GAGZ#~\V> ?(lt>XkuY4}p1?0>tyX`mXHŸ$~m>pC` k>&I>`?Y@fHWQ>rh@cϳZ@jm )zܣYJYOA W:r0\ -<'\!_p A$.$5i [{- -f?#(ՙdpvA`%ADеG+Q Èp 0D DO -y -yå)r1uOAv< 1S<ܤ ^7ǃ8 >3. - jQ $œ*I]D..GG .T 悒tPhr!Gq!O\.c%(2ݢ%lzzZ'K٦}l@t%q3%ӇO-\IӂuÕA͞Żܜ+A^,bf,HW""Yȉ~,Fabu8sT',X%x iIa1;a +X%W\i nK % K6B/.&r1WHĸ?hL°ivdrlpX&7"i& - -W̚`l&obimUĸ7TxIaĜu 5*6T'HDš Lݝ' dCS2^ͦȆq -:aAH/-;7i淟н?Od`a7\yn"F61~&0JUG[TZЄL;UP.U%'8XJbbR'LSm^hWK|JXZb%y%hlz_%U"4nJG2aUV=n@|1aXRE)֯r#8EOV"r4:@J=0 /VJK -NQ2XiÁ%+oʦXIyp+eUKb~J$X SIbJB?HGbup0X+i;$L - {ÂF/ MG0ƃ #{uB/GlW9qF,8#ƹ -h2W1WI#x_!ED!"xcUFBVLZ"'BD*i«JaQD -"B"`0;)YoйjH0Pɑ"󪠥o*\xUR9BdU'WɃR+EbXF4}`KNVrJJiEw_+A"D -˕b$uO┮(JbW+ބ,i'!(|E*!,E{`H0B4L%`X)a ;6'D0}" -I/ aM$* m5a9 QM5%y ˷!' 6`@AkR>[r>xL[ -:n mpP|vZo.5R  N!xps18 T@!Ju;X]&}A]v~ k)\Gsց^$#:u`3IKYx|ȉ POx,,^Ry5e8L0a<n0 ~5b Ġ6?1QPQ1W/;:CmȺ 1&P̘wȆM9lX)L10>5` 25Q482WFNdĚ % wBNi-As!EhPT#& 0ʀdОؖqv/fHbf}&1#2Cx0f #k6IcAL28 vg@Ng7>1X4f[&0$.#n1qaj4p |41# ɃҔ -4kH!N:%ti>j Sy!j GV5X"8j %sP\x3.5E][װۣ,_-a\0ac/9׉^ -8!µʆ:*r2d<DbA{&?_[|U.^Sl+m2o?WAp߅cqV`rVrE -"p)YUs7KhT@Ld8A)9E@sߔ` -uRHs;#AQ*( SEICY8 T99(>@A'8}|QG''aq GqबvD#9݄D OlC` \bc-e&pɇL /avK ~(o~Y ' %l=$Li(KϧF s,B#՜=Botw^zthoB'@%c ZiĦm: "udT7Ehuc :޹'q ;) ;;͎1IX; -tEvBq'CwEbvR>9n{GYƾu"HIg]#2E`9jGDhU<`9ȌGxH"x <~ʃpZ;ʪ<.sC<Bs -C؎=Bk#P DJWM=,Fv\O,I=Ĺ=Q4OW?( ɒƖYYA}k=^)$9]_ɣʹYw{w?uo|Y}3#@jzm$d8O HD*f^;npn% fjgx޽^&H=W*bR4L>n$7'pv4Dt01m Ga̘֋JP0\Oru,t8tH7ĠWA]S1@LTӗ7 G"DIo4Ϥ(c&R?4 OM47yw@qK )n΢<@$^%͜;d/ ~8`jHH vw;5` -5m F`eJtI'yeؔ:Z\Ca; ҂q@!u-8 -F@ M~@m¢3rkd2=ܮA i*U8fy뀫'IzHg9 !ˎ#m$3 Jwi ߏ#cCp -À@C: U3Yh2lUӯ.x~9dzl0;IE< Zk5p/<PgaX `R$U#`٥-X+)9v.y0bmL`58 RJ8$ 5_zػM1B}2Q y.G_J7><A s6W:?g:n\*v_oԱ&/8 /8/ -Fj{A$;qk{[gZjBŅ)\j_<vI&za]-̤ͳdkgï4Y; _I.#7;Iܷ2n(L4̃ -.AߙQǪ9@'[Zy87J^/dbvQ2{=B,B-@h 0cb>Y e[]0?Y -xe,uW3bZ2nyP -]ד -b8Bwc)(/n @Qg,Nt xixȟG/C$٣Ƶ%np"eJHb0a-P.HbXڣ#eU#f$: -[=4)B2,Sl̸*N*@YO@a׿TUAd"=nb_J\<@A3MQɴhxIC"˥<tpOJ,*%/n- -k*RIB|`ӻi/ *خEjtտ>n I>-RV+P/$?za L,`J 8%)/ů*JWU6ٿV,/7_ޑx-xlI%pv];7 }i/@b-sH>6?^*)Ъ_-C)լ/BFN_~9!0um<{~?uАWR{A8M!ԩĽ wY>p2^C.l&5OD XUN6 -KgHڻ8B>ˏ'`LIGS: %'tyMl)WvKĸa)$8l[ KJ+xcW*0:Rf:nXT1?b y< .;Я3#ew} 7]6]<mh) -ۀ|zrwY7 ,!?o:@\HL\%8;J_'6e̯_d8px);"uȫ_[|Tp==PD<~0E,nzus黏,L`)k|^!j♈#8ky y2ͽxyo%& 6poΡBt K if61e 4iS0'ր2!~i9=v::DCw!]iRÿ ?{uT  I>˻s Ƴ+W,$uD[Grm1SNqo0pׇ}xMjNJUjD-(RQޚ]+ Ѱ[͈^\D?wf}NXuF %4Cd^-_%`+Yձ,3:TY7t1Wx7ROijrۨLJ&P?T"o|z& Tv4:} W nlz9,x](10Cҷ-tZ##3:ʎu-Y@J=F,p"uXxDi S9X7۫ }g]~_ˡ%<~"=~Y 觸`%UM//4Y `P E+Bae ܜ-KAz>n)F6o<42S`]@,̇glb{-(Hc~1@6C4Ga~ꖄJ9~lڣ?:G{#ϖ]a-hh,Oa<Y^R<1bXݎ.ڌb HyS*zO1dK|VW,a}wS -|嗛uʆ{4$*7(Z9 y N}ݮr/!t3!ᆲA/޻{GiNq]A - 񅾋'%.Hr]NQJ΋j!)".An äip@=Euӻ: y9dtmB͹^]!$p#t~w~གྷ؁-mf۽stDٽu V]캳'ΤbGpшamDK:.eD|瞨 `kнܓ{OQYO6[=N쯸׷=;k}[5Nr֛̷_ ~un/37"v\LKKls8=?vZ 5gs,ԂQ;7UGj Xnk}\O<L,eȖ]v`8*O=.#Ή4gkq:H8xG:L^S<*Iƚ-Mؾї ނ6G#T^ ٣ehd-Q,{Z4v"؏1*PR[K'}5}HKertb3 O[1$ -v܂ϛz -`',շnwu;K.'luk/ -SyLhK@sTחiZu-~n=wu%]1Wun$. -u -be[b훖&QF~[hq|Y[V[-f_Xr(9z?j -uzыDEr:'-e*.&i/|MHXuj;  9?^b "a0Dć*_h3q7|^uZ9-f&y Bz!К>#C3ӣ|tP!m$#ʥWwKl0R:牽E8v}i$"H4җV6$6ùiWח":kQm* 'H&E|It3sLXJ EN3;O ]|@)zܻY-lK3%evsi}ڔ`uJÞh\ǰj˄jV>`XRf)?P~n9x??{3&NR@Զ<Ql 01y*&3=H$ -t_ۉ}"ه F ojF#JUs8A fE@gIuRIt27ET*|V$&ꂪ,u2.@ΙzԱQ}.ؤ9/79V!,e`3{=7|ϹޟgQ'>O}2z?&Ywt=4dB61kĕ2\Cv 9f9o2ܹJ +d|yȄs7@Zsx39~,>*YC糷t4s:aG pn`v7"g!VgB;h MkQejUռpsҗ -۬P}Q*9s9$Ŝ3~f6Ms#p@)+/wv"Hc}&+f|;WG6œ y GTw.OhH\.$Vy]6-X1q͐Tn$?!؆5WER3C!S)AkؾI:[ |t8O)/A24+cr (Q@yu^*EpE%v&Sk%EIstP%FIALrB%YCTK$t+ ?n޺ܻQ@r1rOԣc[pȫ> "gN@5'&YiaQsu1}<|8vҡw%̏v5xe ϏUp~\ -s䷘}}/'}Ǚ_*?NVim7X#S;ذ2^~AJIm9>-@@>1 -?5` @ޓP{rm- ︥ZVWI) 0u kՐ]4dY`'٥%ȗjqgX5HW;$}4[Pͨ p; ^pH{T#FHlXArŰOOGA)TV,KZu9nO9{XW M 9FäO"i\%Lǜ]jvW>;k\LeƎ -wlM~!F<!*>H|8xbܭ 'd$>*yq;h"\\O94[r$FaUU omJBlE8 %AԣW_։?psS>ϒE!Q$$fWOt#N:,KOç㉸+Qg[>\'>j -sp- k8[ Fj t /ʪc냨pKv -X—v6Ub>o }prpY^^j'w7t , uФn\)$B -^Qsɲ ׶f@_xn\hƁI>!:A]j Q' EsB /x@DC=(ޯ%[ -8d7>NqBꨅ5V0\4vӃeFAz:~!ߡ--f flJfH4/SKV{ң7%5{wH}EɾblQ[@zwn 5o -}A)wBaTq|oYo+D1_#騽#SgO6w+妇*=d鍰Wʔћ\=<C°'F =JV4E'fD^m{A9>cr4u](1KnuE䮜WSnĸ{Cuz25wmi <&3lKޙ wϰ04ߏY<'#P\ odM_&'P*CtS6Op2D#$`JfSpÛBϝp۹!5h͝!]:)ܽv81x~])w.foY%5ӸF~.PoCw 1:eF[S"O^guH+ ꁕGQGfH - J܍+K1 p tMmƀ}o j~ 0)2ptv$@cR[Qki&mK!cĖ.k'ۗi>ŠmQ կQcl#1'Hm̫l -VM E/'3;Sݢ>tkziRQSָP¨H=z;fW[= \5[jC:'O?6*V!N-sĴԤRR5'mRςGE0ѕvvp;lj;^=ƀx^N6x!x.*. m7*7{IelQe4BKBS7򵌊.;8=RY1ZeǓ- A4}Nsy+K Z1#{ CpdGhO?Xd F -6;ҾXz7j^Ŗ>L[b+SX ¿G!b-dpiܪgWdnų@ط )E삍em͚&q`w3 yƅ ؗCN -@YVKpmK۪ƝAB60q*IN>*yuNZO~g)ګ R否wm驾IDHrk.ﯮAUeְm0;^濳olT ug֛6Qn=FzAF30!RX|OZSTziZw{"ǩ{e,YoPLJ5QR=cʴ'!kmrm"ij9M]C- 5{K`m$: *{UX!2gWi~66lOZ=͠T9jYAaF+}՟ȜӪuUG iU͒:k9U{6ɤ/ jU-d -1ne;H2*74%Ôz[ohB/:+"|]TqN$ӌGJ-dDRC5i$H>Ժ`Liuo66L[mz{j50΃  V -:wn+GBgV+ -uK!BY z70KGa cjW\EԨDsUP=RzIPcl|z갠)@]t*jf.[N&6C+ޗj=dW΅~OC rO٘V+,i>v4*9sb PD jj j!̰38ڪ&Xt-Ƃ0Zf {6 -hDB~|PSk*m!:̨kWw7( Bqg;Jg?G19,2_RߜfLfw A{ISi.-N}.k٢Iox#>WyH-4tӠE^p-?G%kHO7 t q:MfjU6Y&nS2uQ-_"2]}=AlE%.`>Lcmݥ[gő.- N7б\ -vUq/2IuuHAW)9bVkb -$L47")=< _I%M8V+#/pVא .)fڭLu&SeEV׆{.e *:*KUef$l'-hUF~zlS0R#mK(uN*+ .2"NZGB6Pѣ0?nCU!ASWZ !>;Kh*/UvDS6 -VA/Rm#㗀uЯ R~uRطx|V/LgeŀQ\B*0m' A"o9('<w~< ןr0Fr$RW=ܱ 3G@0!A #<*u(a:aI*Dkp^wcaI;˳}fX 5p5<=-8"6gV r0}qEC4!!Xa A{|Im+JxT!.&AVkjظ,N<'D蕰)[hrΊD3z,'8:9B:c"5x W>stream -E\Kd&ruL7`&ACfH-D{.BX8c rtȭ@sWc०aPռ8!1cKNCr4f[_+އ:A -&y8y!wqXşB/}LvrJ\vM}1M_Ӻao(w8cW}b~Ęe[_<,e_*㶰XQyB//SeIzvܮ6Ӎmo_~@:YUN^lP}jkbà%]~1;.&dH[)ƍ䬯kCxtx?MV5GX95S 76ϰ:qp3@[a7^4֝#ж7C  ۊW:t| Uxe0X|%jxpntڽjvAwfZoq{1F& nva(6:VZ1cG1dSkVؕ( dZL[-OW`x[E2܋Z\-:Z!9%yZuR\L\א;2Aʺ[Ę}@腙nαR1|نWs@0|A~—! -33_VAs]e, /zsw6{ "N8 z@ s ΁ %k4ƹ*uS*IaQ99h=sz0%%<e<#4RG-]^}QLut}w1YC$9Bt̼@gi.FBs*L,csm]!}?kϜ}Pưl|ɰ=, W?Gt@ɭ^4_J -z1jL*䰇ס럍<%W}OAcM5,(v;(f)6g-g_q`R -TقrmcqA8. ZШCXАy} RcAr{`ÉP7У {UUGM1iv*) uA$ѶpR!Sp`1օ } =Ji^WW~H`k +Lhh ]q&:BFkѱG fG[?z/~ 6I(hM$*Di,eAVM՚NpHzGiLhz؇Au;ti8-ȷN}$DOd攥&ߠvj.c1'Rsng^Qna4_ԀY(:K\~f_UH(yfu!߾ջ4Wc` bN!X:dXX )u(0t[$^=຿uCsj;]R#i5BЂׄh0B+ f3l\Dl,"6ǚ۠vHccEb >W(rݡBW֧CD#sPm~6ٳo/2 CG7ll"}4w -v27 OKCCuno@oDl{{3Eo6X'{$z1\oEo $-O5I~E}6 6ኮ{{ --yjc@.#e 0; t9vx[NKK ͵SOhُ oCĊd ·//+I/_8ou>Y@oGGp#zGmQc=m3]MGQm0/"X Tp~AEӹ+vnl K%X?tݦm+CB|B$nG: nJ,7 5[  w27{7tӛ"| QD$!E0Vb ~ץ=77rq{7&+•ݶrdhP<0TEMOq6ݽ;JDUni301եWƨćjg G8H`˅rmߟ- o(6[ru#S{A }.n -AIKÍlPZ& $hy/5hvct:%C\`PJƉn}rc'`xy<+<(/d& Nw y -H4"}ȡniv~Yޞ{h/14-GzYyf%3*| k#A/~wyuǣљ+`0Rin06q<4& ˹=:ߎ6dsaW|U~^@?XޠtgBi3AckXFW+S7Y9&Pϳ#zB PHt9@{doz5\/-rW&HQwRhG1Jb=9!W^WWW t+duniYR\/^k:QqD-b7[5v5ICٱe@ +.FdOp}ncWNe{9@=T2Kqy ]>}+3On?0(ⱏsK{Gwu>!_>=rņ xMڝ #BK&y$d - ?V5{x2(g3@ Y735o}yϩkƣl|h49^fj>^dC2H5쑏RGey>\۞_0ߘk ^ͯ3yGfE|mp,Z2(MeQ#ݤxu gckh"o%$/tצ䯚eq[&{4IBG?\H3J%{fChODy;cC% "@*]g :Bs0!-=d|loXѭJG8 |9=(loSf$2 !~igm,t!EtNnzeNrWqaOM}@ oʁI{(GrCj:w4 ' D&Ɏld{;?&m;D?K#r%~[4B+hg/DQu{6_Kh=9fBboYGBFe~F}άyMGY'ճ<&Av],v=oOt#%nB|ahrkXv=P_-yW1lt~PҹˌQeno)\i ֿBӐ!˖4Ex Zz4K+U2_/m엱V oCآŒya2?+X@\4cǧa91tKUmM=zIx ʛJ>MZ@ҭ;p1{o -:FFTrtu>&f(!ɵ0n1l$Ih֖4)8f% X*7MKtz^(.TUH6p~%:b}r)@S tg)8eBMĀXj{LdlV;S$~Ȧ3 }Sv;;6@LjP֕nwY"^|$6pCg:ٯ߷kR{>g,/V`DB*&%5rqk2ਜ਼8r&ח$ l0Lxm )|0.ݑ6 ^Fqxע9]sE@RLJ H%pG# z04t߫wC!5"KA *~Э?{7_wݣLG`KOm4z韭)ZN9۴g+fRy7J2m^ n,lwSRao[7&2i;(yKSNҵ@Php _`d*wrV Q^D$[\tƒ 6RW;js׸;8,~,XaC݁bj0Y[evBaW kI67i`fd0H5V،_emjvh6o -pܾ]< ^cKU"Ld"kZeX&czDµ8VN9FXfUj, ?2q8);|}gv@iCzXa AVy5(V@p`̶ - cTηSTQҕj+fx0;rώBE:mw4 nuS^ >Ok_ȑ4 1c- 6@\~Nchйm|a6N *4% -!RW6+j{Jjyb+?Fkaynӌ-׵s`'GcK!1; (u0Oy'6 (C}[QRtI2 l:::Osi6㙘lT -7'p'ߵ _\f?Z}c qqR* y҇(' FdhPPJcy(8]&*|H.`id#-/5S?oAGUA.,;`DOGi+d$U GG+], -xJF -%u%/*I>*@o0=' :t%@+E޶w(&v 6xS/XNES8_ 0. -Jf [qz0TO[r6XI1Y͉Q/t,Tt4b`um5q<ڋv+|KbgZ7`MFrSH2~j\3% ?N?,~9S;{\% 7 IIr|葸պB _f&9\I߈ʬ# eYFFZ 6!2gx_W?BJ0Lĸ֋یT.~`sYDJo]lCZvkg`5##qR7O&&bd k]3DG!Rk|ڔ*-Ԝৼ)&yyÚUͭб zH:ё},< ,E[-n :Op)SFDoH:dSia*%B4\S@(FӷK'7Hçw?|QQAD{$l; VksWUAI!`q '2W0T8Y?򥩊5)q+/qkT\TE>jU&1dD3&>@J_r< 4"\:>1II#?b9^pO?s~qUU[ʔ";INF -U"##/}q$g&&R41?~G'`}PG߀n޷!4o_A9<Ǧ3wFs:>9L]bFo[ż a5ֳ!#n~x\uRKIKptP 7)$1{iK^Y3E%O_Vcߺ[.ӷVܝmpsGc<]^-l[15N#DYȁeM(w̹8:(S0?*Pij46RzCSu)0g/@xTP&q@CV8R^"Ig ٜhF/ RT||Z=6k?o@U{|ʽ80B [&G_IKDIx>܏{iloܷ)X>HuwO5yW HNoN';y]/]Oc߂ H 7:/;)hKc'7;{$_d iAF)02۽?zSI3 ׅxIxkbx%w~U(i{pH=qjd[]4 lg?f*KaFLWc-&9Vw H@G1;#r%ɐzQqzRDV+.ϰ?iOjgȴPL~!J/%PӇ8B{ aaPANQ;BPAH$*={?͎Km &To5sJ~3,~RH=Hohqz_hR0Y8r/wguİp3Y`6+| CƮugnI5Z!YOx\Io@@QgQ -~MCM^dY7PAi85 =O>e -HT:}Ǿos?', ;x0;y8 !wi?0~j\±%՞]E1#+ȨwZU=}P=k!gޚT!y3;gli~q2#|gx͠M)P 4pR&&m9HW;(o G@k"$T#.) *5FYFa+PRAh?}xMܧ4qKqD:xj+ʝtIPE8xX50m, K;3\.uf<3ZgH -B:qҰS]pX&, -HHZ7:DHP_LgL_и1ks]9cФ 0xm4SwB]2n6 #ÕFvvNZk'ţg"= -@8"{!O0vZUHw>P_5ęFyO"FޯƏ8=y9Qe!4j/Ey"#Ás"\H27}"|dQ/yiܘzvˀٸ4r'@E&9|\Kow^Px^mS8*Uiot͠b};5ˆs_l y. T4Ƚ[rqv:H3|n?6;(+@^LF$z2m#kqwܽ͠u옾ZQ>~RϦpĕ.qe4M`\ WVԡ5q&~:J^@uɾD H@zJ?48vM.$ijnEBiE>k *^*=u/g3"X::S+.m"OASw'ZB0m -OD)ȽmE~IЖR!yCXT J4IŻwƿgߜ{kX//$  <, <,F|R9Y:<$б!u QgG ;b>_C8"q(_F|rP/<3e~3jg4{2ow |!rW6qosP;vrC^'1 L_pۄj0Qmu_ D5pKkL sfș1{j bs{C~qp3̝ݹa^X:0m) %S/& \"NƸ|z EB=#Vk@"(mZx'}%z 0ykAygЬp2,Fۀ8oudLZ;8i( -ONi LLA*gD̃$?8IGJ(U$$ą(J<(2,F_\G~$O`I_/)2}m#7`:q2yl>}?\=,̗D U|i<|&Ov3$ VHGsroueaI ļ2Cm#ƾtb\W2.P$0 -w< !qq/u]Z&͖{a^̸/wes  FX\}`fߌB7/[ƍ{ul/r}c_; g yF.$ RD -J0~B9F/YDH#nù-m+o_jόn9Zh6XO9̻mvc Dou _67`qxv >~ ߕ79ssi옾7El9īȄs<̞ZwXg3}A8/f7;HP)b _C_IMzn{U~E># `M#k>͟3~p=z~r$6= s4q_2?,}~ M3(w($6_:sweI_2ۄ51/VBAI줺Hj;9Dz/9ayMyIߌl@6bh8u1n3NCw׌hܽmq`Ը8u4Q(!]鵋> Th aC6Ӫ^v}${>W(P$K[A -ŜĺfЕq]p ]dX8[õ-lֶdLƽxȃq]̶4߷,wMyܻ,ׇ,\V0V8FT)h,9xw t3mw"}YB ?` s64rOe?x` y<|Qhvh#xazG[q{yOCdB$j;. NH VX L@J༇߀| [cH?A߄$q?ơ>4(?~:øsvG\w>>D=}l|鼍ܝx&!޷ y A~3yz(8g*$}*Yi<[ >$<{_ͻ9c;< 7v4qE㸗$6߹O3_h6{3K PP(?ynjr ;‘N[{3Q?_AG -GfŤcb(s0ޭsovMM Hߴu>_5޸4>|!92yq WV~d ø. g40ykt_Z=C7<|x.IY -7_f0I$>&`$߀0DÃ,&!^Y,ХnYm~q Y069O˝Jq\fͿԝ.k9 sgfۄ Xc- L ͽS8R(T< = ! VY}[ojf/m |y!2'7v5K#g2zn7M`mv _}g[N@6v/ugtM! |[jmK@^fyH _曰y<͠]Xg8w^sw$>~'91}m `-d H]i1oBn:UJj'}@>*EĊ>'q¿D*S,.k+A ot?P$iADxݭ3~h/NIU'"~ƿ3w|ХDy>Pc ƻeA3|r7]8{$/A*pĝLq/ ΛLqPLAܨp?v6 d>w={imz@5q(?" D(DqGO3gǾ\Gg| `΃ȇeHaFPc>e_pXr3\qXY1~ku u6s_QϦ1k5V&\/93wƍSgټ_BVcr.-1~lK.Nk/uguׂyu1 ^XEf͖k7޹g93ۥK߀~c߿7_&0%HmuvM}#qn @OtYJſ)5(EN)Uu~}NB@j{9yzq%ұ?*T TCyXMً;s'ߔ>8q>|8᝿}/I}r I? oI85thĝTKGܗy;5{0Iܻq | ;c<6sf|`t=xX̫THPMC>/O4̩Z@ X@!Á. \-f0?~!A6uxM?,>.~ }]3(w1}iw$`/mGh ۆo]p.u8+ւsgB8gټ 8ط .x&vX4pvo[DZ;{(8~9fyon'?Ϣ!tnoo ǽ?D.|p!rz-ï4yX ?iw:UI_<3(:ۦpaR% %`΃ȇq]sfе;z~GQ1ynu ÓBA4l?PYG]IAϮ}9CV.nNm;_pa˃F/U-uJ.{`0g5$3|r7svDyߒAƏ4 soDExLM'w?`Ŷܛ0D):"²Ľmpx[b/|e[웟]6Fn1Ǻ s%}2lͽ ܯ!4rw K|D$N4g|':y C8_ w0 $Npy/cۀ ߛ-fazoW2 ߀?6&3s˹2m5&Z  ]}ACɼȾ^̴25^ :^\9քf325--؆>AC'm/ 8nGÆ„.Յ`Դ1lB6L!]۶qyu ihaВFr6a<l[=mZԶzaC`4lkpK.,eKZSKSnR֒R>44kp쥯7 jp2KTK jpδ줶RVV[YV[YKUWZYzgcKjt]58UՕTJʊjJ -k -ljjjjJk -*K+uUe’ʺʚjI]eUYMIaYmI]e]MUIMaiYMIeY,,*+,,,,,,-)-+,*-*)****,-),)-0*,\UvJjj+ Lk*[U%cêZIeefTWUX[Y,Vvk+jQma]e欨*-,-UՕՕT6*k*uEuuu%E%uU5%ueꊊjKK -Jj+u5eEuEEeeuUUU5UeJkJ - +eUںҺ^imMe[٭V6[%5%^Im]i]IMMeUIemUiaee-deRYUYY,V -+K *K^]U]eSVZY*)Uv*ufl*JJ*f[V٫*lU*kNeTTY*Tj*ںҺNeXXVSY,+,ԕUՖV,-++lՔVTUVUVVT -몊*[uVYiUUUUUMeRUVTW[TYZX[Y)*),+*---*---*,TvJ*K5ʲ0E%nYiYYQQMUUIUeiUY]QQQYUQQaMQQUQQiieh*)*-*,-)*-+,lV*{5E5eaJJ*;5²ڒZ]YMUee[R[[UVY+--+*xrGLB'jЗ|:RBt^iM8e7-CztdAYPlJȯ^;^= -5Hr/C+=J(% s-Yd0\J(3E4M;:Ɇ:@9Dl"b(DUSHe6, y,qcsc9Z9g(\_A U AR>Ki/ "NrDݧu~k\ +TNE zьԗO/>ub/-Os2Ɉ?%/(1a@Yl#]9hb}t4aʉ'&nA1R9UmBI|AI(dxsLD VI4 bpŰ:!;չz-.A{U6V삋[I0 -peKƑL3FG! | |QDWIL$(ȂIZP&A mdp7)s5 5$JB6.84UPIa D5S7 rXr8Lj0=d8JF{p慢nr^;`H=ržulYÔlȣt1b|h<6ub+#,lD+z)t"!MNW&s)YRd/N2{Se0iGWMR4oLIrY6N$+27@|r -  =M'Jr :9r B䤜J9 *$RZb "f}8D{\22Y8+^l+/_TQ8@F!-ӐH'X %'k(UO dTa?b=aJ-îP *KqI6A"O,dqe'dV2E@i7Ryщ^5LU6I&6|"]DW'q8q+'D /2. [Y\ -!aI8%dNNG$OHW' (o#PWrQ%vb#`#(M"~Êf*j:`"7*dPUZ`f!z Ǥ'`rFJ&%u xhH [ O | -뺊[r:[ʽS_pr#3Wx9ڕbsY |TrB3 ffb~}H J#5(S2/ɍJ@#:ȄCJdLn^. !1ꨒgE UUtɣdCr+fC=\rElɋy;Qd!U*}\6:ARRS94r%?r#.#]|PZ} Šw`3գAYV6'hmGfr )iEW6Kq2Fb[S/ [SXQ (He?"B& r2p>%Fj\AIDy)ӑ"'Yi&p-uhH#[{s=^_wN|tQx؃Tؙ1edw`ؕR1 9 d~+@n~8xԍD!^BY_DQ_<;)F XβmTb'{pׯ%$/>"8r$2r$/3,uW|c*TKT47e.ylDSeaUwHaKE$IWy,I! rBB9Uwٚ ȓ -YOĭF9A6 -܀%TgTZxoܰ5HxXi Wќ{$l^L>|%jgnV:&*},Xl 1V"[KV2;0Ub#c|$ 'J.y4Bʙdگr 0EůȩX l%3[DQӌQE |D@ 6=w,eAa?c$ -ndR̳5aҵ(+5R+Cr` J\ 3 O-) `Z@,ILQ_B!a&ي%}0( ò|dJ$JY0KLY,}tјysj9C%N$1DD> 2X_ݲ$(>Oێy HThP;Ş,sIN#|H:K_>C4ӌQE230IʌHG g$oʰy"&s$]r(ĵ &b 1qQRZ,*f ӜoLZtGbuIl|%2[ʋō7Ya !Q6D, |-ݏ]> 2ؒŪ| @c̘rTbU>)2j'AHMR(3& xR%|lc+Id -j/*'XNEDYA]h0B[UStq@)Yْ\98Z57Έ|O1ĬpP< ?J<)R\tun 3;%1r -XJ - rײȸٲа]KS8O2hkA!öþn^; Ɲ[YQwwMp573Hpf(pu(ӻIi -j%lM3.[꽦x[D8JۭH6 (+չK~c_ hs?R͗xIdthQ?c4q#b&Jɔy 5IYVjV^̋QxH#Wp?Pƕ]s؄j#(`ݺJ`uka -iIrbxP H(~* !gŃ\#(xe X4^SR)HXsjUP)%8lu!y_\дf<2P8~,7i\ X,N8iOP"ZKP)5kDH 1Q6Uܫqdn%j".D ;is=BO|KG4ƍ> E*wz.!iDRqE^wVZI64Jڎr6SLJu纎ˊ}fLNm/9(8':~ٔ6VgL<n'%l׾Y;8i!3""3"t$sW,Is]\S -t'3V̺❀r1PײIQ^C SV.'ҹ { H'պ9Kp%vA9'BYG(JG(JWh"jwY)`OT(Y7.oDBi- / (M,HF?A׶@J>3kׂ{EG0B#X'P6s]IJ;6 SNm -N Ȍ"’J_8@u: A)0+ -n@y%S/n߈|K -"P9={\O&W[娴J4LߩQiSBJWRJ@=_0m uvK{ Fd9{T'VşLc$={ߨPG̣qA:ǰ#hgyH%UmeZ's3$hL}$Z8'Wۀ|` F0F^ģJ!MA[HS"DYɸl\Y7jQi;*>#8q9XIN"mʿ ΍2 |`p>|PYVbdW26$=#!.DI*E MX׀nS.DbRXf_`Z60oq$r8˃*rNBLA^FYov\@0!2DSD|)/s ˾/f6`9ODL BR9"^8q (ew -qvlF.b^-vإ/tgRwV 7b9ms)Rb%(~eΌ  `\Q+ =%!G#m#xgx=zl=}LD H!#> 6I7$` <@z' = Je˚'\GDm&Cۇg/=(5kO\eònREFL BB?!S*ch;P :JĤ?*b!NL$1)xN#ӯm(7׈%ְպI7@@%uN#θB."{ßDzqyOH"Zw1V22k& cH;#vw< Æٚ sөRXO?Qߙ M1DnY蹄|vhl֍7"?(0 ý?dI?*~Ƀ!si -< !A~?AF)5uD.oSp E_p#xG}8;Fum𗺳k{`׏#෰֪9#~w X:Gg R1$k/"k.*jCVu3ZEB FDD?8ļ[4nP~ -@8HfZ]ܮ(vVtF o-"4E{J;Ϛu%DֲiSM/Ž(o:UZ62m*WO8T$ୀEWPCw$h$Sұ Avcu|1W;6+, @s|wζD!MAtX:uTBRZFEՇ9/ k:X']!0<""oD0q@}]'S\E"]C:s ?+(}=0^Iȣ(D>( P}6ی}Zl-!^7PB)5Y5Z02$#dsaԸAu ˚Bݔ*}pvBF -#D{F%~U]eò0Dt@Dc:z[!Roݏci߾MxEgb/yQR!"q'|1?,!(!P(4b9ύ+SF|jMA *-D{I9U0.RV^qY'Ј@8w0F:jS RJcȼ/Z Η3gzTMn @("~EdcQp7ߊX}N9T*Ɓ&94ŭ;?~_3m9cRWFcvsy*^*$I2vmxch~) PLK < K;C(y̻cjǾWęFy]qzu\ (=ḧ́:pX'˰gź2`pMXޙԣ{*jĹqY@=6^(3~l`}ŧRTIcoej0] T .1^iv($!1@Q> ϙ )5dF  >4ZthZ9&T3ه˛Ycl]Y'8'$p<)3m"E L9b`oPtu?}ۢN-僳jtO?*xbNPm\C4Eukq'qdtBzSP)")$bYOJ(x?yHıddU.,AC<38 K6fxr??gرХ.pgt =k~"Tםt;k/B6!'4̮[캋m hp+d{\ KNS;)> >~bUG7*X7}$q޾ԝ>~7v& suù5Dп\u طOfsŮ˝!k 4{ºؘ֍cҼ X?2z -DJi9c;4z/Ξs;y%^Hkl޽Aܻ.o5њљŤy9uM GaoFa?"J5{& Yuy:3̾)sv9Q$g̨0:ོr0:w.z]n7 ; m -~ CFm"JBf7a;O~S{jc#I?u@={׎t_ȴ. s9 vԋG Em]AhmehgjE.6*6Ϥ-)hT -Cw26n `fwiv4;>tD"ai,y<5ZON=<|ݶڎo-gda,a\\>~\'D^کD#7`Ŕ+ -s7Xmhj @Oa!K>hSHvst@hn#mKI)=բ҆x_XrZ{-Y)%$) 2B47XaY?h 4m9V4me3mxe_{GϠsGa6m}aָ4|mXׂm\[ /^ȊJtQU+'V \/6nSDB -XTT< -WXPrw,B[.tЦ9Q5y`&X!5V=6dTHnGh 1y^MHlUCr+'@sG 59:yīL'3WT. -m$Zhτ5[`ͶAny-v'a_ʹXZaP-$p:M!QQ!1KmH3u@\XS00(p\ -PDE=} :4:_Y@\CHZ\X''D?.~(7bdܩF_$.ǰ#48Xܷ_:؄ ՃԠgQm is&?5Ώ)}@:BJUtA+$J6Bl՚dUD4e;`t] X PŨ%(|~$# 8UF{, ABaUl7/=k)}Ƣ]3MmOMiij{,.uic}KCàa^&6 -.0 … jAoД D)V,,CgvL)N sL0O#g, -YPg.,\%k:utڨYN+wN|r:nZʊ•(\\*u4WTnהUZ  ʇhGE$F0Ff7xf$/,uZFd*T5eZj1/3G;x mƺb]^cȀhr[Uut[KaA1aAQoLLdLBW3өb 5"抢P~p$t~psrQI a:xuuKSqo@6+s{T -^Dr%T`FP_v\KO,;Jb4L2Y۳"QOYD9m'`ݢ58 Yé=q(5$k#SK!VmsJz4Np*B 0X WPkVf&]Hc"pĴ$<~v)#?q&BƓǒz*7MߜKi߾`ޓȇ>5v9zsj$[zW -/{mrF |v C?bЕp&!m)XXyCPUbԅ=@7 J#k;\A CDhWRmNjfUdйꮔؕ\ -WZEj1`|RS8J?44)$ B`BPX\XP0kpx+o#k%ӱ=魗Vi S:l!"t%!\ - E$}Ch&k)È25WUN#ݷL lu.\X8zό #aO. (vB°wW ˁ̰0r((oC^.uP)x9ܫscR1qTT`N0@ukAZ-*"8+:8J3ga=9X@'Ra9oZo+9t3Fؗp{F| ֱ"t(Ee͏Pq>>cVL8+)-N|2bDbp>A:(Qm5 ˩Tk'x Pc#cH0rFtѧld>*$l9ro>}32$1YȵR !qքFGShbYYY ޙKZwZlú6 -zX :/Dг ( 2\WL>_ ]l4&$"6p(#:+C C+; B8A\-&gMJ BgdǟĬ+K I(7BJvE+I~Ŕt% Ò -PD=s΢qNp=2@1i/%3Dن#ȏCXZֻ۱)=k[- +B@}iRh(h'6ܬaAїfծ!e [@Y[1U#r6znw:0rfDHtţa@#%Dz Dt~`d gBS)#g:eF g#RB[Q~CӺܗZ&1}jtYYaK]ZX̷Ò Ir ̃,#쫼 ċC9K 60dl.Ka(ÚR*F*H3$[Kfn - hj2kdSAܺ/%D}Tȕ eUI o#||zl=^>54ܬsUV -$NZ=zAp^03X0VEfēCQAb\_YZrI91p-Z=F\. s}$Bt-ʕrAIC(YWRJ#XUy AQMz5J(H4P)"VS\w.YϺзb~a{ׄuwQ2oo-V࢒sDžs#q?eگІ$@e*^ʮ];7\]l -3 \$X*Q@,]YaAQOKa -+{MY R*Q;#Skc1QvU7. _60;dH?pv`Y[]1%#TʹǑt%[jbK$$Gݕ@ L(P 0gFFUhAOguOi%`:6%eslBAT?+|A% dEKGq\0n^Vݴ\L۶z|,N*V"WIۨx:! - Qic2껠z(>/)AQsϪ%Ѝ t&)k¢T<|hpڍ`lo-hf`` -@r1_vxV6 .SٰlL;A ' 0GN`}ḽ9_:ktV3@82Si#$zxuzWD6[+%j WVܥ;O`X˶zj(no`C - - q,)kk.Vbˢ0c^S gH=^rL12F$M @>)[2 0dRhyjunn5tԍ\v:Kw1u<n0z:ln) S g4 -w|.rݹsɾ\ʶ>}Y11N^ -bɅXҰ 1 -h0~IAX 3STQt#U]rݡkr F.Sma xX7%`, -І -$@ǕeW02dݲ_B.(ji:>% `Yͻ@ -4ړTչK\ XVZ{r:&19RkaѸ9v 0K8?H$.Qr*:9剽Չ a6oV+bK$N<LtNC 24x=( n(f/L*3t~{z .A?p=]S p@YA, YB(- $g:~H+Lcs{gYQk@2]B8e`q&ڿ[0+lSHŐHǢ4abr(de,ܴ21`sG\6-'Z+fW\y14.@_Li ZCt~]:LQb %*e -!3 JaIZHʭ_ z1KpP`_ wrd#^C0@@i[2,Zgt PPNgR}O~\ցnkzUOPgyE.?.8xKloDXt*(.T|t` 3M~%h(cP`H>5/n,К6|0JiG0ՂvE eB*\pAcL@*B)!ΪS=qfg~WA]JAP l&-}~B7w]z^Æ>VmV -bs9Xd"$WβeW_n-#P6AH - &@(UfQ'؁L?W7Hn^j~ ^(l¯LMƪQ/)J6w]B3k5ۣH7L>Z/ w ҋť -MVI<Vu$ *Hc~[7?[ʕ.VeNAK(2:Q2YCD}k(OP:&as%-7FsNZ: V^,0ѯ)G%t%nEK6@}ŧDDNe` ?XTC #\!# ]TRGV"܂-iTBu؅'(u$<8}6%Qo`#u(~:7Ӌ>)F ĴtlуrKO"z_58 4,"eIf!o*08`~uhic<)zϏG:H.Ҩz({ cS/YUQk"\GD(W u7@O!lNWt%Ӎ>ȥa{^8E(P(DۚCtIQ&FzT6$l%Łd3l8Fp2ik+UQ-j蕠50G HO#!- u;u{:NvwzOiXy^c^E@ `,re0M'B48 g4SLI/>!I%PV LjB6PTԻP:mF=.ke t:-=rzUCԇ@]ec;3@݁dZY0w L_F0 { q41lȣT1G(yc31'|"MLF0,0 9(,)|)o`]FB}oHɨK8"٠1R6EP;43F -M,{drz}a'^@>8po љf N/)>)E_ bzO d|: PWF؝sN: %!a:VH/OB!"ULBPABƫL0Jd2D2)B [TղVԹMPS8=]ʦ7S8?'g u-২[ u!ezo ӓR k8d^]qJ&qSs#)YcҋT\d ,e@781opoXzmTmppst AC O?ӛ^tOWt}:NjH.@}tkKqB5)BY,Dl32!%BK )87 -h53l#!1Dd2U drjPܪQHйzgu3cz Mw0>8@=@|e" hBcf"8\?:t~uiX&idMS!x&p 0s sm:N;]~kbݥc.CDH2~\x4ΰPʿʿ"H*I DLMHFLD>9)3Ie2L]"#2)gQ1`aPQoCt>g^Kw2=]`Lw0wNovcI5q@*W6szmA.R$5SH&c&e0q$f MC846bh~whiXE&؆ 12>%C} 8Pҥ3$,aa t' { cMla0{l,/+[PXy_lW c881ofH41c3'gK. X)I -ۭ%LADF -]N‚4gzM0`KK N:t{o3ݦ,uVG42/̕ v}{2SRQ%M0yp;H\zq sqHقgdqe=d`XHڸ9aI|lD-gXAC/t+΀gu9]t.gK{{{o/=tNo:LeM;u("W!,EUI ʿK`fDgQȢ`k̯d0d0,.6R6``(9yx4S'fMLFdFdL8ɏ1bV XGAUS=NR7tcL6_K]:M/t.gzNKJN.o]?b ػŠ/=!P|h-\q\+ rc6INJ1fR7,7h8 - {y4jI؃˃EṮSF)&bN!!=:#Nq,J*ƕ2rt2]YKd58t58u VVՖVV[UZVZZTڙVZ*ƶņFeӲʦa]eEeѶ֬QkYXhQTUZY))+l] ҕҚYvIlIk)[%5uf'u65ŖJKJCۊҺFMQME]ieЮ3 }gڵ K٪ \kjuiotsXThiXkXgXSYZQY[ZgQ٬lTV+++jjjk+M †Ylj҃eXeSePK.l8 458gzg躜 Rxɾ U L DbLV#I-Q9`z;2] - @D+GfII51fOͦqy?~ -_ -8VyKֵ_b0vlQ'! # #ЯW*5>}?'1϶I$ -w{w8!$*>,BMxylT Iwusv#t1I/Fo2 X\Y9:ӱs[n´Z'1ΚA%Rai^=C^&m&SC\Ity|쒗sa&D?:O:D^;NBAŏ Azr# !"zR(Ҩa#VN;YŹQ$$?Sx (`'-5ay/!y'u=' =!Dza`NH$Dƾ/IswФ wvu~z;% N4ڀlx\MgEP7MN$5_"̱DF4eB{("k-tQKȨj X:]DcfhW-.q'C\i3&)>BYkȴ`D9v:,~- -Li'ySi"4Fh7zoR(SnCIS`Y U -ºF0ζ :y^Ite.Ao:z{!g_EJ ILo RJ=@i -?jDߺPýsf7:D/SRMP}d8bQ-*m=I^ HCopD,K4̑:c̡B(S,.k-sVZd}@5y j!MA^ -=%7a{~+nX v̥.q |N"-gAFJ#$o"UM -0wjvN\fiɺje\욽Hm DFIiMբ>@@ݰ>D̉(iQfMH>,c7zf)OĝH?R;DY<TB9 BVB?DY`̳X&pw7 Q! qQNBBOzmk7`i5SH:gJ/(^BJ]ᕴc>,u_lþdVZqy38KP2:?JW}E"3 NZк+ Mh2]"eq1@G^Y踌H7eni-gNuA@ti4r`tF0±64=ģOUP8Q%!.fds1|+0yi< ocfW8c<2cѺ>ugµ%팞ٛt.r]E;:wQ Lhs2{o6߹D(0|h6s[άk1{lG_Iˇ$ cCO0#}~cn9|ƺٳ[Y-W =I&RayC.N@i#~olֻa_.|p6:'J:KH' )=$"\ 9j#nT9XFtgfˏȅ -v)u4G DO_Ȭ@ldW.2 ?L!x׏QOB/~A~I0FaQ0M?~BSfةy#~3+1}r?6 `#m~5̮e9xu 4`J彁ʇtrQy/8x;Hz@cG r]ںu׆C?#I6U J{Hs;; SӶco9`׼X3+BwF/xO?rAXqv&LwC8bTT=+EBr0 -<$Yo <=ėHE.c|d_YθN00C9$a%$ē6 $0T@2{m\׎S@|ݜq]"gFu ݟGA3_MAZR_a(N/ui^T굊AJ9c;+|>*5A4uuO$D"tS0Vvׄv, ʟ$J؝\kn/ݗk;.6ֻ}*בUfsoq]@9p:Ə8fRgƭ g0k J_3z+kJCv!@b߽s, } ;cxr[3˱q6Eq_Ҷ5b\'6Da~'֦Dπ0yi7_ -]LOp7DQ}tPI1`a݋kCݷ 3wI/i?zeOƼSx88V5ij CO<+A7:ƽT#iv2 sJ<)0 Bglwu/y8-#F#Վǚdh ġ M -!"6i<{aw -cn9[ `6[xg?}Xhuzo&sV'04[JUaio褻jU+iMb.n&/ Jy[x%/zA -I{ȇANK}Yh?~K\cETYɈjV*}`F4ძaj%QpwbU8sFxq #t:={v`_-eFYHR{YXCvc g4H( -wZb.tfڟItInOsz7 ]Z92m  u_ -0sktc-k6$4%-msX0BBtqK>F[?89;yPoxJ5a^=!r9Ta?}>. -F ^MB8Y56k Q -E/I_`rBLĈ^MJ' Ed -VŷVͺBR:V"?IT%`y&’[HQ]Jh~+u'v%vSE;m۟˾;CHIG~7L6Fm5ov{ H'jUj?0]* |">EWgJk[7:i% =ItUs&$o=FiAP{K=d96_I_ah0{g3}3X/ti4o;>ugYRwf"t|Ӡs3dmd\r-,18w8.8C&?E}V퓜~roRTPKzT_`fH=?DI0}v\;}ny &uOe"w6ւ`\]+j_=eu W-Ok(7XOFmnu 6qo#OgbU^CXrp,~Q'=AID=asjlZAi*v IeBrA1cERq AJ}*D" -?~үY̫w?mOdmq~oE!S|'VC/qhu[1,\Kwȭ2{l[GQFggcXn#ئ}9_bJ0];6q -DN'i dw\eLX/(h%1s_<* cahlK%OîcBץ[θcowɼ =boaԴÄ`AВAt΢W~m˾rfV@ -xv/&僝=V3. v70h-ALHR)59\I t*-dYx߀4.6<{uE 17fpƲ}-6D_4Isl;4nsdH pfd-n؜vlL&,2o@6ebl2쳵|rNǞp˙.ofܛ0-F%Dm%9q ֍ZR'$ r>0B9[G1y>^ǰG`(֎Byˈa1o7Ws9pkqBw6u4n7jżBB`@irsNCgOFR} 2@$hC}pOo KNw+Qx:c>Ps]δX2I7$jx7`AiShb:s]1*l,mYdl+G7try$O9XHA3T k#QpxgA7Tǻeuds*IsUIzY@oz;~KZMtYEB)^GkH "x [B*m4^vPnCX\A>~NX@ ^3JФ[es38̡ineqwE{nWR.Ogo&"-x`r7b`elc{T -R5וdE3aas90Q3@a7#} B:^R5D(^G]XT -SR WBl-a6 -6t ^W˶a-j3ٍ8Q -(A IGC`08Ăt|4S191 DS:)c8qB쯳\'3Cפ3dRM~sGܬhpMh#,Oz_9['䜾 -2B͹Tjomo oyE c>Rϲ7rbE>)2G^WLkq4˺ 亀^fQ?n_RTЊ)*v0_FMz^? ,{/ԫdO}=btա,e, -Zx@ 0+c>#1ؗ)gTRvX@#{Uz@bK;[s[_=뇋VZK /.w/Qy$ΒQAvOÅi>/L}߽B}21ёc6d֨= g8 q&q}hc@~ֈl`׺% -wpoޫ?~|t~K~Vۢz:/~,?k϶_]ksàs -T|y9~,x G f]3Ys=( -AE^3\`gM,^j)-ZR^{ 3\>Հ#M$TsgVu8WkwVnn /h6jzFHN: ust ι F=n}aGNwë427ae$ fUh抳ϡ>:N8i^˭|_hNjMGd>{f%Qڡ6革 qMpmMۍ)㪫<}){!?4%q%mOvegCF#K3x--x5_HC>ֻޘnuQ`xҴhnf?sOٝ&{IVqzIfH?l9Hwhp*Kl]N zijJf>6Z㱲U ۴~s=pxDpǀ.^so9k/ ”:x;$oIic}]?oFdM9돉}3ܴ`w20iQ C}McsPIWl_=zPoX0wKr;BаʛN Hd<:^ۀvEWoh=lũ[(;˙լn1Ώ} .4Y_Lᭁ73J{ Z,Hns<c釞gǠ.Jq!]1{w#Wtl1@s q[wF {5鱢jhq:h2#il{1rrhw.H>c,mԷ "ןaEC*c'*{o7y<7^.(^Ud9`cd7;"g3Q9Ļƌ=Yv-SrКgS$}?Gj<.C_m{}8ˑ}H^gqapq;6h @}<_x˾y~So[7 {TvmB/=0gЍ4CǍg5Doݬ?4O,B"4|6\+vc/*$k0`ſ?FKtėR_XRQI/M F| ĞÂ`1inq=*6!Q7\t%\a8W_\f+EQ}92|K@LiXȝdIF-<_c`XR5|[`+8 x -0?%d~R1YwS$+RDѯdiܘu;0^GPaNy-JIyce*+L/gKaWS\n#*Ch\ȃ_$wXۻ/bq&?//<&*[ziХ7]l?ЈB7J-6ӜwlVtsӢ V͏JjòM*bE͵y\[f0g%ns1?|=5'|S`C*!/oC7rcXevt6 -:(FT!&u`r8.g{~J۵X9.+IXXfh6{}6<$$+@va%Yw7*8*YZɣTY,+QZc/-qM'I6^H* G**9K +IA+8}sByzXqNH_u!QF6 _ؠH.:h#x*`YH\g<teǗ\yI0vd`x"@ {KNal17 PUd>rvflGBkNU'dND*L+sES) uMܲؠOmc6ˮfgso/lzF{Y6^uw U쓣!!DԾ]yx@;4_ͧnc-^$zgKNn*P8Ŋoðk"٨)Pl@T+v3?c׷QlŜh(>sv/wИtg/V21أxi X@inetPc5(7e?cH-7Qϫ侊TkvSz>H㎽ L6bȗJs }d@򧃿w)le*ǝp&Tg5YN4 v C+=P‘EB ^ :S: -̌cɛh$G}Bw'Ap'U/6K 89K[_͟^2 -_`B 㘱e]8t{ r_S /-q4`PmnD4g '+d3-Az+6:(hA' e6(]:u_lx ]Q񟅬zY\Cjzx)krTbC OU*Mgy Եni|xR ?N&*|=:q,v-0:ޤҏiS$^MdO ۗ(9ЌY=p11d9Yz;ksV>QltP>+Ye~shChU/,)qDr;롪ïHfk!͏o=nrdɩ[~Uѓn gL:`K{aL%ep[)G0GjJ`(QJٯGC"X\f̺LFV`:%B%>FK} Ǖt^D΅J ųP|1g ̏?s}R?WF+Jy]8v 4!b}FRcż+lѦ;Wdwhf "Ҫ"eN ᐍsLf(:1ͣ[Ovld2}@;1YY ݃mtgvhٰ_3葟f#rxiE> }7١B~g9|x:2?',w;kDX  -(az -ʉi5[l)1PϮcp<ӫ@ өŠ2~k ™~*l\#X=!Gb$\2u| /K pSXlRY%hh |X@'su֢E1W]N#ۤ3x,DPҕ=idx{s4CHo&ĄkCWOd̿4JD* _MhKBF#] Ř֢D.ǙSx芜M8$%D\m)YjUr !|YKGesGՆxSrHEΪ\ )ty=I -F/OW=''d9cÝZx^h+x>q l昋xj"rXPǒo 5uBŖn]ܩ1K9%p "`Iȷ­HRFolƄ Jq.T}H"&Hv 6`] 6C^ٳ46쌹Mh -+r= "m@NPq64A4m|SdD pDܐ㠁opXG$Zq"QnGR$3% -i c`8nl|>?͔e#h 4y%[e2w} aY9@FĵEt|-Y|FTٮ2 +qceVb$l@@6*]Wwg0ɘE/> B|7pEZmDKXac_(f>4rӿ@ .-Az_9ZyEdO40Kj!aAltf$j؍13K>I76*h8'As%x;k3)z 1=Pb}RaPŵܦt~㫝IK&.K*>F*//Y\wHWdւ\/It6׉~i~ e!NdX,QC9V.٥y d1-@pT8:jD(b3Q"Fu `k3" Cm˰(5v#eMx&#X0o oQAF=IEKBD|>9@DBIl5n_R֤D7/oQq—q k7Q@+9T:*/Þ:[<2ƕH焾X`4>T}孧&(FVh!AUs -C0[&hyzƩWʵ ,WbsDMq6KI({ee`c&80K/վ^wJk(;3vh %8 l,7N>/kG?vRrzl?(2ކFBMZP ˍ @R݅ G?BkP5|N bL<)_z خ>7v% իjMQY۠~AwATvCltI0R, -d -285b0ba46-6268-4fd0-9c29-ea2395074deb5a6bdf99-fb4c-46b2-86ce-6ca44a0eb8944 622.2523720f1c59a-ddd5-4dfd-8949-200f571b62f1aae858-f45f-46d8-bf24-306636262cd307.46125343/ Q!"< t`&A67X93$}HK0ⲏŝlj`[ q-I0Ȧ 6'Ri=(qx2 xv(9p·@ua3s ]H9u <D<15cd08cd3-ab2f-4f72-b7b9-90ef924ca5fbb8ebd12-abe3-48e7-97fd-0a768b051942895.ml10SVGFilter -/ : -/XMLNode; (xmlnode-attribute(fnodenam/Arrachildre(ovalu2 /Inttyp; ,0%xyyw10widAI_Alfa_idh,baseFrequenc.05stitchTilesnoSnumOctavresulturbturbulenceT1operator(in2SourceGraphicinin2eCit/Def ;44fractalNoisDilatazione_(dilaradiu3eMorpholog66R50 50storsPixelcalcModesplepeatDudefinadditiv(replaccumunoNNfillremobeg01 1;20 15;200 200; 15 20;1 1 restaralwayd1anim1stdDevi72bldeGaussianBcOuarithmetk3k3kk1404212feMergN2linear;20 20;diffuseConstan1surface51lighting-colyellowDL;green;blue;indigo;violet;red;oran5elev6azimu8feDiLspecular1ExponerefeSil010litPai101-1y5EffettoLegno5dddxoffsetBlurrednOstyl(flood:black; opacity:0.FloonshadowCdwhi350Graysmatri0M--OCompBlurT1.CompXferFirnentTransftableV2 FuncR(.7 0G1BCompAEroser66(-5-41OmbraGelat1.bnybn0byChannelSelecAx(3sb3DismentMap(b40 11b45romfreeztto8ccccc8ccccccc1cccn52244x:specz-2000z5xy1yPoi101y14_3688Sfocatur477tatic00.CIrHP$V-yAp@ ` ` -b!$4d|ZFy9!-k -~u%r<qRg3L弋g0a[1gY=%M Ae@Hޅ8WΌ1/FL2 EsV?bR?nVg幕J6631j-YԶkH'n(QQ Qrf^z"ˈ Q_gZ*KZ=LmBjD->s'WИKO;S?[gz LK/2T*°2KC aV|c2+tg`vƷ$s:rzrF01n-W+I+'ZE1!TxW'jp@NC-NG).&ɺ cc]n )U"v=k6 4CӞgK3gk!8L϶tH`QҹEJ3녃r2ᱳ)P |Ik8_ g:y$bF̔՛Yi.O-d).d4uoR:4:%Q`NY@.W |8;k!\<iNz֔(i=]qoPNRO96':kڪ-e)xJf%?XQ5ZKf6~CDS8+hlJafvc[z8$tf LKcՀӚNr?D}g @l1[ţlۣo W_' -3H9;aDldVȷ#DO~Yw>0ȍJN@ D՜)m[[~m-gv-glG-2dz" Dx-SS=!fRL[ -Drs68cEhi<2Y b0;$wR*AAO-K#D(ua4ۡ[Ҟ3sk:W; mPU*n>?'|,Y6͈m#NӍyC΂9,D}pB./$}tc8Ny\|OB?DalV,>((PAV`'@^ ׀zĩkDBe{|~J6 1?uĊx MNsS;=Hxŷ#Cx )|%otD|:8(%`=>=69"-bGMM|.Pb Yuv /D^ 4q^wUlyѓ[ŰC(b Dl#jR"ֵ)>I ̼߯4tƅj,@rLU  lA[?&(v/ ~ CDUԵ] -;)"!8vMں:dmZ<~ڞ%e{ U_u[L#k~GDw\z=,iY1(閞n>sKQUF[P9 %<@jD:xyKF^h:&4ʲK EoRx<{fTNcS-Ox> h‚0^wRo#aX)k 9J)!]i]=QA+ h:gӉ HS&u6{hasIAcijklڊq\zx,FtUTUJZ[+CŷLSŴ.P{|ALtGT}ߟ3[0wF!+Gt'FL0tdF]5,ʧAGurH~ 4kɹZ ڀ>s%Y7^]'rX7%W)_4[ϻ-m=dXcC =Zφ<ۿ|,ҚjW@Ѫ%^HWm.(mH(\߻Ca-ţxMXlUhJ4 -H0U![UQ'1sҤ>rS|槅w׺*/g -rIwۿ6;M':_ -D>v[_!vCuCB[Y6AaGnIm-3Ix/AJ 4=d3[/UK:v)z䊕?q_MA bGkזc4£?R7^9ecF8 gKz nX$ȚDyV5LͪᏓ$jN8JI pثp8x@-Q05ktTXEaV!jD%4-r)x<+9"ŠN\A8,lyaڇʆuhVdƇB˵5" `jdtB,rQb8F9^Nr^UOI"A]`D =9h)u&,$=-Jv pĻmRf.ލPc|/"p$5sj kԃ)Z/싘xi^KtCn$v5֟ҁpNti4YArFFN]ղXnGX,Gf@|VӫuA`I>w< MT\&a/Kmݸl)4#< 5B7N0(1\q]dnmݙ9 ʡIw!Z 307t kcydEN&?[hFgL8x2S)w+2onI[o vv1>J]n. MV:ausS`{*?_,D=;A6'41UfM-tpV@Qp0[/ ]4E{iar {g9tg_0tOX"+>:r;*mIQnaUIhw_9%wINN7])Q7: _ӹ eN BwM -TK'ڥ(xkӵi RD{&iN]5inzWz/o֩OS9t[<җo^q}SQiVmV=vkOZLv:?k[j߶_gj6[xrYyۭ~?oigz۬Ζͷxl9fMkVvumnim림fҞo)fa!:J:Q6:Jh4498Bi( JUkeV7xӬjRbn -7Wܖ,RWow޼zg3cAh4`Q߿;#ν@FΜmm)|tf> JYK3cZ}kGzˣ_Gyuif/ŏ775tb7yxS۹6}n)ί\9vW+U@ǀZuƎL9x3,c)TP4P)JCi-տGzr艢uʫ\ݬ[ow.l߸zRu*RH4 (P PJ#Qz3c@ipc4J{@b -ֽ@o"98j{ۻm̱~{Zܭſ-+z_ouݺm1Ucn=y\-{ͻzkW61B}])v~3ߜnk-śnkͣ-@[1lSo6cqOloh٧}6o޷[=yt%ȑ_ -͛n7[-~YN۷^wrڿ4o~ 罓􀌶miŹ۟vZ;MGQ5J[j_)ڶjsޛϷ_;<Ӈ݊i@`M\Gto)s? ӟ_ݼSm-Q[]{K[KV<ܙ׭?;~Zo-ttϣNiXٵ]Q̟}rܠh! "$t*= n5T ̪dQqW_= 0k{}o߽V= -Wo6? )2ßoS7s}׿U:ҩiʷdT6YS>)TokTϽw֬_ŐDqd"T/L -/h+r Sc P Y -FN$An,/5BsivSY—*_s,cbs]e6'7huF Wlu L(T{JT[*MeXUqvV#qC#CSu{۬3%ʎLNYhk^''BOqI`ƒՍ\-/(eGKqRy8W~ ["={_ztCV7J>ӁW*A/,a睊e TZi@t+P4v_TՍx٥\_GJbzE2v|}^+AR׍3*Xrvpؕ%f}f,O6J+_>U}8(ٕkb/ڐ(9r%ucVDrJ[o{IB7*ͪ+*mf[go@@F,ÔX,+9O04 `@dL+@/Uv;u_F@#GE -J#F+;JRAiֱm6)*Io)<קn֏x_fnjny_{λ:7x{Vo֦Pcc2 gZmTά޷޾y;۪?'4q^^+yv_muݿ^w߿qg޳Yly~}޿wl_l/lj/ڷ1U_13[myoyy g ͽ5ݹƚ3+]?߮i1U2m&4gy5o֚1g9f8JkycR7.N\VZ~1׻v}sX+3{{u߶_}|;:c1}gw՗Wv]uW~{c{-/]WkVc^3}ۮgB{c^i<]ms5 9_gk1Znsk_9x<ÙgB3WN+LucZ gм/b1W׼{y5[s++n/njkuiͷW[__^ν+ݭ3^{3k&4ylo]ۭVk9^o͹b-Λ[\q̌3i+\ojv]u޵~3g[{ښů1΄\3\k{\sWww?ÙpϘ*;3{_iv_c\iVoﭷ׵wiu9ÙV+ƻzϭ}]gu;kﶵn|ysnyvZ9U/ƺ|/;Ù?;_-]kw3Yoi}/Wcob]yq6zLhڧu޿ߪmcmkk3꯼?ߺm7Ù?~WKj\\{&4}szf8Lhk3Ugk?g8LhSo+߷zչ9ZέsuűSy@8noZ'7v}Ӯs;u8oBukU+'d!IJCEUz@ʲ -h9<(d_cucz*H~84pp̳4smsY\vǻΖV-j]ێۿK͸ǵk8ZZcnw^uoUsKwgvWkJk]Mmy_{^1u_7Uߋqיx۪M<$ga ^}^ɭ Ǒ 9vv - -<9TJ3-Rqc9`\I"9Jy ̴tt A0ʘ#y@}tdċ3_)7gkzӿu:|>Tzvʑ+ar0K̃|@`tl -HRqKy'L=Y1LG+UR0;׀Se0B󀐽yug'Sg=1VKs֟UŗKy+IoDygu;k*NK+ѪN+=U J`s!05rT,\XQ'R~٦8i0ǮŁiqV+~yN~+@ođlSgיgh>N屼yJJ{@4,B6jȠ cGo6F8DGlY.:DCMN\ T -x -\Y 4 QD`*>q"kM+#j ƉC*i@ ;``o_K)BBMN-ѵuX/VbP,A8R,XU+V^q"PuI= eWRc$HJCIN nB"H8UyzaEBP ؞"sАhk""2R 2YFLa`XxZ#Se,Bu.H_,EhPa0rX<."" -բ8\(824G'"`6Og’ i\$hdp0`DH$T)Vقp  @p F$- :EL:i!fBp ZTL}a=hVb(Q$\Dy}: -b [5< u` 54HDGo\}i8$E@:OCB⸐p6H{@8U2*C:Ep0h: B pt,!."DFa(>Px%BWrTZFH{@. QHo9d!tH"^]0 cxMpL0iCl\JAp4.Nehm&1`ةIFI"bϐP, -ɖတ$I@ qXhH,8L  r'Y+KiL<ą'J/ QtTDx+:`E,,Ae'T$m0"\@H3E0iqPE>Q(4@ՉtT E "J,pH#F64rT%AD&$B−He[Pf,D¬)++Е4+V6 RI"d {vF= "Y#&EPԈ Dۤ22!Ci(6L":2 QS:Jl`|2䢓y 8@4lOL2*AEd -ԳKJوiH -t0`3@)YJe&l)q|0LBC D.=` ǒ]|,T (d$\[R;5x -$A$M,˴-˲e!.6 TV@,˲JV e݀ hd K$˲\@Ȳ2<2U$0l{$+P@C"q<ccy"tp߄Xùi -NH(_eSZ8K8BDq.a+): El h0HX@vm)W-&6 K%cXxa -Pn>BHs1Px "P6J{@ -(*: -V/Ά('x.-ZLVɢzڀq9遳M"J,;0x,4(Y6. dYA],sH/V% -(P\40ekQA薷u8 N -0F5Xy+l.r5n)PX '`` 8Fv@lJs FnbHH}\25DBce9gYU:4-c:oYz '˲ ˲BHe"AeJ iDƒe7"YE*YoT* ~9 "ƇBɲґ!,\P HeZe_+co ,Ɓ,^0&,˲QYdYBe K(P@& W ^&8$$c5ܑ:q2Ɓs5 Y('2m:O"QLYȁ36/ȉ=h0@:U+ WɉI&D<*'H089oՑ.*bX]@n4Xٝm[}fI@Q_ ʾh3_y/AxDd>NTT_LL -y`Gα9qvFduU}' +C}+o "5Q[Y[Y PLPEu<bX!V$"H`|^{@:;Z:(zŊJ0NˋȮ \^EvvdU;ɪv*UhҜ(N'IH7juc(( b"n N`Qv}0` b \MUDU` # . ` _qXDEfLȮ8,"ʧieD> pd!ED"3Br˜@jJtI$R2bx@'Pf. -IԔGTE(BKV -i؁Z䰀PJ4PyX#+`"ʮ&!= d* @çp]|D|DKbą=\Bz0>1q -ł -eb٠蠰gBKc": CHhHU_)\ ->{£s?,t v|8)i.(2JIs 0pbVT(XJ = He<:)=P -Ul(RDk^VxLsa8Vl>$hp9ʪz.B]Sy)0xd4Xe!xNveCā! ,a,:;N¼<[FBi"ȑ2EH׮tP$(BfThXi@oCj3‚ ]:4Թ$d2Y8 |WxUHx/>1B"-;эlޒxId@"0F'15ʕh'ǭȈ <襹dUPv"BO‹6 -YRJx4LIzL6v͖1 ,pLHʚ8"j&$ c0OziHوʝ$C!Ǹs>E3= &_|Ҡ +r-<. -( LX%сѱ#$Ċ[P r>S'Ẃ֗TQEAFU{@B QO㤤Œ沉T%6B8dU x(80'c3Q…X(&6LMVbW:JmF -|CłAa5P5~A(!&j"y|RqbGFu`>stream -FEX|/R$QB8:QFzfb"MTAh*>P4$ȅi $Z{@JT,'DF/42XP"'ϡjXƇ;lT1B1vN\*.*D!=YՓՉA*Xn( $Ғ-] -؀O}XU< L|,LbX*2qJKOTt5PE! HQrV -9FQLHZ,*ޝs9:"o\Mn5=*0ƂQMMNDV(L5@ϽrEQEů$gR!lzHo G&؉_ -a+Q_Iv-Q< ErTBSըʥWBF=RdC>]*WFkqb7vBU}nREE89*PL*C -S*;#c -W] C(~+Z,%Ej[T$")U}c'Э Ujz"i^>?(%حDֲJPq GP ;X8T`ر6!>Kj P - ;#y\]ɍuA7:2bZBOz 1T/,^Iv0oQEv1OE`"Эfqǚ! 'XXO9 -7o ->ͮcFV`'v̮ȈIAy &G3\\cu!9=0 -ٕd{ -ʓ}ՙQEn! u-d"G3@I@ЃyJEE:I% hI~/Ы8C(J  U_ ;rtcDR"?B _CTJp3OO`C -&]prc$%RhfH0( ʤbM:dlX2L@2F"@#) -(b2d RJLi\^ޑءʞUtIQ jBNئ9,Z_IOy+4]M-Qvh]4T oEzN2ξX1q,FưvU-{#G j[7f%-Xk#K-j$%RB.AEÀP8@wz lo5рaSEґ/_QG*53h3&+:\I>6Lx^VkL9) &ZҤguw:-u8@A{"#^bhxp$R.IEp n`|;3rFlsFbd -+`ig2G,퉆ְ}^ -~>rl,0RIT~@> -j8eR?A/&CVCYOR;&HNlY -]es>XDمx)8SКA)]Gb v|#2|F$@qƾZtrۂ6Z`TyR9 n y|E0~ȪgoܚU&:YL8TQj1hfTo۔\"³S0j^~F,%PNc Uӧ ~gDr;_tR/S6Yp2tdHz_ZE ~+iT#1鶶h'9Vd4Ϝ!ط bM$؆/m&#lRC0_Ls sfICYJ \|zN r|_iI1`t]GL+SuJT zvQ&9`qN<i!]9 h\Ebta#RLB^XA22x6C@ߜ׍]dX!t=.r,\ z !C k8zKõC~mݧhqCK (G\h⅒cSJr1H+39t\nPiέ|<t?\X@y{WA GKL؀3GcS -J@U ]Tl@uIy;i>BCpc})*f|~`)ED JNڜ4E[%6udnqht7 5hUhɲT|Ds [ $ p-]{˪r5b-ũ{ʉ,oy1Q&_x^T)K0HV"n9b@_ AaEy'N.X|r?cQ''7'+@ OpMxMA5<_rg+_&~i}AEfߑ`*o)HOTi+gI^L5A-X۩%@5:YyW_e EZ.bཧyjr'Ldr$ -@E\:lv([[dZWeRGAÏaA ~S6DBR -q;5ݭϺFH;8(RECbt v܅H+iP0%zLg`Bi ٛ۟d{ڴ^]bt961s;MAac`"D DZa{x!Q\H*/x)j<)9:9,i}òP̓+0mmcz5|1 8AL ~xsWqNw"RC9=FW5MMY7% [.p|OZ̈bγvGH/U"f^}hY#:Z$]7|AƛTCVROYa=ʇJԣqwWjpӻp}Hh[ZgvjRS%Mǃ@CX-m8aь^QG'^ L4[73 -{ٖm^ iNёoep0s1kwHhK -; iWY"x "5ŴlוgI`p# 6w z"ߕ@/s9VF -خZHổHPMKjJ'^Ae|u%q~cN&Z]N1w9nuLx&6iAZM9P͏) !!}8R@K]6\xvN@FYJVJFQ:I@+AZKBO{(oinqM@r󾭨,XՆP-$k)P?w:<(EA1l|N#DD< ]n͞CBY35;c!? +U(j $>dU+dGg& [oqN\_= T(JءDd~k5*!%2:\tY׾bvD!E>}VVa,YuRZa q l0]‘;5VbYf@̮qs_'̊Ik^cjVQ ; +4~E{iK!1؀r9鄑Wq0qԝ* *&wugpOBz#~p"oK<(ҋC$JqJWN -w64H0'þA^ 1h튈ĞNs궙Vcu;CnU(vp ,VapgA>7r݂Uq\5lNVCۨVB/0> -R}[T>$'(|#x+f%ϴn#J2\ŻzsV9]4O(ͧ5]GR:Pj~^E{OBq6[a ZqE;a݌M ȼC?K^m@VXI,`t,WZ"J7qkۭ:p٥z*E-M5beh1W"OF G%vlʺ4dJ%:?f"LZIp5&{1y4ˌ!w2㘚} tTG`>zmQq%z~!JJ\O;Ii-w ysY~4%MOdujXz$~1&znA;!tMKVr}7tE+.t6_[=7  *W^ZGXX6p8SU;\F9LCh1"x9J֬0 _ 8>wʂTSrJu 5BI( -5U1 E~{Ep5qe'ilWBHZ > i{,!|2q|##\5Mox6#um5v-瞃R/;z&6t4ׯ a-q5|aI[;ɏ Id'&Ҿ8NnCGW0,K {` LBt1RUPX[ -VPf%]:s'[PY/Ĺ q9&(f0<% *-XEH08_M3I9'LEZ¡5je9l6^5Yv+ZJ_ɉkm,L‡Hb^kL0*B3܈ B1A0d: r1Q#\Z1]M6lz|Lŏp?@!BZ(vۂA{Hw>4"o; EtxRT{)D$+ćtx]M2F7=m\ٝjA_ճ3Y `ʻ,WOc]Z)xw -7z`Q¹iw<v Vh۪,$9`A}"軮W6yy/昛z>AGA͑xwxD33΢nV FI9ljʷS6ڇ4@^ZWP -|OQL&z߶A|mIdfER"f5"VN <$r*V~@'O*-Rѹ)W zѧہ+!{1Z1\\#͖o0˕[͓㎥B.'eu˞Ƀ, -X%Avuvd!pQ(Ѿ=r0wfZ M #En'Y -cblYt ]O޹ ìY=dRZe)cHaKZ-DKIZ0 nfҳJAh:y$~78^ #8mC ƛ܎fd?\ $9AL.*5mF%R.M-.k&xY=J&.2t}?­lC;f1Fk"aׇ/} 1Q7XPS9FX"2x on hBMpVUp:ֿ*jJ*S {h9MH=AB}qAhiRn(= v"2S'*7R󭋩][ $um^Bs8[x{\T)`")`<"L2Q%NwCKvDY!~dXY(mS)|z{]}5[o5ѐzЯ{l#đ4>;J1B1 -E0}@i\Snf˃`~ 3R[~ K,^0K!+_rnAO`XTHmEv5Gϡq S ΋m;j5K=HnFwR;Cz3_sjZN+G4Z -\vh-Kgݧ$YQ*%$3[m*(dV| -/Εu=9թc&g(9Θ KK(Bx\h0+*Kz X::H6,ϫ|G"g |MfKuIFX`$~e!љZ媷HBb@DR^-h9>fk^V-8C :g8ڝkrFsEy{LgvlsDKlp!4U#GǷitUDe w?Qd ? -daSZy<0$lb_iF`(L- -G;'Pn`ߙ=7_4Z҄jL)/:U:8VbcӰA&!8ƫu>+rC@oM'N8R8ތqe9hWe#K_TĻMv7[w:3.; ʊ[LB}W#2Uq\K:2]̯WC+X.(}цLgUxFKk0/J"El` ˳嵴*i)wѺ/DZĔB &DW(24fG'+Dt}ݚ!B>V}U #-Bz70]έnˌMq xf:eR%)+qxv+bX4GkT><ٖuk4JaM"[es$Qȉeĉ66]k04q-i,ؕс!mD`h7zn2ӨT&g`4> -! y7 -F5 [#D FgLO)?hs`z}Q Q6 =ռ` 8u1 -S!9śA ״ YeׂVhWc M~۩}p" skAs@Rkܔө>W#e(Itr,rv9R>;w'%d/jΦ_C57NU "*jD -kc?IYIĹI-khG~YWV/nUNv6($Һ{n+_4L??N, \GRU B׭Lsd&10I.0F+{I'}G$!&;]uXuLK]gS[+} d>N1DDߤG~P!sdHNڸԝE,,*93>0822PMρ`G<TxţwrxO a@_Vf\A/Wrq\A)< (|9rdQ@e)4_03hߤѲ.]? -I CT -A?EƟI퓢?^KbğYvLH7Ԋ>U -_ṔJw3 n`N(Ľr;{h. +mJEg=-]L!k HAO\G*ӄ꾣0?!EQ5E"*H"DW!E}?I}KMS3oiH 8%02!EF>6`=@5$eKGZN06(0=[wdև%:>%`TQĵFL-_ƓplWcP@Bɏ$:8ƍ-~G|R\H Be!Ht@AńEWr q?A~C KYE׉Y Y65`H#:w@EöPwTq* :x8)w?]N4+A0Ox;=gI |,XXג\ڐ/5A gnXoOn+e,-|zXL)bM2P*}&`K_s|`N3/B췁iX sֽ{!jSOY{fрZCEZta{"Xot$ȝT2@#~&}R衅|ylbEg'%&B.. .$R▣ ,0`d&:2S2܇S)Sۅ.6i_Fqb*e t#|2bG9*yp1FCܐG|rsKI?Ϧr Eqg"\fKeiݍ>N -}+ u XMȵ_}4diՏE ]X6j -nREeJv"#3@A 9qJxSu(E @g]tw<8/b QK:;LkI~J@֑] -1hp~%gz5Y;;Pz鹍 0Xr1Ǚ`*D<5/d+uR -jQ7I S* ,,lOUO(ޣ/>U&fV 6G)כS^|"?Ju*\4NwuHey Bg'ۜM;#WgoOeO?N#h79Ir9^y gKvDtꏺg&*;q<ڠi>Fp&e__Y͵1S>l1`.*oɣ/E1ϖA RTe_:\G ;:4L52b:zn zeFwنt@)ڞ4Tvrv><蝺Cp?w/RMO7O:`x)#zl+1]`S73p5 -Byrk1beʗh o3vҁXah|kp+tHY,XN(t~|ŶF1^Ze"Bj5kx\3 NZ[l[LV@m;u` ]15["~ -yQ}RVҠFּN [Yh`1F<^ %af[!r9zxecX08"4ց&[XKڊ>lfJL cO 9͓j4 -h5+x}eLIrI'@$"8I'[d!߅ I-?0eJg4u5ch;iIQ\$VG(kEz Ja¾!q`j[u[q ]K:CmCp`w{v8NZ~^ x APt -ypB -S!8䡚8 9E^ -S-ح(A#  oj3sc&Л{0x./<'ZYXh -k'"7ڒukOcbic#+Qc"i -d$;#d4<4X;9Am`>E ='"֝N>.sYbKlηq#C]3cK5υ xQ+"Eh:$Ahd7Gs?y}0{8zb/}x`N|@S4:YoscQ,8K$p!ж7A%z<Ɖa-ot %!&iE2{q#+z? 6$>Dere ;j0AN|}%H)$H8jnQo0VǪ Ł l7ob,Q[~9xSYd-|%כKoz*DqXF\#SDL06v`g̩f^K9h_fOGG(A4,=8/V$ps@$#|SvX -iU6c4^\5xgCu9$=6b`Z<=݈R⸕ BnI?\]"],/HJb3- j\@~凫CW&nzqD=V'NOBH04AbEHO=!}.[d$[b^j>,b;Jϋu I D-l'^ТiRȘ-&)bvg(%Z0~gD/L -SjַV)3H呢)0NJb5?KbUNu16m=X(_лQ:ژ8LzC/0rC+VD24*Ax$P1! e!AIB*"d (#$jd"|,0&2ZV8P Ng @QQh@A$ qs0'tdP$Z$Z'';`M=') -&$73`e-LkZQ@  -DA -! &^5j Jgk*} N& -? ap&Q(*FʽP5:$"݌dr&gb8LfH+$umX0, @D IA E`*YI,\6i^V(b\,L&k EEbIaK6cQr (*[-YڜlJY$B0  `ajb!&bEKP'_q11P"8fE_b*E"Rف+. -х(p@f4'h0h, YȃD>`> -x>4)ч$ # :N(+TNtDi$trЀ8t>"" %R'a>8N=(FP% & Q$bhX - K™(HD"0D(E g@@0p2T(s -}6JzL.BP*Ab&@ TCE(u NaQ"}B.g Z I ɀʀfi2bhL$ q: NEf؀D-U0 lJ'! b8',(K C3 BFBDe4XМ8>8N7$ѽ !8FtJtJ NI-8%|FjQh>Ee&!Æ\F2fhF|1KB`ANJDB8 (qS(Q*W* JIf`L> Na<.f,|@ -J -ʄD2 L8 EP<ĉKIidM"CF/&֊Sґ1 PE,(|N'G">/&'#D8%F,(lTVDZ -CU(+b'P.(j $r5F LU!ZI$2Dh8ЉTÁ(%P|>lN*,0BN,!5f NLd2i1CH1+L-@$`JWtAepQ@€W+J}6&#  P-ps&HD #)Hpc&$sz9Y}0p]D`QQ08A@͊R)*!@فYpZp ǩ |@sdJ'eb8H&% -qr+q(qxy0Hada#$d1q  ,2h^N4)aAM^,؈x9dl@\V3wJ I:(Yʒh]-$FDDH4%4%D T -R -(LP,Hj$D&hZԀZ8hpR"! Y` p’1)  D&LM!L`1@$|@E̅]\0a1`E^,l$jL6#>Pu@u@T!JəhDaBA(ш4b0XFL F#(32AXILH$P M"K 740TPPX t u2 RQPS@AaH B -. -K"!g* -jJFt*` (7+ = 6&Ee*JD8R" <|AL`1pQEFM$ Dji:)Fp9 $pFi@ -&24' *-QIlD"E$GjTjLD"4" "bXNB -4 I*@SBSBS""ВbF232#QB`*I@-KLHp -Z"NRMAR@QIE,PT&bÑ2  00ctsq47R01EAJDd>5$ÀD !Qa6r 0t>F*L4GDMDa09|IJL%i:]MJF@ĞlX -u: -B„F6 4ք#'$20Ԩč(- Ғϻ_=IWm?$y6z]j[T>;M^~]նS_õm|jy>wwuo!'ZMl[ݸqUSNNm]}fV=j{ކU}?շfE5o=)f[؇I:_kU_I _52LF˷[ -8J@f`$*5/*+Câ2"%$SR -n>HSB2"rr"RbADHH K"%#2%#+#*)Xq|d8L,"&'%.)HdHLHjC)Lhtx48>o@`l)Ide*8jdL%ZR! n:8\ 5* Z=Pz VFFJTR 0=ƚD$QcM"+`ITrIBɤ$H@Z̡W!#h1%iiB -& t["B~Nl!QZ6N1RgQȃ ~V) FJ8Cky80'K`) -C&, "]j - MJFT'Hz)Y%A<6>@ZN%}ĂM(tF X $Z+ BmByr - j1p('J&餡( }【  'шx98h -D - NfF8L'SPa"iLHC8UF)!2.T98@Yi>*X24t\(4F !)W!R7,@P@ kB.@A -)a2܌xthL 1'Ba`8hDfE !#BH$7:(t - t&$$ -<(XSn,6J -$+ZRӜ:dl -t@NR,@LxA4 0RR -%@՘Ëو> -P) QZ - a[@@Ɂԁ8fhF G>L@rPib+ J"cQ"\q4jt@9x1>fhFO> > !Q @AB+Pp"t}hHu -'6)W c:R Dq:@Get2UJDB`R& &+ъS C-VbN0@3'F)Cb6+DHpD5!gd0T%5ߌ`ABp -(٤P'q@8ȐL#2azI}DZ e5:BTbTsr1PPY@4b%*1jr (il*6P FFRVn!eU!c H38SdC:p U:ncMz uk8Iu֨J5zAPIdm20/*50d a11al@Ea`#4hS&( -)&eFB(&lXkl@#em52!6[ (-Hl2P - -RJ$ -TYzES^HKp] KJ@<$EeMPJbKe %?DV>P3"Ҁ`xa)yL$ &"@H(4#" u > RTj̃d5" 28nHE-HmRT`2ILCTLN)TLDZÁe@F* -`$щXY HfB -&RI$Ih1՚D ,NRXBf61dF7#@BTҌ3Y .H6X"LV >*xV+]Yiv2DA,B"V,PJJ EUq:%+H -WR(H` -j G"eF NG42-P>HĊ$Q_t~R&h$ @Ǡ+H5"5P -C!@DF?\lGf]{$!uttVQItqE3nzڏ[Wѿ՟{3=y=wmvw qr]""#v6r~34\D\h o׹񎱹Mޛzj#/vu׻F{=OCCD0ac{?<|g_V^z[5w6w~^/jfj35^ȹͤTϥE]ֺ|+ߺ׶7!&*a>>7}mEcen6DOVK̵}xmnvprwqu'>k;&ՅjKHoyp_9+)g_\oN;WŌfܜq =g|m߸ɈxǺ}m۔=[>xC]{]nTStn=;^Myu*;sbO]Ssd^[|KgexFt"a_#[%6gsňM'Y?vDFgP"YZ}E_D㙭=fCcZc;asC4^Κ5w=GtnZJEzBnd5=F^þcDwo]zKU{Iƍk #n#2^^zgޭݵ6E|FlU\4"ijvH8R\|Fs3_x۴-n?ZffL6^86c2/mclc:y}ǻoq/:3;:ߧiRGϡzzm#BfT{גӹYtXZuq~O5t3δޖ薷̽wbzz6rzwcڻ&i?.{kjNĿM]gVv^֮v~3=f|3=kyǛ$qZbz6I/=ɗkڟV[srZ'RCDϙv-=M>|dDW˖;{W^kK?={ʨf|zkfU\׷%:{XrmߝwFGCŵܭv,rǽ߮spo-/tm5l}MC<]L綻u[i֮mI]jɸf{vl {tu~zF6eu+n|kYW5OpS<y:;Wәٲ:#ur+^GccGgm_vϜlܸ멟Ko,U^^s__/^4]{~{yK}mKϵk}蛹ɟw~xݿk ݲ;/=]Wyu.ăȪ{:ݳ>9 nG=nʦ$O-N?2-;wǼ茙Iqe*c㛦^h~N "k56&{BfL5UUƾE/_$y3O6fnzt[so.i-wj݊U{wڶgk.~{}[mMys;ym2.mo+fޚjoN\י~3l]2x#Rpe/\lzטTs|_vuzzw:"os'ZKgOe^<{gٷT1M,ue&f٘Ywq&Ƀ}yb;S3}\k~y}op%w&c'/;5}_I򜟛ޢDVNԕo{s;\Υ_N՚mT~&ɓyԃwݿnM/=Փ5߼5W<̃~jloi|hy{v}nj-ϯ=53ij34e^W;W?/ Wd}e~[CVͻ[a;;^ri穽!z{nZ.Um~^l|S{l5;qk*m6z/;LnS㻪k~Γ׽tѴW]_2%&[Ͻz+yz5˴NOFd0Q<!o2/T3C^+rv[g_G25̷|l6eG}_hͦy}39f^jv>-O7\ˬ*nw_j|K_ͬ*ꦻqrEFUu1g닽k|vSy_q3Y3t?w?9og坷< w|5̿?]^#5c9zwDsDx~~5cc^m)=h޶vm2>12663s_o~wO;j˗vY/l}7ub>%RtDDde|$LT[F7^Go>bʯ1^zu1B>7\]fܳg\|ۭ~OMosY7U__[tWOۯmwW~3V5w\i{ح}ywvzky׆~޾zy mӚ }-'N-Y+s_}7>?[m؋NW^ڇޏ~FK5[^mzݯi+uyM{՚3.]N~=[m_=bĴ[s?]}ʮ+m"3-GG\鬨2##uc~7.vm=_xzhޯ7Wf;=&ۢ=w*_El=C5fCvy?lؚIwu| ۹͟d}ۭ{lx-okmvϭȭ<ɍzẏ$G_o 4Wbz8HTuՙ{Y5=z Przز93W۽͕乼>^TNE^jޝ Qqi[s"obZv^Wk]H_~'D͕{|]n&&ɓ}֖{{y͜{+/^c*36<תoo|~i}sr7kDfe\t|LmN]kץfwשxˉطזO1ݙ/]Qu١St;2:ʳu࣭q{'2=5b.JEP׫ZOv^̗Ⱥvy :usbYS?Oo3:ʽMsݵrsɈ+]cU}Hbo^+'['-6I˗9U+.?g32'[m/mmv[vO]ui/^nW6MS}jxng lYsr7r]ehlgxΚz~xgɷv 3IwdFn޵$&ĩT̒ d)$ŃD|X":,4@ -BaHQA(C] L!!')Xq3UU S&y( "1ued[+ȱ7P&D! P{h $u(ืՒHϳ|'`L)}{%j(7XJ~w)vlͮ_%]Fi]\Gq5e+p7]~Px -S~ ڙrKAX^Tí NĹװs^ -%#|H8@' ?NQC~е+1[\Aވ c9`Z%<ͮ5t8ЂݛM&je?*2d2'If8Ho".lH}\_ .Mgn]mƫ"7:7̀LE!~7Hwi(p4FoJiOEX'5ྦz<`2{W榤S5vِ҆OtKrz!1fZ<_`1Z",iy*{"{gAȓQY@%bb`$1՘arוV AEiFN3(S,]kU? ->o1%ZV;I<@:\ԮS(<_`mhGQd4{&l'\ -Bp~pVX#GxH^M$]s.C\ \8yF2ϕ$ lf$zπ4DRScO)p0" 91yߗj$7^~'y|)h(~;p _$ ,j6#Zglm5Z)HMJԤd~tOss$e_8 -ɒ=6]aG"oeMf ּiv+>d(ٷ~a5eG9qخ - !sdr$CD]6! }k98H.9v6r -H_ EP_v)R^NޔܘtI-D&jm{\9-qO[jl)_Q\՚NBdq >lZP|zP9Ǫ%^J -VĆXCWzx{&O֑''˪Dhw$qݹrUQVIsRj^eh]a7=ف_G4KCrk]4::"Qak,slV! x+0Q4;(ijV}igMMXRvZQ=q lU.N20"U#QӀz=|Z$N T^kJI~=cmDԴK(n8&r]מ'(JAENuL?ꕊpx/؟7 sC]U+\xi,0hY< +;|E4 -Ht:bz+nHA&jMsBém  -!Uɍf -/axT$cZ@s2+ꑹҶU0bІp$ - -8P3~$a SCb+S6R:)<.πKXoԔT8>6Hpg9NLu"-J^q"1ӡH81ɏOKf+]x.6XQCu`DbN6JQSW=A].U`fE&ΜXSEX ԿʷXwM1B`OGvv5Rh<^q,"=g+\Ls|!p%xccg{&^4Ҽ4rLTh)MꨌnQ0Q)ՠsbvx#Țyj MIJE}с'O\b{]m m_kƇ -raq5v KW,U #ځI-Q%{_=qI Rɲ ͒ :B1H%r},do;y)/i k6iwPcLw'wte\WK|ʍ@m CRH&|-wym~ۛRK],|ӳNbafx ?%s KxڛjՈhaouifbwR`D4bWYhY -cX ~м"lw(DwbS' V&QF)pK gd0F@HK'{e_Tuj>mo33)ëc(Ba?_JF}ZS }نd&+gŽDZztNcc[}6r.F_<=d4>{#Ng'sS\܌4M+jf)L$6f=B+qO6EWu\$ 2~>q`\y)ҡx -#_ -m_v(L|@ΎϕL IG> HaCCI9B-ی+">lV -A- }ko2q<gggI ?Vz݂;چ^ jdNs?GobO^1`wZo,"[?N噻Ovz:G2<Lefa<KTfȰmWI/Ϻk[3- Q[BV<++ N- ܨϔ -F 9'{R#XΑFv K٫(s|wyf?s]e=}[^|g,m+aiqU?uuHi+_v14 -*h)gRdl^(eD' Nx;/ŏ6m+J DwVRViܰ)L3?AMQlM2WGdkޣc{!T܁fW񃆉O2D"q mʑjW,脊-+E&^N#,}Jgeś"cu㐍mHċn>b&e/`9=?MεQkJ!%ttf'Owt\i3_&RPD{Sst>NH#/(R,#]Kυ?mߟh^$#$nonZR7a&m( #4Ndݳ62KI t2R}dɁCvG˫K:U"sf=;%]yj?3MZA"sɎJ9QDMNLUX?UiIQfW 5,G):-["EzxP&FECZr"p4$v<&۲*MGXi/C/z@b ]j,fb"eeZCB:.^s4m ^]#8ﰤY<.ͺMv0_Fmm< כp - I^)72`5m!I6b%=7hӛjMQf/4^4 ޶B&?mNi|Msŵ>L-/z51CKtyIe 'J&ɘmj >dDGx@`t'3+@qVi[)UaBo(CҲa\s!ư4߅$n$6 ~VD }{KԽfO>e 4O ]gB}X+Db3$ @UM06팃$|Y^e^T4#}[YvUgqKjhNw(%owƇT:_aoTٖrUkIu6R!no7BoxN1[eV<#FƤG!X=1jm-t*Ƣգc}:ɀjI ) -~f^vԵd?1QMrh$IsorKllV:l' NDY(5ﻵYPW@X8HOʁc$ٸ9`K{9xƜx;YVU1 2z4.,+D)qĨB lݎ`ub$*x1 /3 4R]D +4.ޏ[a9^+`E.qmaK#+Om]fFj+,r5]SJ&(Lqkqw98e"86Grxλ|E6]B>"o5v1^gu>LH =EVxPB `=>mdԢ7G\˷HIkHܺiw i0KHnj00'=T/0t!s xF~0yls]#3SS-^(s[!^hD=q. -Q}F.kQ%%]XÆ놳<$b!۸呎 laJarK09\/ss9vd"|SRo> |ӯm41;3m8u-!Q*'&uALęW`H& -[cԤ K%d1Ef0'6Gl"څKE~Y&ɱG]Z̩Oݛ[U [%ЎgiNJn2SaKeϧSmٗI -k|n.5}>h2FpV -~X[PPxoeG(ub2?J-E_(үdcүuD_$.D R>Z6[1kH!wz U7ۥ|$j< 47^/OJlC|qWs -0z#\*#Vxc5BV`=VwR~z(v*Lrhm}Q#/_P-4:9X/ sh|2 :^eYܑϣJ2oE -\=%#j -oP^Sh }γj>9鍌k yT, %X`ߑU#h+3{J  Ƚͻн-ݞ(Cm2z 9u1#cuc>.Zǻ&z"&B)W)=.fy7EtmxUMK'5ް*} 8>qtau*R0D,HJ$wQE,)R2a($t'Uz @g'Ԍ++n|eR>ҴH Kѽ[ECӡ-ާ"B8$[V&^܊8{&P׸&.*5:/Y,?-694Miu~B5NSCQ>`Ax5:,^-R5ql-v _[|9Ʉ]Y'./%)Ro#ubLk%؀3o>T zchBFn听zf"&!%> Ozk ][ "Yd8)=x^]8Gb0^h j2g@vt/^sT\ N }\SuWsL|n1Lfk\Y׏/BE_V;*[&/E{Y1=Em?;upe#a}8$(K& Tp+Ǽ|KOc=1O"* PT=Jͯ f%8pwFu L\`9M?li,4^!& ] $.p96tCSpG<]f(in\wUt9{r)v+-Tɰo#bc6 u@F; Q}R)B֩Yu8δX.%qhUқHI>c]PtII>m3B(h-V$ű,fcPFuCF1tqp>̕6$@R>0C55CS% )6p1><`0xeXyeA@ $)Ɠ>wK  ?c &2Arㄺ4_54CaH_(됄n rPn4r?ㆊFЙKyyЍA̖*!/MoQq -.>?wsr!1^8)._;`Nq!%gWJ`2ui&E6˻. -LA+"Ggo-|jVW۶l; J{s,1"Aa#g*$.pÅò7ʩi&7%S3QA&̩n$H7Z{ߦARY~vL}Qn^ς$d2 sGKفJ:V{Tfb(FO;j'y>yNwZ2BMW.},ϦJt=Թ>줦=IeyaWKQpa:Rmen9-M°_(̀Pz-l?o]O}GRM$J>TIYxv@~ʵ1qclU->:j( NUA/qm/CϹZtmq£XXڐ#bfMR_1[جȱ5{o6}:] -5@ 6ĕg ĭu?F\לuڀe#WgW ԃp&'ON㮰r Ftga -Q.51A "HJ9 -U3:?df-իBx@̴RyHh/>L MktEYcF3^ع++@~Dcp1 02]wvOy TT=g-č|6䰧U",ca9KU텎|i*їs^LRdw AkưI}+M"X^12Y!8V q\nJn Ko4tFϘEPi=mSA I83%WX  (?[I5΅,D =#5lNl!ⵙ;f06Q( g. ^Pg}UZ6Ldv4> KXoqbJ~l&EK[ % ٿҢ|G"Qbj0 $od+b2^󔕂o6EAp-ˊhTcaH1A݄6hKͥt+M!l~Oa-`u5+T%t,+!@䅈 7 Ԋs{o,lv2Z^.&5G }bEU -XYU LPt*VG::8 T;g;dM!ܥ-L4:4TaI(-LX2GqӃ/diPw V{!D7Ed$Jc2t"Pa<1qwNಛHr7DOvA7:e:o~[[\e<'mA[W\D:(V7kt%9S:2+R5@Ѥb1]#RgiFMb;9Tc -#XA^UFѾr4a:ߩ?%HaiAQ"bOY[H¡l "hZdwVuEZ]ǣ}g`:aՇyÿEXRA~xU܈xm5?kWP+1WAP]w`XBi47Bdhe3Fԫ(u;kgQw>d -# -l>H:/g do ϨJ( -ht[&Gga6|9 -j]xiUE޷'n!Q7qZI^UxN~h0Qӹ!] )yq~7jPNŕ B!AEz\t8kLarѯ/鉓Y8~gӄT>F9QsL˿*ڿ4vFGZ@ ׅXȉ2 f tnjp #ZJBtZؼU@v\ @#a-APELiYa#.f!lؿnb*98$` ܗF-zW ׵ t.aݰ{ -VВ*5\ő -N :`0PpH;vB_D_h2P*Ņ-erj)X*Qv4馣sf7-H \jlH2\;4Cnan1@JK pEMYq<*lBdQS4?%1JUI137tuL9ZrKJa@Y̹ԵUA?8IVv$ocU%!֖gQbh^ Ձo#zϨa,$3hv<¸2lǖmo3?^rGL5C}os;X}΁A;s\6;sX(4STӁdfʃxkCAPῥJȈ:H&Rvd:c^D/W|s=pLBl}sU=c_ -s^ȬuZUCpvus^x;lX&o׼PѺnV 5l!mIIQL* @ld+ڨ~DȢĂl\ P߬[!+%VdQf%C5]IU -',QQ`M\kiR^wyDX67"3bRjtsw$|uPBNV:&Z"ǩI\꽨 ]No;{*m $!;?'Y{\)F]9߲7bM ͌E}#AT~f" -r-6Ninpr@E3rm4B 蚿9]㓂Sm1˚̿{HܞrJH5N rrэ8@U*PtHc~Qqa*L2ÁvqZ[}>&DP1fVsU@ϒH"o=xVfԈ=YmW K6LMU9p:kueX;k綖20oK6R9W/4( =D8Ii8w,椠Uv=A@Ÿd5p1`7b97l ߢ4iAGQKA(; ZD$MbqoרV$1k)#v6,Wr'ʯW:7Dן3/#"]PVF= G!dyqȱƾe[I  KqhzT8MlD@6y^,t\ޱ"ܵ\6T尮 R "ygӹ*IUPw;T[*xߐgҏ^? -- - cJiSW;$c^= :%y7j@_nǎY߸t[,2=ݢ%^ eihE))84QYa< 3qCpqZgLUm)txZEsⱶ`O,FUOH>f c~qMѸߪ8FK_aJƓ$ Q*bq^tp&Ii mgtN39%T\wRzr$f\,+xpUJ_A: >u"!'Nd=luTO4| ~_! 4[[ezh?4)H U &{DDvM4b @{IwRͥmjcR&<\tf'^ #rDΘԁҤ%TI8L.|=BU@[]cܨzXd@7ȪfNѓnQTU*DcfnN[e!1hq/8wFQ8*fD?rkZ`G@$빉mdiC -uߎ7u -Wcbg_ IJXl5F B)7}LpQ4|([M *`#XA\01F  ,EKL|XQc8.YЂ)x3@@,/QD -aNY|b W^Q[NjB s`!6=ī ǠNDfͨ1ĕ~? -3#)xZNÁP:1$а:|% |J!0mMH0-T cFp哷٤8\,~-ƭpt[TK 9Է%)pe/Tq$x}C{89Lf_p\HzDM%zJv(wS RtI'۸SH;[RnE*MO, 6]a(9KqMW -+k!nV@e(LSRz'~ M>xUd*DTg V(J':~4. q(<E>`CU8t]oI?!Rq3zY#}i7Ѽ -pl/wnZq-q6%T$ k~TX|^g !|Ζ8Ww¹Pth].D a[O .@ ?ZƗoYwH HѓO̢ s.UWcPyˊ'>iEm$;9w! -uǍMr$||Fg N@T(%`,@z"]`L9r2f,E.!CQ+fz|m4 5p1bE:{断_^8+9?P\iX"pJCheUD7oJ?(<ܦ,ی -U%@%Fee%9 w#^O^ʈTjTGM:W3eEGz/^P>MY 2fC5Zƚr~nG32Z֟L.qЉ 0ʛ/ q\Nk mp$54!;۾pGUHcj4#:r.Nvl)W` -G͠ߠsxg&n,zu=99;)}\A?rhzB^OnNlؠ4L8 DlDx C5aHzmLc&j:M]ivŒLLJט1/>~AUĀ]>d?d-{x!qncEZNKNxlg2hQ4D(! -G'71qA- u% >A@\f -gjtbxDTNGн j/nݢSl>vLNLz" qxLw4ley,jCh Wlqxw l`hw"N+;<+0fҎ,^դ#Dsi3䳇ӯ(Syk4W16rO.:5eRg.B@PmXP#2uҢ!nſD*DIJb@hiMZ^ˎ9GC"aa'Enl+,;§em$e}#J/Ύ{4D,9ybyȨ8ﯿIe^(yvgչb-r-oZ㽌-ϧZGr#G@`jГ3L*xH#:=n $/cF$L0n(-W%)NB\¦,V9Jl,%{'@S\r[{F--D]-Ϝn;84>{ ZZ}M)}24M0eVҷYh죉@(c&THa}%[ZæK"[*$ iaIHyUآyMV3//[1}"-Cwm ^| b!j B/h)\L kNGJVR {ҠcA#`%9a3%/Hu,&PyP7XpZٞ1CwӼ`)hh?{lr\x٠UFJ3t;!+ -L'@OJ%W iDn71G6\j0RN݄4fǮvuJ敄710G3虘™o%2;}NZԍca -#_gY|z`{o1QpW]=8' kP=Ln#]=/ -3Zz{S"vo/n|4=0?h091jKHbDD(!ABes/<^ƌqS͵5I'NqGqN\wDÿ@'v>+<02)9U"H(U\H] =8Q ,jl ӱtA0ڡQ?96M-MkxbDa: dgU-#/}7 ~#<8E^ vˢ!B?8Qawk$LK//N3;C]``J\4TnF~΂a]hCg1M4~ЖUHk!)jm9C9%شwg4BU4ƧG!0A$y%o -222ײ5ˆ&`ؗR* kQ#04ơ/:НcCl2rY^4pޫlYnSuZ7U Z ;sP{o=)Ş?*)-4tx5BJ. PMBeܹLeJRʔJF2j|\D meɫ*yr ,}F bxDxq D芻?X11cb&MA|D W<-MlmQ4oX'RulaYkԵdXU4*r23U2Z24L0UR(:I *#OIz*S )Z= ̅Ϫ7gdC1$"PQ:?mcDujLmabrɂ<[(A4dzqE8xxfbe`4EULjv5*Ԓ%#/eŠYY HX9v/`bV[xRm#&0=Ni*pKQӐK|D )-띃"5DL""c;hl,G2-¾e4(;F1H5;eC5نszւrd|m)TƂX-r #S$k}ˣ+{ٴvLxtd"&v,Yz(ה}p7c -1(,|Efj/aRn rEE뵺X@(rA& +ƒ. 2vhZxLͣf@/YEPCel(p{ +lt;>HEqXb0 & H b^aRT;MTڄ)(j0VjT* +.&4oE!] -WڍYF*qOhPiPs@'~ $ @  $]2AvƦ)oEmcy`A| SSSQP?O3lbiQx6ݏ5: -R3}*1qbvs[ -o;YRhG`y$dXӏ#&fҧ ]נf~5?Gy[<~Ax* -Q0LPrڋ.qP(*_#밽dbQ쥗ǯ$RmLcWnnN* unz)hEm1Zd8=2A%+"9ȫ*6슜٩tqYu atX \1EMڠ#u3ن:՚XXS@Wkaz^9 "ֱ'gNn³`IDYMoR6k57V̈&4T»6syaPVj ?_^-,:+EM'Le-J:RT[ƚ4qH͋وLQ2#=TAA:pԢ]&+ R6jI.!>W`V;RZ} @5)zi$h"~=T&<ɞ8礲jsWs eQSal~;|dR_1H0H^.9tGUn)2N"*&Nx};dY#uDxv:\drpm: 4}-O'j -*qjcЗiI%[l? GIL×n2N_)Dz -_¼oj-Qj&Ed VĬ O+bQ>1=s^eM1UQ]=g,ƇG ICBG#T{UU V#x6:> o -|b -{hI,,s32K#J+|89Q ch,R { V,Hl&R@M1$*o:co9c - -OS{>6ݢ1-@-HeVKTϋp*DĊu}"a[%pl߆;8zfm->ᮠ! hγ=I'vq[. 3'T/UlV> Rr:;R P -TժWo&vP{xBGlQ(|nT r55\Vi %,A;Awy+Pp@sMx99wm2M;9dMg;к%!e NhGX僪 -z u1OwQzjRcE.|E'ߡܓۉ D۹*1&q3XWrF5DdL]]={PERw}W5N`>,Ju@O1bkJ_/mȋ8V8tUhs0 iojU ۍqw= N =WiZ;M Jqq k1bGQY#(FXoP7+LX)ɡB [9WDgg -y>.i~L$8NQӗ'n죡Q$FK.CS3x@w#dc t>H=S?r_礣 -e.5/`b4p+(=o coOMtomR8\vyKMHOKIRdR]Pϵ -&=$(1 ?D 3S\KOnq=;u>ង45BjBXʼl~2ubr@E̤4c AV,<M.oql@ m"Ac<)8prp솿Ym; aH]-v\>k n+n⭒T_|x nZ_!'8 gżag /!j6@o]hzu~ȏ}Pj!#Y-SbPx~m22-Sp ^x{~DPu} :z ec7>HCCv`"1a0oo'ξ'^itK%.$ .40ٰ?^$b%CZȣ֐(Bni^Ӱ7ӭTdnK0n ;Qnc|")-"ͷii| Wb$-#sU KL:HN= mH~܉Eiq& M Y w(Kc&CZu?ـY` pz,1FFVBEu/W|~:Y -h4쨻4`E CwO 2ǾǎX*1r *AHjiE砀^V&HF禪@>mCPVwF')WEmfR˻I_o7:תwX}tiF۬r^P,O;YT"_)u΀h?u6X'7N&zL*eu9L[|UvC-Tykn!Ek!CwWF#HvJis{tUDԂ%ԖYC*--q{EEqˮ!9cDl)T~CY+`(wk !' ķڹ=c CI3Jï6m (?]Ok>Y m-d -q+>n!F4U*~T%¯ IF@IB @B=ˢ~ճ#F>˳ C 'W>ApeLTc8?7_1z=ñ3Zof03 uXs<J i :TSFb3WQn+:WVݚ@ga#%:~JUjZc d; -a_ N.ltͮR m|+wRd6Z" -gI%,ϰ .q!%3GHh1]3zj|1"; ]W#B -e|Z%p -JD g% `- SVVѮ5`YB_6UKl>bdgOp[{FS\h'Iv7QF% <8%=@N%;IUY$k'?:4lN3+?0'OH xצ.`4Փ+!H.ĮGяU}hfŸMUKd6>3J~d_ⓙȁs -6!kztvP}.Y>#\5/U!/k[Sg$m rHF4Uω jm995 -%)n|cm^SEn2Ա7˜(--FJ\ }jfŜ"˩mʔMap9B7'+\B &x1Aa7%ՠJ(-޽j{yvlեHaSOh] 5tt7I]E3Ub`"( Sz_Ȉz?z`Lbֈ˜aMdؗqMҟ-! x/`F8rvALc?9 ]N׿o^Hw͡^2^p79PZ%0U芄Tn[zdl-,\?گA  xlkF%߀n׶`RJ\J,eT2$XTowizGcآHdy[/g+˒mUuZ3%JjMv#]A jx1ܤGıYW*܏6}?>/2&t2gB1j,-ASgեu5}BϨ׎>F@[–34coz*ڂi)nԬ*XY Jg`@G`OND&:F"pܾKB?n+],>L%ӆ^G|mo;(}hgoG^ϤcE - zPTn=Ӷͬ ]?EN+Q~0iZܖ:گ)3LEۭЉ.Fk3KABdx 1P `r[?f 7 \78.c -́Y'4]3 9N2@?t8)&^Cdlnu#0N3Rz8F~!S  "jnao/)5*7SolEǙ @!w6:Oe\NN=/Z MCŘR' -=VMṄR[GB2KA QŮѤFG5]2Dp̊7^b[-WB-GM"-/QsGS`:Jx7$N(FO/ڽ[1_8=DDIF%*r hcZ!T zAz%y/vlHDm_-)(nd^<Qniju|ȑ1r)hBR|;WvJWp4~ -dY+4 1ww#v30g>‰p -VKu/e)$Uћ>7|FtvNyca-1$|&P2\@LIP tЪ|D ϕe%G`WtKY4& -V9QӶg0L6zU8Adt zu m}T߿!Bŀm{ڑLF٩$Wl|9 ̾ - -P9R>j&9:o^;jd@vʝ7T>{0[T}*mGئ)fc2ǎ/>W#m,3$' ]=JT{qu4rxI~Ejƛե#| WJ -nU41xrf'-,Od!1DYWrR;!t$o/=gSrR[90edPV?5/IrTy]!nc9$ -&5cZp5mz;1遯5p(tGƁCX3kU6j-`q}_=KX,5%~i6ӗZhF`9y+&5lZ'.0~xSl2$;S|yz|xV;#hIHH#{ncB3~SQT[t=#1d;\gkĿd 0lZ06FW@AErN_S/.Twl|UF:ҽWTTT5ʑSbxIZL!ᰓھD+! u. g -v(s;jS;1OYF?kS.W)0"S1nw=\Z2t4Ν}_9K= -3-XO,7Q,onN i:*uw0 qc$ WB~p+6I+HeTIn_(5MxWd:[z _MݞO973[U\! -Zd#ҲmbVV_ ncqZysMr/=#jzbH0 õLoEZQeZx TVa\qOX -endstream endobj 28 0 obj [/Indexed/DeviceRGB 255 29 0 R] endobj 29 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX$6Ra!<<'!!!*'!!rrmPX()~> -endstream endobj 22 0 obj <> endobj 30 0 obj [/View/Design] endobj 31 0 obj <>>> endobj 26 0 obj <> endobj 25 0 obj [/ICCBased 32 0 R] endobj 32 0 obj <>stream -HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  - 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 -V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= -x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- -ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 -N')].uJr - wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 -n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! -zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km -endstream endobj 23 0 obj [22 0 R] endobj 33 0 obj <> endobj xref -0 34 -0000000004 65535 f -0000000016 00000 n -0000000147 00000 n -0000043529 00000 n -0000000000 00000 f -0000043580 00000 n -0000000000 00000 f -0000000000 00000 f -0000056561 00000 n -0000056633 00000 n -0000056828 00000 n -0000058343 00000 n -0000123932 00000 n -0000189521 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000252050 00000 n -0000255045 00000 n -0000043971 00000 n -0000252352 00000 n -0000252239 00000 n -0000055830 00000 n -0000251475 00000 n -0000251523 00000 n -0000252123 00000 n -0000252154 00000 n -0000252387 00000 n -0000255070 00000 n -trailer -<]>> -startxref -255287 -%%EOF diff --git a/Assets/Images/man-doing-squats.jpg b/Assets/Images/man-doing-squats.jpg deleted file mode 100644 index 6073088..0000000 Binary files a/Assets/Images/man-doing-squats.jpg and /dev/null differ diff --git a/Assets/Images/man-doing-squats.svg b/Assets/Images/man-doing-squats.svg deleted file mode 100644 index c89086b..0000000 --- a/Assets/Images/man-doing-squats.svg +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Template.Maui/App.xaml.cs b/Template.Maui/App.xaml.cs deleted file mode 100644 index 613d687..0000000 --- a/Template.Maui/App.xaml.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace Template.Maui -{ - public partial class App : Application - { - public App() - { - InitializeComponent(); - - MainPage = new MainPage(); - } - } -} diff --git a/Template.Maui/MainPage.xaml.cs b/Template.Maui/MainPage.xaml.cs deleted file mode 100644 index d398a31..0000000 --- a/Template.Maui/MainPage.xaml.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Template.Maui -{ - public partial class MainPage : ContentPage - { - public MainPage() - { - InitializeComponent(); - } - } -} diff --git a/Template.Maui/MauiProgram.cs b/Template.Maui/MauiProgram.cs deleted file mode 100644 index 9f066ce..0000000 --- a/Template.Maui/MauiProgram.cs +++ /dev/null @@ -1,44 +0,0 @@ -using IntegryApiClient.MAUI; -using Microsoft.Extensions.Logging; -using Template.Maui.Services; -using Template.Shared; -using Template.Shared.Interfaces; - -namespace Template.Maui -{ - public static class MauiProgram - { -#if DEBUG - private const string BaseRestServicesEndpoint = "https://devservices.studioml.it/ems-api/"; - //private const string BaseRestServicesEndpoint = "http://192.168.2.23:8080/ems-api/"; -#else - private const string BaseRestServicesEndpoint = "https://services.studioml.it/ems-api/"; -#endif - - public static MauiApp CreateMauiApp() - { - InteractiveRenderSettings.ConfigureBlazorHybridRenderModes(); - - var builder = MauiApp.CreateBuilder(); - builder - .UseMauiApp() - .UseIntegry(BaseRestServicesEndpoint) - .ConfigureFonts(fonts => - { - fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); - }); - - builder.Services.AddMauiBlazorWebView(); - builder.Services.AddBlazorBootstrap(); - -#if DEBUG - builder.Services.AddBlazorWebViewDeveloperTools(); - builder.Logging.AddDebug(); -#endif - - builder.Services.AddSingleton(); - - return builder.Build(); - } - } -} diff --git a/Template.Maui/Platforms/Android/AndroidManifest.xml b/Template.Maui/Platforms/Android/AndroidManifest.xml deleted file mode 100644 index def1282..0000000 --- a/Template.Maui/Platforms/Android/AndroidManifest.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Template.Maui/Platforms/Android/MainActivity.cs b/Template.Maui/Platforms/Android/MainActivity.cs deleted file mode 100644 index 8b0f78b..0000000 --- a/Template.Maui/Platforms/Android/MainActivity.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Android.App; -using Android.Content.PM; -using Android.OS; - -namespace Template.Maui -{ - [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] - public class MainActivity : MauiAppCompatActivity - { - } -} diff --git a/Template.Maui/Platforms/Android/Resources/values/colors.xml b/Template.Maui/Platforms/Android/Resources/values/colors.xml deleted file mode 100644 index fbaa64a..0000000 --- a/Template.Maui/Platforms/Android/Resources/values/colors.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - #512BD4 - #2B0B98 - #2B0B98 - diff --git a/Template.Maui/Platforms/Tizen/Main.cs b/Template.Maui/Platforms/Tizen/Main.cs deleted file mode 100644 index 2c4e844..0000000 --- a/Template.Maui/Platforms/Tizen/Main.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using Microsoft.Maui; -using Microsoft.Maui.Hosting; - -namespace Template.Maui -{ - internal class Program : MauiApplication - { - protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); - - static void Main(string[] args) - { - var app = new Program(); - app.Run(args); - } - } -} diff --git a/Template.Maui/Platforms/Tizen/tizen-manifest.xml b/Template.Maui/Platforms/Tizen/tizen-manifest.xml deleted file mode 100644 index a5a25be..0000000 --- a/Template.Maui/Platforms/Tizen/tizen-manifest.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - maui-appicon-placeholder - - - - - http://tizen.org/privilege/internet - - - - diff --git a/Template.Maui/Platforms/Windows/App.xaml b/Template.Maui/Platforms/Windows/App.xaml deleted file mode 100644 index 5b5885b..0000000 --- a/Template.Maui/Platforms/Windows/App.xaml +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/Template.Maui/Platforms/Windows/App.xaml.cs b/Template.Maui/Platforms/Windows/App.xaml.cs deleted file mode 100644 index 957515f..0000000 --- a/Template.Maui/Platforms/Windows/App.xaml.cs +++ /dev/null @@ -1,25 +0,0 @@ -using Microsoft.UI.Xaml; - -// To learn more about WinUI, the WinUI project structure, -// and more about our project templates, see: http://aka.ms/winui-project-info. - -namespace Template.Maui.WinUI -{ - ///