From da68e0259bffe463e0cc7b6c9ea7b36131183dea Mon Sep 17 00:00:00 2001 From: Alexey Turkin Date: Thu, 19 Jan 2017 01:21:58 +0300 Subject: [PATCH] =?UTF-8?q?13.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=20=D1=81=20=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D1=84=D0=B8=D0=BA=D0=BE=D0=BC=20=D1=82=D0=B5=D0=BC?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B0=D1=82=D1=83=D1=80=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=D0=B4=D0=B5=D0=BB=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WeatherApp/.DS_Store | Bin 6148 -> 6148 bytes .../WeatherApp.xcodeproj/project.pbxproj | 20 ++++-- .../UserInterfaceState.xcuserstate | Bin 12615 -> 16071 bytes .../WeatherApp/Controller/AvgTemp.swift | 11 +++ .../WeatherApp/Controller/BazierCurves.swift | 68 ++++++++++++++++++ .../Controller/ForecastViewController.swift | 3 + .../TemperatureWeekGraphViewController.swift | 25 +++++++ .../WeatherApp/Supporting Files/add_2x.png | Bin 0 -> 108 bytes WeatherApp/WeatherApp/View/Main.storyboard | 65 ++++++++++++++--- 9 files changed, 180 insertions(+), 12 deletions(-) create mode 100644 WeatherApp/WeatherApp/Controller/AvgTemp.swift create mode 100644 WeatherApp/WeatherApp/Controller/BazierCurves.swift create mode 100644 WeatherApp/WeatherApp/Controller/TemperatureWeekGraphViewController.swift create mode 100755 WeatherApp/WeatherApp/Supporting Files/add_2x.png diff --git a/WeatherApp/.DS_Store b/WeatherApp/.DS_Store index d26d9344315e287a9bfffe008cfe208640c4eb03..5d489baf800f5db9e4ac55613dfef145aa698485 100644 GIT binary patch delta 72 zcmZoMXffEJ!^FrqS(oV+Q~8$3jm$c{x%nMFc_r( delta 71 zcmZoMXffEJ!^FriS(oV+Q_`Nvjm$cHx%nrJxGgY(B{B O#xk*iZ8JN^Uw!~U<`<;^ diff --git a/WeatherApp/WeatherApp.xcodeproj/project.pbxproj b/WeatherApp/WeatherApp.xcodeproj/project.pbxproj index cd17f80..263daa2 100644 --- a/WeatherApp/WeatherApp.xcodeproj/project.pbxproj +++ b/WeatherApp/WeatherApp.xcodeproj/project.pbxproj @@ -9,11 +9,14 @@ /* Begin PBXBuildFile section */ 0802D1FF1DE9DCAF00054425 /* DayForecastViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0802D1FE1DE9DCAF00054425 /* DayForecastViewController.swift */; }; 0802D2021DE9DEE700054425 /* WeatherState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0802D2011DE9DEE700054425 /* WeatherState.swift */; }; - 4D5C914D1E2CE3CD005D947F /* add_2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4D5C914C1E2CE3CD005D947F /* add_2x.png */; }; 6D1F340E1DF84D0600714FD6 /* TodayViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D1F340D1DF84D0600714FD6 /* TodayViewCell.swift */; }; 843CFBA81E1FFFEF008463E6 /* menu.png in Resources */ = {isa = PBXBuildFile; fileRef = 843CFBA71E1FFFEF008463E6 /* menu.png */; }; 843CFBAA1E200469008463E6 /* CityPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 843CFBA91E200469008463E6 /* CityPickerViewController.swift */; }; 84E7C9A81E2970790027489E /* OpenWeatherMapService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E7C9A71E2970790027489E /* OpenWeatherMapService.swift */; }; + 84F717F41E301CEC002CF484 /* AvgTemp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84F717F31E301CEC002CF484 /* AvgTemp.swift */; }; + 84F717F61E301CFE002CF484 /* BazierCurves.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84F717F51E301CFE002CF484 /* BazierCurves.swift */; }; + 84F717F81E301D15002CF484 /* TemperatureWeekGraphViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84F717F71E301D15002CF484 /* TemperatureWeekGraphViewController.swift */; }; + 84F717FA1E301F70002CF484 /* add_2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 84F717F91E301F70002CF484 /* add_2x.png */; }; 9D42497B1DBB8E0A00125040 /* ForecastMO+ForecastObjectProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D42497A1DBB8E0A00125040 /* ForecastMO+ForecastObjectProtocol.swift */; }; 9D6A14541DBA83EA00715576 /* CoreDataProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6A14531DBA83EA00715576 /* CoreDataProtocol.swift */; }; 9D6A14561DBA85AD00715576 /* ProviderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D6A14551DBA85AD00715576 /* ProviderProtocol.swift */; }; @@ -47,11 +50,14 @@ /* Begin PBXFileReference section */ 0802D1FE1DE9DCAF00054425 /* DayForecastViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DayForecastViewController.swift; sourceTree = ""; }; 0802D2011DE9DEE700054425 /* WeatherState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WeatherState.swift; sourceTree = ""; }; - 4D5C914C1E2CE3CD005D947F /* add_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = add_2x.png; path = ../../../../../Downloads/ic_add_black_24dp/ios/ic_add.imageset/add_2x.png; sourceTree = ""; }; 6D1F340D1DF84D0600714FD6 /* TodayViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodayViewCell.swift; sourceTree = ""; }; 843CFBA71E1FFFEF008463E6 /* menu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu.png; sourceTree = ""; }; 843CFBA91E200469008463E6 /* CityPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CityPickerViewController.swift; sourceTree = ""; }; 84E7C9A71E2970790027489E /* OpenWeatherMapService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenWeatherMapService.swift; sourceTree = ""; }; + 84F717F31E301CEC002CF484 /* AvgTemp.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AvgTemp.swift; path = ../../Controller/AvgTemp.swift; sourceTree = ""; }; + 84F717F51E301CFE002CF484 /* BazierCurves.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BazierCurves.swift; sourceTree = ""; }; + 84F717F71E301D15002CF484 /* TemperatureWeekGraphViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TemperatureWeekGraphViewController.swift; sourceTree = ""; }; + 84F717F91E301F70002CF484 /* add_2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = add_2x.png; sourceTree = ""; }; 9D42497A1DBB8E0A00125040 /* ForecastMO+ForecastObjectProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "ForecastMO+ForecastObjectProtocol.swift"; path = "../../../Providers/ForecastMO+ForecastObjectProtocol.swift"; sourceTree = ""; }; 9D6A14531DBA83EA00715576 /* CoreDataProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreDataProtocol.swift; sourceTree = ""; }; 9D6A14551DBA85AD00715576 /* ProviderProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProviderProtocol.swift; sourceTree = ""; }; @@ -105,8 +111,8 @@ 843CFBA61E1FFFD8008463E6 /* Images */ = { isa = PBXGroup; children = ( + 84F717F91E301F70002CF484 /* add_2x.png */, 843CFBA71E1FFFEF008463E6 /* menu.png */, - 4D5C914C1E2CE3CD005D947F /* add_2x.png */, ); name = Images; sourceTree = ""; @@ -176,6 +182,8 @@ 9D859B171D9E32690055F23A /* Controller */ = { isa = PBXGroup; children = ( + 84F717F51E301CFE002CF484 /* BazierCurves.swift */, + 84F717F71E301D15002CF484 /* TemperatureWeekGraphViewController.swift */, 9D859B041D9E31D30055F23A /* ForecastViewController.swift */, AE7B62E41DE0242F00D32D4B /* SettingsTableViewController.swift */, 0802D1FE1DE9DCAF00054425 /* DayForecastViewController.swift */, @@ -247,6 +255,7 @@ 9DCF9BB31DBA4286007518CC /* Helpers */ = { isa = PBXGroup; children = ( + 84F717F31E301CEC002CF484 /* AvgTemp.swift */, 9DCF9BB41DBA4286007518CC /* Units.swift */, ); name = Helpers; @@ -336,7 +345,7 @@ 9D859B1D1D9E32A80055F23A /* Info.plist in Resources */, 843CFBA81E1FFFEF008463E6 /* menu.png in Resources */, 9D859B1F1D9E32DB0055F23A /* LaunchScreen.storyboard in Resources */, - 4D5C914D1E2CE3CD005D947F /* add_2x.png in Resources */, + 84F717FA1E301F70002CF484 /* add_2x.png in Resources */, 9D859B1C1D9E32A80055F23A /* Assets.xcassets in Resources */, 9D859B211D9E335D0055F23A /* Main.storyboard in Resources */, ); @@ -363,10 +372,13 @@ 9DCF9BC51DBA4286007518CC /* WeatherServiceProtocol.swift in Sources */, 9D42497B1DBB8E0A00125040 /* ForecastMO+ForecastObjectProtocol.swift in Sources */, 9DCF9BC21DBA4286007518CC /* WeatherModel.xcdatamodeld in Sources */, + 84F717F81E301D15002CF484 /* TemperatureWeekGraphViewController.swift in Sources */, + 84F717F61E301CFE002CF484 /* BazierCurves.swift in Sources */, AEC316EB1DE969B8006F9EE8 /* CustomLocationManager.swift in Sources */, 9D859B1B1D9E32A80055F23A /* AppDelegate.swift in Sources */, 0802D1FF1DE9DCAF00054425 /* DayForecastViewController.swift in Sources */, 9D859B051D9E31D30055F23A /* ForecastViewController.swift in Sources */, + 84F717F41E301CEC002CF484 /* AvgTemp.swift in Sources */, 9DCF9BBF1DBA4286007518CC /* ForecastMO+CoreDataProperties.swift in Sources */, AE7B62E51DE0242F00D32D4B /* SettingsTableViewController.swift in Sources */, 9DBD3EE11DBA961900ED8FEA /* YahooWeatherParser.swift in Sources */, diff --git a/WeatherApp/WeatherApp.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/WeatherApp/WeatherApp.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate index 51eadbfc1fe9dc6eb845034cdf443dbeb16e90f2..308ce54938fbc35affd83780bfea8a9eac6bf0ea 100644 GIT binary patch literal 16071 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 GFZv(Yzcpq6 delta 7017 zcmaJ_2V7Iv_rD_v3E3~nO9Dwq0tu*~fPi4D1x4!w6-AuLh>9Xmz*UMlu~u!ZqQ=o( zmV2~STUT9GYqhp@SFNkHYOSTtI%?Jb4H3t${rt^G-h1bM@4e@q^S$4D-rG~TCwI0^ zAW#X^-gePW!6#}QJEvnC_h2*xm7#Jp7L7yW(F8ORy^1Q(YiJ6Zjow4=qgu2SRiR~Q z75WUVL0_QtXfyf}eT803AWc(JAx`I*%@+-_b4f7rKq^p!-;k6?Qjb2guCKyI1Q)cUN{pEz=QEHoP)>UB3z71 z@GH0yPr_~t*n_9wx9|)+8^43!#qZ(w@dvmbFT#t_OuP(#ftqIbo6IEh$pW&Fd`zmzQnHLJCts2+WGmT5 zwv!#?E3%X9CHu%pa)z8G=gF_+H*%RYkUz-{a+5rw$W1XNlu`i|QW52-hH9yf+Nhm| z(l8oLV`waGO<$tPG=+AcX*8YoqP=N#l(-Qg$Ev03&oQ|dA=y*DTPNc8W zDfA6Gl}@8o^j-QMeV=|nKcpYgkLfbHoUWiN=@)c8-9R_en4NSN-A(t>@91fIhMuM8 z=+E>5{f%CxztcbI9eSVsBR~Qy5DG+sK!H@C^ybm_^ef2n*3-$tV8{fQw}s$gprN87 zJ~lSeni%Je6ILe&g9+XSFRX#jVH*TP6u1U;P3_b-C$~pVuB$LxrD9JRBa6qU<%}yB zkyBn=I)oWI-k(EFF3Dje zL4in$hN6+kxeR5aVJHXXqCAw3Txd8N0cNm32w1@eb_j(qa4bUwXcP)V>Fig8ictv) z11Gd=bTJA>!en@z-Ma=BHcr&H)aCM~1S|++4*R@Kb>)s7F~Zg8;t^DdCLuSQ9gqi2 zMz4D_)!nU0fFK-RJciytQ(4nAG#$OkngP9yW};cB%DY3IW=VnkrXB_`r_EMdhW%g@vxtrqS0nw#GKL_IKr!k7Q9ODQRlm(AXOHuhuQh zudQes+KxQl9GPC20Brzy=U6*=(?g}+VK&oak9MKm-UgXI6n%{nvsIeZ%)Y6`d1J@0 zrSvGy%PB7?F7kW+4chAsmq!ZFK9tCATC{sU(EC}a-)4H{K~>O}W#R=uhZ+fT5XIJ@ z$t*Jp|2Rj{v20bicecRjRce$3{phu7Vg%>}I_U+ClLh7{?<7qt4xL74k+TM!f%Y}% z9K6KH{!c*kOTVIvKI;WYu0fX|1zdf5<`fh)k?{(;inu!T2WminLI>ywsdeZYi_Z<{ z#NsoYZJp8L+>EDWVT=i;@G^9PuFws-Ll5Y=1PieU z2VgN;gafe@(jXlMKn_cBF61%atdbSYF^_{0SC94BfQ>i^dO>gK0~z($gw4o-L!dA8 zW4pFLb0ft$$=%&?VQ@uE>-dC7YivwnOr>~0MQlP+n@DSPWn-jpbKGKZT1IL?o-YYG zr4ws$bCmcDZ*dfE>E|sBgMog|HpU#cW^BcAI36e9HZTYV!w?wyKWv5UMs_x_=otn! znVzBDV-xP&$hGYMk89A#Go~L*CV1~5bF0B~jX za1AfdEO3qYRx1ph2l~~nXK}u3K%asUBO6Rb?8SnewI#it4V8D4{&)z$FC@Ht-Z>;45yslglI4gXTzU;3811#g9^@aEH{?!ddA z^L{t}8m7T?=KYhiDKvTNwdYp+E&l$wK0n|C@D|K~tZbE%^?LTe2u&Wm-QU;k-|_e; z{_#m3j>AlF`FZt|&%0CjG|YlIPrW;b&p$WQulNE~!EDIt6`DNx+;dL-jvM|5dX+)v zLRM&UQ8hz`KF!!od>c7y@h$up%!B#0_zu1c3t%COQ;D{XS7&JM#t(@QITzzc1QARK zp+o@hz`O7sybmA1hl`1b1Q0QDkU->sk6<~hVBGtZ{b!ld`T{qhB!?YD`CZFhW6FF7 z>QH9PEGR2r3Gd^|V~4pfP#La5cJIpf0kTy#W?^ki{!_hI40`WuLz?k%iiwu+h^rww z__&7Xp_&o#MPraVn3!28i3w_Ihy`ld3I6OM)hMvUP8@8lXe|kYSg5NdPIgldb>QmN zGPowS;HcT_C3TfTpcX-A^Z8rR@ekjATO{z$PkHcl0@1vz!F#r%Y2r` zA2axWuKtg`8PKb=cw9lgtF)|tnyY+#ap~yiq$4&yiAhIN>=WrAok^D`tL+LaA**Tb z9whC_g44mh>IvmZAJUh#ptTTNL;At$rwv(Tps!&yMAwi(@X6DLp=6k^VG%^uG%mGi z_mF%t{K@Pi;IpT*k0PU=+h;+fh`hprONvPetc7*8Ootqd1HSU`Mo@=t6UeJEun=02^7hdy6#g(BzWjXBkgskvY%7 z=Mpb$hA$!O`LZ%Jc?LY!?;Y~~bNxPG(`@xkC^|7S6*ZxB^!h z0iK?Ux!zwvBnlda2QR$g8v$K4bl((R#!?(_Zq7^?IZA z7%Te5L_hZT7P;r!H-C}aMVO`YWVa<3N{GVtOWi=2DfnVVQLtkWQ7ehN}^Z!J*ppgvS z5`Kfr4E;MpZwwEOh@(mWiEc|@VCZ)62Q)DBpWtn9ghh0uT^RUZ#Te~MyD@MNxCYl5 z_y%}4IGd^a(7tT9(G0j%L;JyBjO(2vt!Z>1%|qN$I*1OYL+DVNO^4AOnhST}F5H8^ z;XeEW58&Zan$L*npd;u=T0q$=4m@IH%Jg7X^03!t;$g*PFdK49f~#M8zdVr$!|vrF4vni%X48OpNUmpBmpeb3$T5c0yccL9da;MXmwSj_&U!#?Dk_QVtSmeP0brh%vt@U8B2RoR^GAWN{Ql7$!$8iPa6Z^PIic8BodKE4E z_o35q)gt;PeT&YZZ_}9`Eb(BK2Wvgp;KAl6LO^HJdA@n((7Dv>!GRtu^JQ~9<26Y&Vw~9ot{>P2)c@X_Fv#N zbS+)y!8#A-Jy_4cJ6c&%=q9@Lzrfq*cDloZjUF82!AuB3U-DN8>`m0_Ajo=%evPDb z5B+AXHM*F%O^vk=-ABJ2@}%}j%_+~RW2XHmF_YEX?5Qcz-_xUPce4l_pa-d!9;Qbc z<6!aN5Ecp#wtBE_F`bV`(c|<4t0zaXuz=fx?H(M)%1XB{IQD0=;8nDq?WVslkIvIy zeYJ3T!5CL)%GN07a9+tG9O`%PBE97I#8pc#qQs$ni}Q0PT64;+F-dKsTdT>a#%hIL z!BsU#4g@CopReMo#aK$O(;M_Ay+!|mJP(fW;N~72>A@{MIGW`a_f|JmZRwFi9%XvqB>+qq}ROD?g<) zZzL=EOAiV-fyUb^j(3wKOrkfj?={~ssXRe`BB#kO>}$Vv>^b(8~OchiK<_hKs76?8TEElX5Y!+-6 z>=hgnToE(~t_rRTZVLVq+!5Rp+!s6$JQBLKLSASP1_@0j8Ymhp8Y&tl$`$2{hKojuMu{p#Zjndyy66qj zG|`))8KRk@D$yL#2cpkKJ4Gi&7ex01ECI0rodPlgMhCnRP#sVkP#>^3U}?Y(cfh`Y zg8`?-NGua8#40f-){1$tK^!Gc7N?7I#goJ!o-Cdso+_R$-Xz{B-Y@=Md_a6id_;Uq zd|v#g_?Gy#_^$YGiBV#gq)0kTT#`~rxn!JVg5-6{Y{^{7Jjnt{jbydtQ^^|1I>|Q4 ze#vpkFOpv+7bU+1_6-~o=q?MK5I8GvVc=JRdjfArrBb<6DOF1~Qj;`9YLkXaBc++r zLDDy*v!v^!8>MHZe@L%NuS;)9Z%gmWtg*eB_RD^d9h4oGos(UaU6Ilaoz-2`gViqeD0QK_NL`|? zR8LkH z#zk^1xo9qx>&^AyGPr(RF6ZJ#aHF_Fu85n=&ERHpbGdok07(hZ>8Ba08LcVNlxoT~6Ezi@N{w4HT{B3}3T{B$^T}xfGE>_o0*G-qM>#fVsW$6a$2J43EvUP>JGTm6+c-=%D=qBr?=%(tX z>t^ZR*VXG5>z3-4>sIPM*R9uW)NR&n(QVVY_vjAlPUx=b9`J}KypRvzB|Og?`C#6{ zTX{R*ijU>v_%?hJ{{r8I@6Pw+d+~kvzI+a!&kyGd_|g0r{#Cw`ck`3^Dg0F4%g^KI z^9%WUei^@lU&XKC*YRKQ8~6kK4gQgy=mq)!y+kk7YxTi;vp&SFx9LOm(fW9O8-0?# zy*^prL7%GcuOFr#qc7E$>&NLU^p$$I-lMP5zoTEIU#?%NU#(xO|6IRbzfr$me?oso ze@_34{*wN({))cApfp4o+8VkVx*K{L(ha>08HRp_{)XX(k%m!*LPL?^6+^jUykVkY zwqccFli{GzEim%N7-M^5im{`yv$2b@o3YFY#+k+{;~b;cIN!L?_^xrWaj9{+aiwv! z@l)d(<2vIG<4)slZ9BOu$!_Cp=w&srJUgiPjLFOUmY;%rzl)2DcWG*q6n#;|V=4s~H<`2z_ z%}dS8%`45T&Fjq@&6~|z%-hU6%=^rT&8N(l%{R=q%(u;V&3{{{MQ91INGwu|+~Vdf zA(jYByrsP*+0wz1YUylAxAeATSo&G|TLxHiEyb3JmZ_FEEi){$EVC_hE!CD4mJOD@ zmTxWJS$?n_v>dh^wftx~Vfo$ihviSpHOo!QZOc8&KbD6fC?qgM7t%7MQ^>%O;*e<} z)gfPm+zEMT66lQq=pv^KLwx~;9P3DzX*3)Xhl66*|Wy>*p!gLSiYt96HUmvxVI zul1PqwDp|zy!E2B!FtVl(|X%_*JiV&+bV2RY%^>NY<0HfwpF%IZEJ0tY+G#GZ98qd zZQt7t*pAuG+kUq-*sj@b+WxjZup>LQ3+)QK+HSHpvq#%o+Y{_bc6YM9qrJ1etG&Cu zuYHg`-(DDYFziU!>98wdH^S~YL=KIEcNiTeM~K7ja5!Qe@s2i*wvKj=mmDdMj*gLz znU3|2pB=wDZaD5c9y$Y@3a7?tcRHLcoiWbV&Uj~gXLn~$XD?@lGt)W1IoLVWIodhK zS?nxzo^oDxUg_p+a9#_~4lfKZ3NHyS3qKQnCA=a0YWR(ap%J4a#zYiHlt!G3xDjzD V;z8r!J6N0?fLsPoS3j3^P6 - + + - + @@ -23,7 +23,7 @@ - + @@ -136,11 +136,11 @@ - +