diff --git a/ionic2/app/assets/img/pokemon-mob.ai b/ionic2/app/assets/img/pokemon-mob.ai new file mode 100644 index 0000000..57714be --- /dev/null +++ b/ionic2/app/assets/img/pokemon-mob.ai @@ -0,0 +1,646 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator CS6 (Windows) + 2016-10-18T18:49:42+02:00 + 2016-10-18T18:49:42+02:00 + 2016-10-18T18:49:42+02:00 + + + + 256 + 116 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAdAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FUk84+b9I8p6HNq2pv8AAnwwQKR6k0p+zHGD1J/Ab5bhwyySoNeXKICy +ZtQ89+ddZ1ga5e3sqzW8ontLWEkW9pQ/AET7JPZmbds6DHp8WICJrintvzPudRk1E5mxyi+lPIv m+081eX4dSholwP3d5bg/wB3Mo+IfI9V9s0Wp05xT4T8Ha4MwyRtkGY7c7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqs+sQesYfUX1gvMx8hyC9OVOtMNHmi1Oyv7G +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 lTY//9k= + + + + + + 1 + False + False + + 269.468750 + 137.074219 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Standard-Farbfeldgruppe + 0 + + + + + + application/pdf + + + pokemon-mob + + + + + xmp.did:A2AF34865295E611BA2793B3265BF1EA + uuid:0fb2e79b-432b-46e5-a0fd-f72d5764a520 + xmp.did:A0AF34865295E611BA2793B3265BF1EA + proof:pdf + + xmp.iid:A1AF34865295E611BA2793B3265BF1EA + xmp.did:A1AF34865295E611BA2793B3265BF1EA + xmp.did:A0AF34865295E611BA2793B3265BF1EA + proof:pdf + + + + + saved + xmp.iid:A0AF34865295E611BA2793B3265BF1EA + 2016-10-18T18:47:15+02:00 + Adobe Illustrator CS6 (Windows) + / + + + saved + xmp.iid:A2AF34865295E611BA2793B3265BF1EA + 2016-10-18T18:49:40+02:00 + Adobe Illustrator CS6 (Windows) + / + + + + + + Document + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>/Shading<>>>/Thumb 15 0 R/TrimBox[0.0 0.0 269.469 137.074]/Type/Page>> endobj 8 0 obj <>stream +Hˎ%D+7 C7lbd`$'5ݷGxMHffdd䇿}{|OϏtDJWq|܏~ɳ6[{zƉ?}>tQӆ "fV,ɛK2+2֏rfU6~e#Gm &z&6hJtkuț +4bh3Raए4pXQV DsV gEHe`L "_5?$r ~g.);/Yr&gc&FxǗWGh&hKМC0|x); r;k~N e$bym͖E*t8mo{BG/'\wAŸ!Vͩx?ƕ܉WU:4'l@/wC@,(Zm8 )@cdWyn>P♊T/w]H'tJ3Yb'/ͧ|˭G- NUdލ'źے +"O?6p!j~YA$])I u)o/?c +)*)陦_w]{Q1Qϐ(AY=+P d5rfUSlՐ,- e4+EIJCBaH@SWRK <^q}-T#7gĤ+0u/A͞ +<;\{X% +,{اۇ~G͆Y+ޢZ@ea3y.iyfdti;I橶ERy8*ZhOk3CAO]%>wuu3[uyN:^zq.] +Ʉx=*2A6_fZA~G60RnŎ>+>.MaHm7sߎZSW\(.PC >L.R ۭƐ*^H/$`{b IM65}q([9SH5'ݘVA80rӔ^|ҖZ+\%-4!UM'Ef<amdS]DF9f ap4d2Id;IeLK )lˌ3LҢz!! l̴><$AHЇ׫([5h6ЊájB&r52F=9>Ii^h[Z같 +oD!2ˍpC:>aNH:RE5$]@}ƊDVmAwdyˤ*7P(CW3|ޠiHC(i('Ŷ*GG[;R qpuJ8jz3mPYI݂O!-v*=j07^&vazzp'+/>PXALK)'~6yq Q,U;ഝfuϞ6mC5T3 #w\6TۊD椥ID u8 @0Uj3N SoO+D2W?|r3a|sM >4ӇQ>|HDO^lQf8[H+|8oJ[8ZAU_j%s`f ^Xr!-!R뾍TH)tb6.+;g-AZo8j>j&m8;$߆!)G Aj7rh5,]Im|9Ʌiփ']U$b*E寄2ESd!T'1}RYGWW!tmUQaS|}jBxR9UcMBC^m7+騛Ef +ľ}-3A8aMFn,؎<*ֲDl'*zjjE8NqRRy  ?֮S ( +QjdFڰLA72k:(y:'w]3Wb{uCj|5w4 ķގ%R}l Ùp(S`/)ɓtoP[ބf 9 P%*CӬG_IjJ[uNR[jȦ; >A5r =3vFʫ1gCU]4ɵ!vsD[oPi2^q',IYB5\T]o,ku0c0d3H +k_84kΔ85jNwlO2.RsD+ůjTjR$40̈_U}1tkaF4]Zi_T}`s%<~wlpz2*X2g!t{10=oáVs& ~|ou]5l +[PFiZd4)ZYR\A$HjU<8he]}&{Ti7Dcx 9OS{c& @<{pOs7 *̻LBZ&&h6SD3,R/u/$b} F11Q%F-}u#6.E,UU2bjQ:YCؾQA:x8%ws1<W 27u(VF ϴ/m9Q viuH-b6t7̥w>Hk4ƫOM3aqYsB0V~s}$ۦaÓUFhRl6|qU睺ͨ)rlĮ[%a9&^ +@+TV[B$AUUC#tHJZRsXOR yfӐhʚVqKO0f-k*Avk!V58p_o:|I*C VbAF Sm҈2f֖8+A)E$0gh_LSS,_^ߦ~۔;{շdGI2C$iz !CJqcf1] {4757f*f͘3Z~Ȯߐ/]"V'_oB byLgTOAgo{+Y [H_m [Y!فR6u+KX +R&=L/Td~y퐆1e-&W$]v7@TR<4L0ꉼLg&-rLV.q4J:X;\,ql/ N+t.9;PENQ}' +[ +':5ϴ3ۑb1UbN$dt^g]c + +Q\Id<-$HP01YJ~W$4/3!asVppe<!pf"c[G~g%M!$ߺ*u%@C3bh5aF6\R+̵~4Cnw+>i R }Ơ +!TG#-*S.aѤ9_Yv!}IBPIkˆlZ*ظWBRydK,h: Pݝ,'|Pڟ +FxFLa&q=Kz}K5J%IKJVR+ӱH]AiDJ'zS/J`uHCV^3]Z҄jqP@LҢkE@d!_|_8%) K0 jYn[EMn}܂Ƈb{ڨR5B +7[J(+Yᯜ5ׁye]2H7`XH@3l!q-t`|W +t{f*/L\Rkn@*]d&~޲tk辁hDb/),OT`}\M7X,t@˕y=UR~$srG،)\&}eR*e"J՗7w蹭\ٛS`,pzl]Ɨҏa3#|wEpn%Rܬ i7x[Ժ5t_ba;?Nde@hC]Wœޗf=A0wxA]ccU>6Hb¯Y:~#(6Q_¤Y-}ꉾnq[LƫlԞ9v`KI[Kew/xnbYH; ?^b&Т3һqĒ4_kxŶwTg#Ioh)TT(%|&[D${E1#rbK9Sz_-#@;?b*aU&gܣrQΘV/^U|"/,L3 4">-1:Bj&2f@XU.gy$6G|)(Mrk,f 6Hhz +Oua.U=_kmӰ-iC۩wMIQWd!S!VT{:|]UyS戜r2 Š+U#! aOVyA*EYR1lnDTTxʹmqC3KUVV r...xac^klQC +OFxZsm"SE.kS[&ѢS_X6mT%OiѣH[1U#NhMN4F +W^QS2uPݚطzW=l(+S`upG: 3(]U\+:I6:T>n;9:&u7bzHJ^DzKT^t ReԟG"p(-WmXkL *#zvjv#'6k7c?2|V%5Y*׈/RVeZx0}Gm=Wqw[^ְbfkAHHp MjJ( Pbw3"HV /h>iRuSouyklZ1kal U>&X*ػҚԢY#vRTa1"sABL;T EC@8hH +0C(]Fh},P\MH/fg& 2@oe} @[麢kn.c6pzwX=P+wSvP]T&~$IJrypIgrLZu  jc1OLv줩xJ]CK+WP7xf.ќ(D ꢝ}R)q7-W-:k9SH k,гݏ*&fBNMz)p'|_F>fq(bxh63Sij*2nyB +@1CX\+A ('/܇ jֻ!* 4mZlQv +l\2בA +X׃(% 9]1%߇**,wl4"r"hWS{qbf>Tl2f6g Uc';.u+Ơ˜nE&K|F .?NB6vP)*/G\$؇1k(Ѭć& &>WXwŏ, +\9-2KG@Q筅JH[ŧI [XjX<#' ƐD}. @>hi/IyE߷t}A^D =37-6F?th_Pؐ5e 1<)igɫ(fdB&iPEHRˌa@uL&j 0DEs.u8ŢpP.Bpp6?jeצ#4IfY_'p R~ҰTUԚQZ[aLDB9lKޘp,4h5 "5ufL5jsUͰ g*EUz3ob(7Q[^N5r37f4,/Z_*DSaxD6EV#^ Պ% YMr&Ձ$S> +av jqJkGA> 1J8 ̛bTRuT4yf@Yhi]LW;ðcÁo(rG=Ma34:oXS߀Ozb&*BmӹE;ޝp:nJA]Puluգ8@b> +]+hV߯'FRhT5bz u̪'ބ-8H٣񲂒pajYiDkgjSdׁPR:\ĐB%Vnz/j iN 4S 8vC‹pU|9eU QT8qη:L׿yZ޿SȾHH-TB1񭃎oG~}b+/ٓ^+~z+'`!q4DaluгogѢDF&_]q~: к,͒uPOW N5c ԐdQ= !b; k#BVRE45z jՈ$ flOfퟪjfEU]r=JÁ~ZJt/0iX$[W0K -czil(=&o2峐8sDvߗp87Rv8(@)0]HgvaԌ 8-C~"ϙY.~5T[N_m:Z L˰]^>}b[C}DI=cn.d>PQȪrOX-TRJf9{ 4DTtv sb;;+ +et֬vfyU.~vC-0;j V{ݟ2vElR RnK5_7q06_l)i)D*Q) ' -K5ɳQ}31.-Wi.eС5lKIeq< ªYL )V%j/1̑g{yzͧI9}C: iЋcibPƴ1 NEN=uUk?-l9f^OCLYϨq* o?uԘ?y"~[ޚP"-$_{KzzLN(-~다"9,&`)E .zA-Hx8ljGo֍пpj11R_H + /o`nԱʪI ~B޾UtӾup&%VE%Ӊ`yi0Iyɣ$k5 !q TJN\a)g;(%ǹS~{59@,KeߍSd-'Qa_yfi]E18J:yGk  T)b]oey|ssܜSTIDDY,gܽ`RZ"&4ǢVƧC͎,|֦YQ1s^Xg@c+qI)4Aӵ&]/ OގhJy5 >H5YLWJaŔL$q-JNUA5tdUwkedqQb~Q]{KMY2DEH4rʓޮOk&qD"}Ї.R_ +?.y"0'O1w{'MS]VU* ?:ljJA5xm$/Mr +Y(dCԳN1nr7$|jl-Ǟ7޴x5!MڒK*t.DzoPEpm1P\?ըEsBE/,P"v͋&+:,t yuxC _-u 4+:c{&b9(!2GU*3XԚNc]n|utB]ի&{w]G9C&]f{I!i9-$q=~j4t=lG N8hx3/*|<`9D"{֊z<ڂXϟhɨBv0~l~eK7Xx}잢91Pa,_/6 %2X\DGg@轝k$^k8]swGGPeiؓ40~8Z2#~ #68-N5ݧT eL/ډIhpwTBoeD4PXŭ$MVZxpJ{rC׭9nw!lu\b"lT)*j@MBzyCk\iT$ 6=uٿpUQ^P[ jDP,@,1 \V}GZ t6nt]td:0*W+"D鯒R9Cϗ|3̮TyfHp؀Ի4GB~͖a~w vTZ L%2ox$E +?B%Ky wv>7<0-m@w RfZyr'7r!=gipvD(4Fui44 kZ^[w-%yĤMmiC딊`'^xAѵ&ҢM?66L [SݳsM`$K&%)X0hs.&LffGѻA!H#GtxN/Zrq7-iwVpذ0W Q7\6AbÝ!2T2[[? Bьihv^*S"VW r +zs= H_Z0A?YP.=\`ÜOx\ka>JsS 0%6\qc57T Àʢ\/ѩ5K%xuš%6렦MS~T|߆6pM5қ횎%_maΫOu  _պD@T4m7@5gLq1zydeV #pchNM6EdcB[;v+J/6Ių\kEDѨAe4̆[G&8+994ـ߆Æ=9`hcL^KNCAath)kr3o|X::#߆uIu]yóoN94'- XQ D;pPnM< k *kAu14ݪgHX McYwLF/q//T5[Ԋ"Gׇw-)}p7R{Us)KhF8 p< H>'D}p8]#/$D !R*Adө8\Da8n KuU-gPa yv)^AzЌu3${gcɡHqXx3oehJ)BR9/-T9 4"[( f(6(}9t+vn~ptivӾ ^8? a{z2m.^&Y՗C٭NMhsg"^{0.?> m؂kSe"pIϯaJȻXeQz+G -go:i!킆(7gٿ w cl;Z)"}ZL_iwG+O^)kK? 0Mjgq_f;WD. 'p܆墿/WL}߆4h]^ro )ϯC&cw>/XZ`-( +endstream endobj 15 0 obj <>stream +8;VFc0b+=0#g@F7Ht9@Png2#rX7dc>g%1bg6.\7Q#9bA6N!$"r`km(:RG_AZCA"$h +KYLff1NU&I=dVAMPq67_<;GnLI^5b1OCa02As!Le#IB)h9"g5[&db8Ht +[?!'[*X7@S!no:d(#YtA`QtfA_e'_(7K/p.g,/lJ?LVP~> +endstream endobj 16 0 obj [/Indexed/DeviceRGB 255 17 0 R] endobj 17 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]`XX1nZ8&94a\~> +endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <> endobj 14 0 obj <> endobj 21 0 obj <> endobj 22 0 obj <> endobj 23 0 obj <> endobj 20 0 obj <> endobj 24 0 obj <> endobj 19 0 obj <> endobj 25 0 obj <> endobj 18 0 obj <> endobj 26 0 obj <> endobj 5 0 obj <> endobj 27 0 obj [/View/Design] endobj 28 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj <> endobj 29 0 obj <> endobj 30 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 16.0 +%%AI8_CreatorVersion: 16.0.3 +%%For: (Josef Brandl) () +%%Title: (pokemon-mob.svg) +%%CreationDate: 10/18/2016 6:49 PM +%%Canvassize: 16383 +%%BoundingBox: -45 17 226 140 +%%HiResBoundingBox: -44.2344 17.9258 225.2344 139.9072 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 12.0 +%AI12_BuildNumber: 691 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: -44.2344 2.83301 225.2344 139.9072 +%AI3_TemplateBox: 90.5 90.5 90.5 90.5 +%AI3_TileBox: -322 -217.8301 503 360.5703 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -131.6665 242 6 2673 1762 18 0 0 55 144 0 0 0 1 1 0 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:0 0 +%AI7_GridSettings: 72 72 72 72 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 31 0 obj <>stream +%%BoundingBox: -45 17 226 140 +%%HiResBoundingBox: -44.2344 17.9258 225.2344 139.9072 +%AI7_Thumbnail: 128 60 8 +%%BeginData: 11967 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD45FFA8537EFD7CFF59290D30A8FD7AFF7E292F302F5AFD79FF84 +%0D0D302E300784FD77FFA92F2F3053C658302FFD76FFAF2F07302FC69E9E +%2F3053FD75FF5A0D302FA5C6C69E9F2F307EFD68FFA8FD0AFF5A07300D7C +%C6C6C69F2E30075AFD63FFA88554A9532F5AFD08FF850D30307CC6FE9F59 +%0D3054A9FD0CFFA9FFAFFFA9FFAFFD32FFA8AFA8A9A8FFAFFD15FFA8842F +%2F073028062F305AFD06FFAF0D2F0759C6A5523007307EFD0CFF852F302F +%302F302F3030FD2DFFA97E7E535429302F302F5A5A84A9FD0FFFA8845430 +%07302F302F2929302F305AFD04FFAF0D2F2F30537D2F302FA9FD06FF84FD +%075A0D302F300D3030300D36FD2AFFA95354292F07300730293029300730 +%072F7EFD0BFFA87E2F2F0730072F2E582F2F062F2F532F302FFFFFFF2800 +%002F2F3007302F305AA9A8FFFFFF59060730070E073007300D302F7B757B +%51300DAFFD06FFA87E2F5A5AA9A8FD1AFF845A29302F302F59527C7B7C7B +%7C517D5330293054FD09FF532F2F302F54527C7BC69E302F3030599E7C30 +%302FFFFFA828282F302FFD05302F305AFFFF53063030597B7C7B7C575A30 +%59C6C6C6A42F30A8FD06FF7E002F0D3030365A8584FD15FFA82F2F073029 +%52759F9EC6C0C69EC69EC69E9E7553072F2FAFFD06FF530006302F7B9EFD +%04C69F2F302F309EC69E7C2F302FAFFF5307300D302F5952522E300D2F2F +%A928062F307BC69EC69E9E2E3058C6C6C69E530785FD06FF530607302F30 +%0D0E07302F365A85AFFD0EFFA85A29302953769F9EFD0BC69EC69E7C2F30 +%2FFD06FF5A062F2F59FD06C69E542F307BFEC6C69E7C2F302F542F302F7D +%7BA59EC69E9E7B7C2F302F2F06302FA5FD04C69E590E7CFD04C652305AFD +%06FF7E062F30597A7C58592F360E300D847D5A7EAFFD09FF7E2F0730297C +%9EFD07C6C0C6C6C6C0C6C6C69EC69E7C072F5AFD05FF5906072F2F592FFD +%04C69E2F3052FD05C69E7B2F2F07302E9F9EFD05C69EC69E7B2F300D2F2F +%2F9EFD05C651307BC6C6C69E7C0D5AFD06FF5306073052C69EC69E9E747C +%2F3006280D0E0D36368484FD04FF532F295476C7C6FEC6C6C6C7C6C6C6C7 +%C6C6C6C7C6C6C6C7C6C69E592F30A9FD04FF84072F2F303030C6FEC6C69E +%5A2FC7C6C7FD04C69E592F3052C6C6FEC6C79FC7C6C6C6C79E9F2F362F30 +%2FC7C6C6C6CCC67C2FC7FD04C67B3030FD06FF7E0630303659C7FD04C69E +%7C0E302F362F3630300E36305A7E2806282F299FFD15C69E74300784FD04 +%FF5A0D0D2F29302FC7C6C6C69E2FA0FD07C67C2F302EC6C6C69E7C2F302F +%7CA4C6C6C652302F300D59FD06C67A2F9EC6C6C69E7B2F30A8FD05FF5A07 +%07300D309FFD05C651300D300E7C7A7C52592F300D365300292F302FC7FD +%0EC69EC7FD05C69E2E305AFD04FF85072F28292F309FC6C6C69E7CFD07C6 +%7C2F302FA5C6C6C6590753533008A6C6C67B3030302F3058FD06C69F58FD +%05C67A362FAFFFFFA9855A5A0D2F283030C7FD04C69E9F30362F36A5C69E +%C69E9F2F3084A806062F293075C6C6C6C0C6C6C6C0C6C6C69E7C2F2F2E7C +%C6C6C0C69E52075AFD04FFA8847D28002F07A5C6C69EA4C6C6C0FD04C6A0 +%07300759C6C6C67C077EA87E077CC6C67B300D2F062F077CC6C6C0C6C6C6 +%7A7BC6C6C0C6C69E2F307EA92F30070E0D300E2F0D30C6C6C0C6C6C67A2F +%0D302FC6C6C6C0C67B300DAFFF5307062F2F54C6C6C6FEC6C6C6C7C6C6C6 +%A52F302F302A7DC6C7C6C652305AFFFFAF7E7E5A7E29292F309FC6C6C7C6 +%C6C6C7C6C6C6A62F302F307CFEC6C65236FFAF3059C6FE9F302F362F282F +%309FC6C6C7C6C6C6C7C6C6C6C7C6C69E5930362F302F59587C585930362F +%C7C6C7C6C6C6C753360E7DC6C6C6CCC6590E5AFFFFFF0607072F077CC6C6 +%9EFD07C69E53297D5253299FC6C69E53077E84540730072F07302F2F07A0 +%FD09C69F2F30535407A0C6C69E5330A90D53C6C69F300D302F3029302FC7 +%FD0EC652300D3052A59E9F9EC69E7B2F3052FD05C69E580E307BFD04C6A4 +%2F0E5AFFFFFF84062F2F302FA6582F9FFEFD06C6513084CA2E307BC6C6A5 +%2F302F300753529F7B7B525930307CFEFD07C6C72F3054FF5A307BFEC6C6 +%5230302F9EFEA5300E307C302F363059FD0EC69E590E367BC67B597BC6C6 +%C69E9F2F307BFD05C6513630A5FD04C67B3630AFFFFFFFAF2F060D292F07 +%30077CFD04C6C0C6C67B075AA853079FC6C675302F30297C9EC69EA49E9E +%7A58072F9EC6C6C6C0C6C6A52F30297EA85A077CC6C6C69F07309FC69E30 +%08537A9E7A2F0D302FFD09C6C0FD04C67C0E307BC6520E52C6C6C69EC69E +%7C0E59C6C6C0C69E7B0D36A4C6C0C6C0580D36FD05FF840D0D302F542F30 +%2FC7C6C6C6C7C6C69E5330A82F30A5FEC6592F302FA5C6C7537D9EC6C6C6 +%9E7C0E59C6C6C6C7C6C67B592F302F5A2F3052FEC6C69EA07BFEC67C527C +%A4FEC6A47B59303052C7C6C6C6C7C6C6C6C7C6C6C6C72F307CFE9E300EA6 +%C6C6C69F9FC69E5A30C7C6C7C6C69E3659C6C6C7C6C62F307EFD06FF2F0D +%0D2F072F2F307BFD07C652302F3052C6C67B07302FA5C6C72F2F9EC6C6C6 +%9EC69E53079FFD05C69E9E9F515307302F2F9EFD07C69EFD05C69EC07530 +%0D309FC6C69F7BFD07C651302FC6C67B2F302FC7C6C62E7CC69E2E307BFD +%04C69E2F7CFD04C67B300DA9FD06FFAF0D0E0D2F07302F53FD07C67B2930 +%53C6C6C72F3029A6C6C652302FC6C6C69E7CA4C67B3052FD07C69EC69E7B +%5230307DFD0DC6FE9F532F307CC6C6C67B59FD04C69EC7A4590EA6C6C67A +%302F302F7D2F307BFE9E580EA6FD04C69E597BFD04C67C0E5AFD08FF5A2F +%A80D0D072F079FFD06C67A2F52C6C6C62E302953C6C69E52073058C6C07C +%2FC69E7B0753C0FD07C69EC69E9E5130077CFD04C6C0FD07C67B300D307B +%C6C6C69E7C0E9FC6C69E58C69E2F309EC69E9E2E302F3007302FC6C6C62E +%0E7BC67AC6C6C675C7FD04C62F0E5AFD0BFF7E062F2F3052FEC6C6C6C7C6 +%C79FC7C6C652302F307BFEC6C652302F302F590E5AC6C67B302FC7C6C758 +%C7C6C6C6C7C6C69E9F5330307DA4C6C6FEC6C6C6FEC6A6533030302FC7FD +%04C6523052FEC67C2FC79F302FC7C6C69E9F52302F302FA5C6CC9E590EA5 +%C67CC6CCA4C6C6C7C6C67B3630AFFD0BFFA80D062F2F2F9EFD08C6C75230 +%29302FC7C6C69E7B29302F300D307BC6C69F2F2FA4C69E302F7C9EFD05C6 +%9E9F2F300730527B7BA57B7C52530D302F300D59FD04C69E590D309EC652 +%309E9F2F2FA4C6C6C69E9E7B7B7BFD04C69F0D309EA458FD08C6580E36FD +%0DFF530706302F7CFD07C6A52F302F302F59C6C6C6C79E7B2F302F307CC6 +%C6C67B3053C6C69F2F300D547CC7FD04C69EA452302F3030302F3030302F +%302F2F293058C6C6FEC6C62F30307C9E3030A59E3630A5C6FEC6C69EFD07 +%C6523158FE9E59FD08C62F305AFD0DFFA80606063029C7FD06C62E30292F +%07302EFD05C69E9E747B9EC6C6C6C052077CC6C67A2F2F2F07302F7C9EC6 +%C6A4747B512F072F07300D3007072828002F07589E9F759F7A2F0D302F58 +%0D3052522F302E7C51A5FD06C69EA5510E077C9E582F9F7A9F9EC6C6C67A +%300DA9FD0EFF53062F2F307CFEC6C6C6C79E7C2F54072F2F5AC6C6C6C7FD +%07C6C7C6A52F309FFEC6A52F30292F2F300E5A7C7C537E547E7D7E5A5A2F +%2F06537DFF282F5A7E5A5A5A7F5A532F362F300D305A8585AFA8A97F855A +%597BFEC6C69F595A5A5A845A7E5A85FD045A2F597B593036FD0FFF7D0606 +%2F29539EFD05C67B2F292F062F29A5FD0CC652302FC6C6C69E532F280029 +%29300D305AFD07FFAF542FA9FFFFA830A8FD07FFA830062F2F5AA8FD09FF +%855A2EC79E3084FD0BFFA9FF857F2F0E5AFD10FF282806542FA0FD05C69F +%2F3029292F3052FEFD0AC67B30307CC6C6C69E2F3059530628282F53FD09 +%FFA95AFFFFFF5A7EFD09FF7E2F2FA9FD04FFA9A9A8AFA9FD04FF852F5985 +%FD11FF5A5AFD10FF7D0028293052FD05C69E52292F06292F307BC6C6C6C0 +%FD05C67B2F073058C6C6C69E2F07AFFF7E2806067EFFFF5A5A53542F7EFF +%FF5384FFFF2FFFFFA92F5A535A2FA9FF842FAFFFFFA87E2F302F2F07302F +%84A8FFFFA907A9FFA92F5A2F5A2F5A2F5A2F5A5A8484FFFFFF5A5AFD0FFF +%A828062F2F309FFEFD04C67B302F2F062F2F307BC6C6FEC6C6C6C77C302F +%54307DC6FEC6A42F30A9FFFFFF7E2F5AFFFF3029302F2F2FFFFFA953FF7E +%7EFFFF542F2F302F30A8FFA8AFFFFF84300D302F302F302F300D5AA9FFFF +%AFA9FF84302F302F302F300D362F300D365AFFFFFF5A85FD0FFF2E06062F +%297CFD04C69E7B2F302828062F2F30527C9FA57B7C2F302F2F063052C69E +%A5512F07A9FD04FF7E7EFFFF2F2F292F2F2F5AFFFF5A7E5AA8FF84FD042F +%302FA9FD04FF7E302F302F302F302F302F30073084FD04FF850D302F300D +%302F300D302F300D302FFFFFA930FD0FFFA8012828302FC7FD04C69E532F +%7E2828282F2F3030302F303030292F06292F542F302F302F30A8FD04FFA9 +%5AFFFF5A2F302F542F54AFFF842F5AFFFF5A29302F302F30A9FFFFFF8430 +%2F302F302F302F302F302F302F30A9FFFFFFA8302F362F300D300D300D36 +%30362F305AFFFF5AA9FD0FFF2E0028293075C6C0C6C69E523053A9280600 +%28062F292F072F067E530606302F302F2F07292FA9FD04FF7E5AFFFF2F2F +%292F292F0784FFFF2FA9FFA9292F29302F2F29FFFFFFA830292F2F302F2F +%072F072F0D302F300736AFFFFFA90D300D300D5A5A845A360D300D300D36 +%FFFF5A85FD0FFF7D28062F2F53C6FEC6C69E7C3030FFFF53280028062801 +%2853A9FF840028072F062F28537DFD06FFAF5AFFFF5A2F302F542F3053FD +%05FF5A302F542F302F54A9FFFF842F302F302F3054A9A88554302F302F36 +%0D85FFFFA9302F36303084FFFFFFAF5A30362F3630FFFF8584FD10FF0606 +%0630299FFD04C67A3029A8FFFFA87E5359537EA8FFFFFF7D2828537DA8A8 +%FD09FFA87EFFFF2F2F292F29302F2F84FFFFFFA8302F2F29302F2F2FFFFF +%FF2F302F2F2F305AFD05FF5A302F302F302FFFFFAF2F302F300DA9FD04FF +%5A302F300D36A9FF5A85FD10FF7D0028293053C6C6FEC67B2F307EFD1CFF +%AF53FFFF5A29542F302F542F5AFFFFFF7E07302F302F302F30A9FF84302F +%302F305AFFFFFFA8FFFFFF5A302F302F30A9FFA9362F302F3084FFFFFF84 +%362F36303030FFFF5A84FD10FFA828002829307BA55253292F0754FD1CFF +%A854A8FF532F292F292F292F29A9FFFF2F2F292F2F2F292F2FFFFF7E072F +%29302FA9FFFF2F302FFFFFA907302F300784FFAF0D302F300D302F362F30 +%0D300D300DA9FFFF2FFD12FF532806542F302F303030292F7EFD1DFF53FF +%FF7E29542F302F542F2F5AFF7E302F542F302F542F54FFFF5A302F302F5A +%FFFF5A84FF845AFFFF5A2F302F307EFFA9362F362F3630302F3630362F36 +%2F85FFFF845AFD12FFA8002806302F2F072928537EFD1DFFA854FFFF532F +%292F2F2F2930292F8454292F29302F2F2F302FFFFF5A292F2F305AFFFF5A +%A8FF845AFFFF2F302F30077EFFAF2F302F300D302F300D302F300D305AFF +%FFAF30FD13FF530528292F28537DFD21FF53FFFF7E29302F302F302F542F +%302F302F542F302F302F54FFFF5A302F302F5AFFFF2FA9FF845AFFFF5A2F +%302F305AFFA9302F362F300D300D300D3630362F305AFFFF5A84FD12FF59 +%01005359A8FD22FFA854FFFF532F292F077E2F2F292F292F292F53840730 +%2F2F2FFFFF7E07302F2F2FFFFFA82F5A2FAFFFAF0D300D300784FFFF2F30 +%0D300D5A5A845A5A0D300D300D30A8FF7E5AFD13FF7DAFFD26FF54FFFF7E +%2F302F3084A929542F302F542FA984302F302F5AFFFF7E302F302F3084FF +%FFAF7EFFFFFF5A302F362F3084FFA9362F36303084FD04FF852F362F360D +%85FFFF5AFD3AFFA87EFFFF2F2F292F07A8AF2F29302F2F2930FF7E07302F +%2F2FFFFFA929302F2F2F30A8FD05FF7E302F302F302FFFFFA92F302F300D +%A9FD04FFA8302F300D307EFFA85AFD3AFFA953FFFF5A29542F2F7EFF5A2F +%2F302F2F5AFF7E2F2F302F30A8FFFF5A2F302F302F307EAFA9AF5A302F30 +%2F300D7EFFFFA8302F302F3084FD04FF840D3630360D85FFAF36FD3AFF84 +%5AFFFF2F2F292F077EFFA9292F292F29A9FF7E072F292F2FAFFFFFA82F07 +%302F2F072F2F3007302F300D300D2FA8FFFFA90D302F300D5A5A845A5A0D +%300D300D3084FF845AFD3AFFA95AFFFF542F542F2F5AFFFF5A2F542F5AFF +%FF7E302F542F30A8FFFFFF5A302F302F302F302F302F302F362F307EFFFF +%FF84302F362F362F300D302F362F36303030FFFF855AFD3AFF7E5AFFFF2F +%2F292F297EFFFF7E2F292F7EFFFF5A292F2F302FA9FD04FF532F2F302F30 +%2F302F302F300D305AFD04FF850D302F300D302F300D302F300D300D85FF +%FF30A9FD3AFFA95AFFFF54292F292F5AFFFFFF2F2F2FFFFFFF53302F3029 +%30A8FFA8FFFFFF5A302F302F302F302F302F305AFFFFFFA9FF84302F302F +%302F362F302F362F300D85FFFF7E5AFD3BFF7E7EFFFF2F542F532984FFFF +%FF7E075AFFFFFF7E2F542F302FAFFF842FFFFFFF7E5A2F2F072F072F0D5A +%84FFFFFF2FA9FFA92F302F302F302F300D302F5A5AA9FFFFA830A8FD3BFF +%A95AFD0CFFA9AFFD07FFAFFFFFFF7E305AFD04FFAF84857E8584FD05FF5A +%3084FFFFFFA9FFA9FFA9FFA9AFA9FD05FFA93684FD3CFFA9547EFD07FFAF +%84A9FD04FFA9FD08FFA830A8852F7EA9FD09FFA97E2FA9A830A8FD0EFFA9 +%5A3684FD3EFFA85A5A7E5A7E5A7E5A5A2F5A7EA9845A2F5A5A7E5A7E5A7E +%5A5A84FFFFFF5A5A5AA9A9FFAFFFA9A95A5A5AFFFFFF845A5A857E857E85 +%7E857EA984845A5A3684A9FD40FFA8845A7E5A7E5A7E84FF7E5A2F5A7EFF +%847E5A7E5A7E5A7EA8FD05FFA87E2F5A2F302F5A537EA8FD05FFA8845A7E +%FD095A8484FD08FFFF +%%EndData + +endstream endobj 32 0 obj <>stream +%AI12_CompressedDataxzʲ(zLDpBBQ&Z~ j߭;խ,֘s9ۨU]]]w7ݞ4X*N6~) <7:p:ř +݅I*NViSn b2.gzZA&" 07nÁP=igCM'~4Ff\V1$A$H$T!\6wNB-Tc&q?2? X:Hf$IiZMmq2NCxuF",c'nId8B7\r]xpGrd< / :7+ ˏ1f2l]|oO3Y I9O'3WQS$>z/B'w}t_ (1y~-^o<`=@&S"ϥRDҒ?aR1D"@< +њLa +ȏq gп,k BĈknYaS\Ls Z"$f=տ|'Fs`Tnch-9+R}:4|{ˡ?sNwЯ=nؑp_dLИ-auIKh (]H2~uNVS]SMyK\aZzZzZµԧk|8O%!{e@շDnAx &&8 1ӽI9B^zWKRE_m9‰|i{a"7Qk/$b̥W?s3L7~k%a9l t* Myܚ _|Z*V;un" NhsTKS^mWS,y3ê0OOǝo!z[`a6kQW\[11{mO.A |@z +?,cD }[{Ke DZ&92d0fȍ9!(pHpYzf +T/6FlN t7ĸ?̃0@v6?Y7PjE?U$h0Ȉ"? 4W$f |:6~^Tdgq_syG𠺒{hfo,ɂpϲYN? =#!iY*Q~g Ov>AOVPOFOJ +4:Kg4M|%_Ηt>3y2OsK\2[ɲOA*Щ|*lO&O*EKd>e%Ka73tɔ`LL"$E«i*CehJ02UY0׳)u 6^)4LS)%Qd!0,I5(T;*,OL2^2d6+Yvq2!h0_10gY -le,QؕB y;Kq2QN*erß|Tf\T$CVRI'S]'_O Y?,Mʀ& V5(}2S 9@Ga@|d2 8Y4d>I'I4 I2MfHdl +m >XeiFKH8)@2` JӰ4ӹt>Ma2L"̐I}/!OJBCO dJHaZɀL h:IaJ䓌D`IbQK$I!LFR +< +HMH5A\Ug-q8%_89Kq+/W^?#/۲//=C賿<*N>OT2Á@b2y4MѡWJ=?HMx( MIC_7P pbe* 焿 dvǷ&Bz*5%g7|n2N=> 6~ tA# ',G:Ld^˿vE5jcIϦd4-Jcn)F+΄(My +`?ɢQ0-t@8'‡H1Eqz#Mb+Y$w,:*!49IE:V겫̷nMsEi%_hV̇2!76Nu4Ӌ83N"56ė$Y|a{r3 ēOb_<]^\Mڼ@p bl&/UiA༁Y];ön11kˏC#~Ƶ$I"k~oA0~a$~s~۹1 +Bmk:B{ڝלg~{Hro\Fbo?])lIY#0*t~>=lZH$saDQ +]A D\hF|-yM٥V8.ɻc+icw,~ ⁍ 2=+:U8Ɠ1JIk=IiU6ڤAOd9=PPݻX@m ٚ V- + ֡wNX7СZ\[9b4)Axao.GH$sɴz<:t׻ Ook2,NQiTSFl2َ9qwf1?Ʀ²Q%ֽF~>mmOk-.#*/Р9RPo0?*BI"  4ʔ+m02^g3 @#EZЧd@·h+:x!p#zedi>pɋN _n/_IW|2V97|0RuʵX#N-N'3s;nW$tV%i?.jMS l7CţRj`0IW:٩m@ .NCNGRR%i>08?Bnf4ZjcN@ ]j \lyxUX6԰ɤ2MN|UTR2FϤa*~ >kr tw@Vá_ *osH*c-kz8$y2nsLH:\fwH`8[RhMZsY?k5v3~2L)WJMvmKpXcGiM)Ҧ'-gs`Ws];=GW7{m;(G&Gw@j,{J6n ^!&hR,q3A{,"lIi@G`}Cf8"ڼ"):-e!'JBͻ5N؇BZ&LR]RtMl.&eDlM1Gqgf):gLD)k]F*Ö#[l/xF3~(GS: :~E5j&%K]X`ɌFMrPnZdy}yڡ0reHxѶSvDFz[cN`Nz⡵=ZY,HDTLƎMufK;ФG֯Ӥ1t6Z !ۆ.І"-:bwwjP{ a ,k ƍa NtX5ZV e촚[tw&mrF?ݦdr84E{n{M1Ap1OS=(ܬ3Fj$=Tq %n:_$I鷰/8Po;Z9su#e{5)Bk9xCJ{d윛:|KC6x1Ц7o[p*mBxHJeL?)\Vb`5rML +#gfZzesi-1L`J,NOsG,Ow_#G{S,{cBu+tJ0+MVx_=L..¼N2"fQbx/FbQ<'xpVg3[(ztb3 ̲B:cߙK,J&"w֋S[ +~d{gMKh|'pF7J{v^,Q+jh0*_seSf^%i.J^O%@io?i4rt=5:ĵ&ʭmK;sK{??~8Z֏;= uHpYU^L@xpKH[{A";z;g i22($U-L|ech< +Ţ<3ތ1<_K[h>3aO_li9|h;{<ށ!S[hZ^GvHu TLfЇ|ߺdn%y +=Pp@C47OqP|./E_4<~""(ɞtd@GZZfmtLAcI7f2OBPUt]B{N:'=qF'Eo1iͨ( +Ҕj4fϹ-lpBfd&Ξo҃)oB__͞P 0BOǺ?\Qb4kA8#H~p 74~zz@Gee;:PmFB Wi%مi= 3uݗKSh U6><z@xV]!42 я99-k3C"9qB4@OE_0/ ]Yki@pw  uεѬS#蠲0v%!U ī,`Z0dJI1)>2:+QX*+0B5IqE[kVBcTOZ]31>tg)꤀ʞ1M5uh` mK7Ш@(СV&hkӍq7zǠB%|S̊6;gJ:Sgdf7nƉ<:Ql7>l͛L ~U| K {~|ݘ.?&8cvY +W0Uh +8r+H0T\$~3gF@#[}okp ȱ+ b:!yD#)!Or @røP~g cOg A\Ccf0  v7s &s[|gnwg'Ϊɬ.c<Ξ~g9dbE?ej/#uPeTshƭ5[nQXEgf3p/l|=xhkxnrcz .AeU O093sI+A- GAD=h :Toque+[xEG9ۉW@˶.Θۛ ~]]?зW+S2GLv`޼!.aUgԀ +w89BeK:SƤ ދA<~ixZͳZe?M]XEcPWwg8CMmdЋߘuz!Rgid)J6@yY$E*Ѱ^\)-de ZN:اNlO 3T=Dtpo̕eJVKCܤ*}lͶG…MwBږD$xz<]^&U& wI[kH>^y)`*r`j{?E:[n&^FW:UErZה9њfSeqɞN܊ot:ijxxr˞L)NtFRݩgA-`-OɀQ=}Gnn\cw^}f;@2fێgpH3ydۢ3@/7:lAމ>;4_O=/`AjvQc2xL{ ^8}0TŗߝNw{ ^ϵ}e"7 Wk#>XLiBbIk$h\f7B,?GHgWl'(]I^lgzһ7 0M>tTFGTʊKܠ;lO~[\rgkXnTնt>1M&wqUٙ; 6G[MO]ԀL/Lõdi=APQ8[^թ=*hx{iu9kNJr j2.[B fа[6eԮlChR> oG>0"nF0d$^z F뛆 UݩϋnjLAvhRꜤ{ńdzUvG"­Q{P ~ Gb1 ~(`)UI2)O~Q*N`b:OL nQ!Ӭfb\neƀ:[k/+07,H ,QEt +h=-Y'43X΍1M'[`/z2l6QG'֣$>x[ͫ{ś^wf-ncOChЎGvD]!9Աc0 /oxsoȖARzhd m"bFڊ5= F[nmRàP)j&]`w32H&w9n4^h#JKXۀwDX<VCZaZ)]_9_C: +݆VP6wVaI ٧nUڠUBgR~$.G}3˓ :t9/\ qЙYOل 5R9I`+b8,0o٘1&.I0R/zsܚo~ҹX|14@?y&=h\T+^ۛ ,ަ>Mu?A-F-@FZ _;Sny4d(6;]bVUI.y6>chW:bj0:#)p_7irXiL*UL)JisFM'9@OKz{rXn4V@r70lT^073FIM>2CG9'fc0!fWTE9ZQbvh"vn|H7 L>A?z49AgM &@*w`asS4#}M7MW&H6`c1-sψO+q&`'?=[_easQy^ &0p?;>bؒGp eez{uc*cGK7Xq9Nu4"T4 #M=u:hd#u[1tXz4yU 39%:obL(g41i@ZG`K_pN&xZM+NEƞ;2ϏUxohl;r"/ ޤ @=eCee$ 0˭@ߝn˯~nZ3ue?X| p8ǩ!B@yV>#t9RMӤjur2zdij?q ۖ9NzDx&Lp3[Ni*o^&c}X[&sb#/gvoԤiU=&5hĵt~Xc='S++jn߽Ya`fvƚ~~#* riay"խɅ-ֽyMX y1e7{{M7!ƚܧe#wybN3Om3s&,~WXN} ++ +nE +wᦟJĺYfFV^ +h Ɨ%k"9zZ%=>}l+zb} UMZ~T X_l,/`efVV{5cv+K\筱.1"RXz#MVFB|^^_!K{-zVXEjR<<:=۴Yݜb42k䜵zy\}~=8iW$jo9]Ƭ^}OG\ill* ;H=Q,b{ X ?3~)!n¦~1Vr8T3/ktA|~&>HXU[@Ry#$b"rX<'O . _OBnifn䠶IIXO1\NW_kjP:7b9FX dDa㳠Yg p7Qxs5$}sOf~cRm|==չ3} +RUbHiG~ϚRsq3?6LO 9-پ#=ۧȆ&w_Z ."is`zլiD37vkzg'oz>?&7 ͳ@6؟?4Aol)n6LkO$skt4D[l#=ؽsFlvov&oBƭx"?-MO_}Z#Bb*[==y)^럦wSھb%ZP6qp6ڠ%~w`+ ۪w +'w(BT$nbrH:!z~ [Uxͧ9vaPg \n%G02b9$6X ++6/bVJI[DsUŊThᦟzk밶ww4VS4lVg[@#++@4\Z|`}~fEL[aUMuZX W8Yc= Ɲ^mpb) Cy?Mfp=2Mӏh +(?]۶ঙ̀``otD.VWht W,gvEA{mCJj?vC H{< NU! 8_Ɲ8W_Yb\Nd\ِnGr"cA h*51#d=Q-qtڳMU?毳7.r +$@κ1hi, |4ukOC>{(rKZxMĄ'̹-u?KnF z7MsBjӸpv&:zj'ΌH/kPZrA1+㸀 x%bzY +BGKKlIzPxQ +}Qyw׌N= 4Dݕ5>*m-G2|m?=og<]:yh\Ѻz}{bJa#^weX2yhCҳ!!oI u=+ {be}iޫaL[M7)24YCKڒ2 q/.@bи.@nidx6*34PuVU- 0B< np}vK7ͬj`h7"*S4i,NK)N9H`J93GM2j*Iͤ;dWUQj[r)b5;9ўwrw iO{[O#DH4*s8?z@h]Q}ϵA+(I4O>u(mgΎfd,oѬU<^o9;\d~hWؚjhbIy5iKXT5#n4HB8UǢ&cglz"t=:Qg Vr=]:Yy:@b3o8Rg,D@PKC'F  [戓lߧ-׸gQ>qfQe,0ʩQ<=,MxYߘ>EۊG̃dgXqa Rfpz} +(i/r_!nqR)́\;ȀsΌƽMȵS0wR4:Blzr67jj@lCa@˚%D3̇XB-:h +E Q +.Mf6 +^f̶X7Xp[Lgl%[NՋm+cOϱ"TVRШNaQ̪\BfLώhkOsz\%N|- )0uY7:]JBįrR_ثSF Rbρ u jUꨎ!2Z%Pu{BvqΒ]YȾ'F}R7Qvntt&{FN#݀6~~}YtN1P@{If0ykn$l99VnE l0!u#(ag_#E@Z.rNBT}縕# m{G~+YLzݙ@86*J;KAs5eל3 sE2Uazޞd,v|Ľ~FՏm΁G+Ggл~|tV:N=XV\b7շP_yr>o6@r>Z>)c |ε|f=|Xۦu9m5-b)sr>Z j|֥Eksa-sNVb+M*\YRqs})J9uK',d1~C=Ʋnb' Z]IeF @7}RR贸ÎJ |T?*,/9wp">#EPٝ1}J..u~ɤ^`Z޲m8stf.bbc6֬%[&)Z2('S~>ҭ15@VlB9K֐s6%^-C{+ƭh?nU^W H_Aչ?ح+pn,۾<ͥdoKSh7ӟWGzm̎E/R"u^?_ #-wgJ,ћ ] n>iOS)CҮ~I1 2Foћљi6Qdzգ7`"oћv!)!zs$ZG=Bf9P07EɳTv y 9bD +m +|U)bt1 a4JcҩsqS^ (OŬvB+*+P BzdԓX-nO+6\/ +PݒV'ˇ vW qɆ--\,a $> h1A¶z +,#XŨY)zgh'x\^liˡjTh-k=>OMK5ꥵu\Y# hmʄ1icS}.P۽mH6, 2mՃ >uYzL,n>Hb7j9@k*Eukk)EV/EPE/3OZz=+xtSH[O1՗$LL<m+.ܬg{T Fhr>ycq36}*rU^vҚ +,XuYY*> ^Ϫo U +J,3!W+쳪pe lz}VU}2!YMѵ>+ZltSja^X._اKU*V,쳪zF>6QgUշayoJ}VU}^_aʙ),2 +@I]k-쳵:[gXE4}ND[caUUZg%#7ԻVgW>+˜sPgUfvqPgUշza,yk("~#M}VU}&%Vg%>acŘiw}){7OW?)ynrBWf=>rnZ |usWP0&xd>ջa:ء[6I/lNoE*SQغL'32SĦ[!lz^_ϊh#~.sre^b>KJp\`+6,.ذI|X?Y{?gMWlLwByn>=As)7nT4mPT|oRa-{7݋hʶ +[KV7t-eSuYwuG?7u+#hk )nmw<] UZLTwkwrnp Վ YbgVgO"+Bo&7YIሰ."/&mypɝ~T慟(#bFJT}*Djk;{~7aŦ\7T8Mcnb;mƻ@jCMƾ2Oj+J5r.áסM\>ξ +՚$p'}~U}:`nS&vkf(4csB<0s!bbm4&iDxI|h"ɬZ$~N-RuB+U9]`4d1A]2;"~>rZ)w>$鶉ĕf!TD*-ۄKRZKrC7\|pS!\cC@n +iL +g,.f]=7zb\D5#]89bGV^epr>V^G*"mK}k=ёwjlb6/2Whp-G~ۋӓ*+ǐ=T` +dܳK,d$ rH#\gd$ C]["YiO]UPX2➊}Sًn}.unR[6.=%_f jêASn^dP@=0cuh&-"\|eW@h7PwEZR%^]+ Oh+$.^$k=!%IpS-I4̒C=dIWJsD +rG$X[x%E;r!vYB v)[Eo6l +v7RzYb͗:vY}Z/+4gMnX-pJ:g8 +]xS/҅~cK^xhRmWRpdXGRv.<Ы_xv +z-[S1m{\xlڵ #.gtOd{Nd!sdgv#9ŸGQ'W,DL^nѝy%T;=MFzJ?g,"R> 0-uI#**u*Mq|c]$Nbz%݃WIinJ,_s$A5Q71eetsMp=yGb3 ?'M4gj +o >y4䁌:Ѥ\*w;UfQo@! +4' B=*SAJȓG3zN[O}eF)r2ЛQu pqX*ͻ<7Q) Kq1/ƼjH.cpPyqku/V~;H=M=^F!Ó4}DJȼg@܆0v;'oKzi@ '礩gU:K= #upł"|| F{OG9S@k[R@HZGR4'H &OL&:Ua[7׫Q5:y^1Q\My.ťP? +JY@DNΥŦ@Mq6r߻,"JA%MXK8P+} 6fU@#Ad'XUe*ג`UFhyJR 7A&%!){0MIvT[E{:SD G2d\6d4vA?$:mM$9O_Ũb|ΜM'#|EGD, +3::)tFBkEGЀ5>Z(&ilCzH>򩻴\[RxvO<€σJOq{K{AXKd LK&;]PBM?Y4{:vd䵟f`͐~%ݠ/Ԋ&mVtMhc0`2a8S"P |BDd,Irңo$).`wEHcs, .l ?98]zΗJ7ؓO##*& {"#37wd8`mE>mEpS<=TO[ ] +?xrCG-渿$joyg(ι#NczPޛיac\l"e+6v(O ~ՙk\,(Ta{D[!Ub?F͇ρZb}xC>$B0`1Ʊx0;cVN +yEˏx8ղ:tKN[R8x#u<݃1^u2[q7r06\ln^QK۫ʹZV43 .~3ޑ +F^B`d3r;ߑS +Oo7\ etyY#hO`Xhk̎*sAlY*?jUJV{O?IMx|Fk[uhf;=V-l3h!Gmzγ}O ={1I ++|vv[H7ֱ +dX&JIYR{mƛIyi[4_ZnOxUYQ,qQIKAoqٮyٍG}3~QouG?Su4k5 +)&̲뤂᫗ݗPXV? u$) ,q<h|%YMi~EOyy5?lEu6qʝIPn~skU uud&_jfE11;9k8RyßD;a V" !pYq;FOگ-V5]-9ojXw.4 +#OgrԋxE6UUK}CM$k6k6i<0I4 Go5F\{{9}s=ͮQj>^ +O{o'+d:2o֗vn^{d?d_7w^;@zo~N +_N ;+I|`}C5/_sum8EcQ>2xFc2E> ?^oNӚ|SDYQ&>#γs5XO>}N=^I}So[cm,oaa5~aDŽ)ؗ| ǰhZbr%JXw˿Fʶ{3:4vݲ%m_1}|~ ߹iO p}yw-Q7㺱p??u]I +Ckvg[|3y$:Nm-.y^ͯU-~6iѥ?/G5]݅ɉbLf#M?'osOj0{緗?fe? [Go[{3//A0ƃ|9 Aϙ.1qY0w>8s<|γzˇ B_6ޙa쭖i9 |7=_û'Y ]b p7aI 63﵁YPKG<෍!L`Q}yk8N3=huD`=hߞ*YK3{yKk6/vHP]z6]^RP4si>^EظK+\<%?/>b4wY3]ăByHJu3G6n_oHo]a'1=h`M.:PykWVڭ_iln=X:x#F+zIX;/ҲX_pi2c%}r!VN'&JNYi>Nλx㣋xvkuO[bW-IssemO._Nް1k<.#}qaHl Kwko6^nO_ӱ|b +!mEf>uS_1ʛ3+\8)X˭7ߌҬϙr&j?i޼uɲ1#Yp\\ }}`167DE%MG~w\v/4z)>X]~z}{Ty?o߲ۙ?\5 ~aoP6 ysz\KG9TK Y97<}qfnQz-=3˅nwӃZ@slYD㳷r _\Kܻ.??{ػkT!D w )ē6qeח8D»|tg_.o}]sOxk7i˿nSBܭ?p7hݿ4!T|MfʜDž.}WVVµX 2UFPbVac9JpHUbJ~-rɓ+y5ٛK索ۚ',̟_m ٠ؙlP< y{~F{x{mLNqyg<'}FWV''$_p۶)i,XǗƒw߾< ܫ`viU|?-M]w@1rÿTO"_͟rbYyO-&6n\^ ğqA:hg~P4_duJV< _^9Fq+^<|铧[sν7q;lwc{k_ܹSۏ7.Gة~ǥ*/nRo=We6 n0WF@Ǘ~}*_\OBԵvO]hڥ?rnnx߼}Εj=֥ ?P"Ao% V_Zz͔bξpB_g⦫̬,yjf/6Y9hWdc f7/}n/ w.bqI+q~d:m섟ߙ}G_1aQx{>"Ň7"Dc;?L@K3n]76g@փ'@k[サ={"TDF=z +!g(3M0v~ `8 0,mOSD +җr ln~=Ïqx ܛK ~"GGO TldUb4zޱD-)~1zdQ3&Cr;rqxY#{zKvhi눘rϖOJRRg<ڼA }}>?^'"1^/#lk=32yGtGܟ'~:?YQڜZWNґ<4Rdy1GnQ{}0Yo{jVT£GօJ;վ +C;2^iS9Ҏd^J[8lx4OϿw/~3.Są)%}`'TG}xy̲0_N]x%"Y)GI}.)Z$9J3-@J33 _^>yP8᣻W/!Շ\d`Ӣ :kNq LVjZ9G*8NY@e-n^}owxo"Gh=\AH]n(qsV,ȿ~p@=z;g.?Z _#aE)qfg?t_x <z?itRpR`'Mu[/{:w]жڿOuoo^X~vOo;UK2p7wܺL#錩LxKa_lX{vVzRkə%ulQ"c/ove N+8E^C`?kጂ } +6"pi'lw|tn8DdZg/!lG7v@4"lDnX(D$qNE};=x8)H{/~%Ons 7:|}/?z>:hn)8Sk'|ٕO=Qtlz ~ݏՌ8Qw3L;7.ϩP,-XZ5ޟxq/it _w.֥宓A[DՈ^]B\!/^.KO2?ۛ/_֞nndt|rgםO^uSmGmVw}|?ulN^{/gM??n=sqsOy=Fd3`^ۙz ANg'@'|9̟b*ax=ÿHuM:R0ZKX@t~x*}\}{go ts sC̽{'ߤ9}:Osǯν1_R5mJcKs%,uUih+y)\X{󒋩JG[';krΕ%R>dE7|'sa!v'>'pYRR*y A޻/~nKs.uYu]ιXb)yƮK}bzv1ȭ;Q>׿ -߷d{˥Cޔd[l{鬒u1=Nv,-yEʴ7 䊈 ~}N*Dɢv*fx=GH UFHO-jag\ +I"eK`C ;m},P/5-RzGDR/8 u)M>]'bz؇95l*ISb=W $"Z,}Ƀ԰9k\+.r<{#peB}ٸ;3:1QK%v+G~T*=RT;g[!q'ٗA +vHeO1#a +2l +G +2vIg7; 5I!Ɉb=슆sE Tb +q};á)q_E2hh}=T(pEsd NN.GNR W6Q_,+a59POއKsPX+"3QhE#&ST ĕ'K + *&e4H ,{t.:}Tr"Wto) ub>$h.1X$EZ8F[*@E1遦>:ld'_e*䠓KR3}"/Yd+q]?*\5b38*;LNuikr1Q ZQԃ8 i"$& H7aɮK#r3eT,守Ϧ0L2G1Ve)f\ bc=LPsa˜ǡ9KA|`\T|?Bpf\1U_{‹;S F\dv`- +D[dEz5Q.J(G[|N>\4|hm$0dj@d+^kJ񤉴E_`ICoGo5؆91'}BqgTqZ(ёQ+vz@ a7բ!Hw(}-xILHiAd?1i-<+_; E?/ W(V. APaM!h`Mں89$>y4q5)P 4.%p0JW],io +&De7tJAُ=bT.ҧģe#ej$ +KQeu$V[uW3֑D#@k,WT"1XYYu"Șj1W JtxT{bw_'4 +68`=qIt+:?P"˗vpz-0Ti-)>a ?RSW,7?쳤 +ymeW1G0ȄXֈFlWCwth +F$dSGTCρJ +NE7qA Z-h$3Ks:(1/- $Il5Ϙs:i!:XϴlDrDlvoLYunWplj"N!!BC~i&,|o&"І`o(=cQ‘ErQWLD,Sqѓ92Ύl gAk#802n^>HDI=T0yֈ& lrcUZ,(;TU6y@:R2\B- +ko3vIᜌ츯 +% tgXYNbXLʊ#xAYt-68|tj:?yzHjmōzP[U +RUMìds꯲QtSMotb pv]{['Z.S>(cP$ѩHCzpƅCk4;bǎmY}"`wIXm?.yp4kCV%;Q˨7OJ<+2c?z3_G.[ Β(>d'"U(*B,Dt[h} bD +G@oKTt^"qH(&q4+<{tZ!)&@%F,yJM. y!ǥY@\LMuԤ#3ؠ9M:b8K/4Go*.JW3R mATĈyRC5Օ3c #5c&d[xԞ*i\&%WmuHQ&3ܚTf@Gsw&)*q,d&Ȃq"iMUb1F?$ycufst's:6iГ؇ |RrboE5yAzO:C_M;ՊA}o ž'wG%%K{M$04M2zQ K>[dkϲLjj8ϕߘ +X(2Aܷ<}Y2Wx#jeyd &H%lCĦ!*,; ZEXdKj$)<IG1]hf`.Њ'u1&d0GSkW"Vc7 %=bSb?{x0b͎QH#-1h]ڱ"4 eŽZ}2Y蠖Apwܾ=+56BDi}~C( pvϟ\eFdPH@- Y1iut; 9fn&+XJ71aY 7f(^ c4z{f|윆Y-ecndMLh0|u.z $sׂ%\} ^nLP՛m;z\(r+MM\)%)[(@ I] P2O+c%jH΢zYZ]Uܨ"r&S.;-w/bbB3hT77E)ľێH72yX\$J 4h}Rw]@D'Yg+s2 +0}m$"HJ\oNVZ #S8[Q Vb`u P%kɦqcVfM0p!zлxH,B3iͬZp,>3jڲzY8Sꑷ]:)!!fCũgw}9N]:zu(fY>,yWeZedr_R 4?g4G 9$ KHHӠ$7=~hY\ oG +#}>CESPi=Hp "vUzG:l+KA-)=*sq,'H+9_ EKH^$)p`$YiبƾǝaW2#=!pjl9!rlDe1h,@GRRgt8Fe2c܀8l V {EA"Xְx\ᓻj󲷘{5ԻʴWLSFy =bP˫̅9QSY ρ1,kTT@;2&"\g|V?Fҽ:D f-Qƈ'*@KGkNpY* T:IVcmBg ,U^U+LVD#$>z3-" ]*# + Oapr#j55 e& 'tRFMQ=5RZ }&!dcU#L 7D3a.@4lg""l1J^H pBaa'"#?f BPʴNZ @`_K}Y9B2eR|fbRi~#72v +E_*%w)II,DX|mE%|jɘ)!2T?H̀n,)1+V9ORjjv@ 8APޫsX Dd;U>^VѴ,^䱬3]¶UV@Eٱ:߽@8 Dj!/cwxrsdſlr(-W񘴕 whћHb8)u!!nrA,n@t`~dwuZ = `@#9xydɡ90P6U9W찇b=XA*g\$jw608|šZIQiu0Z)81"5]#Wj -(ftg@QcIo-ث g"M;g'!S%o`"%D9c_ESؘ5hei~큱0ha.`E"l$yIȳS*$hhf oe^-N}JCIZB]:dFՆ8I\z2{..ʩ4nQym +Q( 1.LR~EI:WP6 Df 1dxģVC.+fee0),eyLK*Q Z/> ju̅hUPedTgNC1jGs!kQlx'V /::y25(dPR;!# }V'Rv%Lj3tIY[ <?"W0$X4d NSX$PWk;19H l9KNYIb"f2{GWαPw9(<];5\Qur~,P95X¤p*>$]#5 Z0+g6 }bcwۍk/~e9w0?!*XCz(&SH3V ؃vJFHguܓQ杺ӧW eǜ ;;ӡY\%apucpiW)\](;#h:?APjՀ);-&zuU:olua`WRnMD8DzM ZO8Yt GRdCO>a@oe|߰vkE8ԁ5sTU-)<ȣ%Jmx,,vv +ODL`Q|E6ydCSG+5E(X]F),OS݁OAlZd o,u-3<*dI&W{^7h\$d6߅.u.lRN!0߲e4H-Zn9j-a2X܃q|4 HӠG) 0^P3,W6{3ƴi m3grQye6z]zwKv~,\6 dѦYn|'^P;B_#9dրBuEB"֫Rra:=cz Mĕ"]A,Xa&mшyxLZՇC0p + Aɤ!PvSՀVbpM1Cx"X!#Dx,%MAIN}Z@RAQvrEe\0d:+" b 8[\xj1E&vi}XkafD84\Mt>bMi!(,><10}ba&M.&wǪ +ywPp{!@o^HXք0%ʪc  9i&=)~"`[/R/{ga64N eZZJ .#c2q&UI_yϓ7% + Xih1ġ- +p3Z+rY8w>8d~23jetYۑ?a{OZ #*y-V;)V$-yF}ڌZX*QDߠq]?vP +0$1֭lEXAA4ي4^z=~3*jMiCjwv%[Hl@4lQ>D].ϝQ5D?)>8Ș_%W0`gEh&]_t}ˮх"Fo „, |9R݋U3d=UVc/Z$)'"Z2 7)0x7>ũ>hTvҐgڪ^@cP BTQX`aѷFІ(z`ez[A4xX J݂44WCNMNLlP ϑ1)SFrL^ I͠O*t +q7Z^j\w!C.ՋZ>Hf59%z0iZH`byzZ2= +մERdiw4yh Gd !LϪ,ԶN(&g 6X#7Q0qmѪA% BcЬvۑCC=fp7L a4W9Ɓ@y=p8޿35"ʡPEO3.vAVށ=uc+o탨<RfN21sw容O}|oީ#XtJZi?ZnDt0K.9h2BoIO9FjQ%@(g #@5<2EkB7 m(G4f$ n0Y +^*#aiYDXoI!ӟd5  @(K`74PPǙhKO^BnPlڪݢ $Qrd{QWñs1Xre!ff,;>OHt G?T'a@H )'LfK,0[mAkӮ5NSjlEd (`GƑ-F'.|Cb䢬gơa>a@pv,漢6FGɰO@?D"%{6O7d3 L"(D0 AzZ(8C}2G S>e)`v%&vW}DS>i>n}c6pۂt vzHB}h7}:{>ا5˷ g$g$y +n0M*~U؇]Hz&]60ף37х@NlTRG A;h!;X}:E`:et'bo\yHDՒaOeT-;4Li@34q@Fxd4<EI{2x?X0#Njd9| +Ԍn8*3Xshwdg;x)YN,j-MO P[j:=&aY8g)8lx\L~RK#ر `uAf8Cb c8#p]3>-.)Ď 0 g)8d5\,+0l.m +<p54<$1z+Ƃ۸NFD=*Bsl232!44MGXw#7X/u[M`^e:vqBE"׍4gEQOr40qԩsjo,f;/ K]50z,ShUXU. ;"\ D묓 #` h j2 XJ~N>@&0K>o.vƎgU,LDxSOyaKgH*t5rhI' !N)N !盛nU}ln S~zkA[7 mDH 4}_K 0{$AUtZaY\anXz8o`b.+õ>U~0ZJ1.B&|]m㙭)Ӕٴ9CjLMְ>6ljV7Z Ǫ#њ hMl GfXf:M? +~ۥ5Tٱ~LQ"COD;=gL)hB)g~uM䮽.<ݰ'5PDG;6;NO6uNV*d 8AzISp4'"*^8([ uv>0Z[ ^%I=>dY/&hq 6GmKPt%;P9Y cLYy̫H귰Dk 늬2ojQ۟> endobj xref +0 34 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000029357 00000 n +0000000000 00000 f +0000046771 00000 n +0000107208 00000 n +0000029408 00000 n +0000029806 00000 n +0000047070 00000 n +0000046957 00000 n +0000045194 00000 n +0000045340 00000 n +0000045486 00000 n +0000045632 00000 n +0000044246 00000 n +0000044632 00000 n +0000044680 00000 n +0000046561 00000 n +0000046345 00000 n +0000046129 00000 n +0000045778 00000 n +0000045894 00000 n +0000046011 00000 n +0000046224 00000 n +0000046440 00000 n +0000046656 00000 n +0000046841 00000 n +0000046872 00000 n +0000047143 00000 n +0000047317 00000 n +0000048387 00000 n +0000060561 00000 n +0000107231 00000 n +trailer +<]>> +startxref +107419 +%%EOF diff --git a/ionic2/app/assets/img/pokemon-mob.svg b/ionic2/app/assets/img/pokemon-mob.svg new file mode 100644 index 0000000..6200546 --- /dev/null +++ b/ionic2/app/assets/img/pokemon-mob.svg @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ionic2/app/components/map/map.component.ts b/ionic2/app/components/map/map.component.ts index aa0b32b..229d8a0 100644 --- a/ionic2/app/components/map/map.component.ts +++ b/ionic2/app/components/map/map.component.ts @@ -2,10 +2,8 @@ import { Component, ViewChild } from '@angular/core'; import { Events } from 'ionic-angular'; import { Geolocation } from 'ionic-native'; -import { PokeSighting } from '../../models/poke-sighting'; -import { PokePrediction } from '../../models/poke-prediction'; -import { PokeMob } from '../../models/poke-mob'; import { Filter } from '../../models/filter'; +import { poiFromMapEventData } from '../../utils/poi-from-map-event-data' let PokeMap = require('pokemap-1'); @@ -46,9 +44,9 @@ export class MapComponent { //this.map.filter(filter); } - private onClick(pokePOI) { - console.debug('map:click', pokePOI); - this.events.publish('map:click', MapComponent.mapPokePOI(pokePOI)); + private onClick(poi) { + console.debug('map:click', poi); + this.events.publish('map:click', poiFromMapEventData(poi)); } private onMove(position) { @@ -67,15 +65,4 @@ export class MapComponent { this.map.navigate(start, destination); }) } - - private static mapPokePOI(pokePOI: Object): (PokeSighting | PokePrediction | PokeMob) { - if ('source' in pokePOI) { - return PokeSighting.fromObject(pokePOI); - } else if ('clusterId' in pokePOI) { - return PokeMob.fromObject(pokePOI); - } else { - throw new Error('PokePOI cannot be identified as PokeSighting or PokeMob:\n' + JSON.stringify(pokePOI)); - } - } - } diff --git a/ionic2/app/components/poi-bubble/poi-bubble.component.html b/ionic2/app/components/poi-bubble/poi-bubble.component.html index 624491c..e808c57 100644 --- a/ionic2/app/components/poi-bubble/poi-bubble.component.html +++ b/ionic2/app/components/poi-bubble/poi-bubble.component.html @@ -1,4 +1,4 @@
- +
diff --git a/ionic2/app/components/poi-bubble/poi-bubble.component.scss b/ionic2/app/components/poi-bubble/poi-bubble.component.scss index e3c6fa6..b80a4cf 100644 --- a/ionic2/app/components/poi-bubble/poi-bubble.component.scss +++ b/ionic2/app/components/poi-bubble/poi-bubble.component.scss @@ -8,7 +8,6 @@ display: flex; border-radius: 50%; border: 1px solid #cacaca; - box-shadow: 0 0 4px 1px rgba(0,0,0,0.4); padding: 10px; } diff --git a/ionic2/app/components/poi-bubble/poi-bubble.component.ts b/ionic2/app/components/poi-bubble/poi-bubble.component.ts index 2eeee67..3f3b2aa 100644 --- a/ionic2/app/components/poi-bubble/poi-bubble.component.ts +++ b/ionic2/app/components/poi-bubble/poi-bubble.component.ts @@ -1,6 +1,6 @@ import { Component, Input, ViewChild, ElementRef, OnInit } from '@angular/core'; -import { PokeSighting } from '../../models/poke-sighting'; +import { Pokemon } from '../../models/pokemon'; @Component({ selector: 'poke-poi-bubble', @@ -10,7 +10,8 @@ import { PokeSighting } from '../../models/poke-sighting'; }) export class POIBubbleComponent implements OnInit { - @Input() pokePOI: PokeSighting; + @Input() pokemon: Pokemon; + @Input() appearedOn: number; @ViewChild('circle') circle: ElementRef; arcHighlightColor = '#FFF75A'; @@ -19,7 +20,7 @@ export class POIBubbleComponent implements OnInit { constructor() { } ngOnInit() { - let appearedOn = (new Date(this.pokePOI.appearedOn)).getTime() / 1000; + let appearedOn = (new Date(this.appearedOn)).getTime() / 1000; let now = Date.now() / 1000; let diff = Math.max(Math.log((now -appearedOn) / 1000), 1); let max = Math.log(30 * 86400 / 1000); diff --git a/ionic2/app/components/poi-card/poi-card.component.html b/ionic2/app/components/poi-card/poi-card.component.html index 7096b4d..84424ad 100644 --- a/ionic2/app/components/poi-card/poi-card.component.html +++ b/ionic2/app/components/poi-card/poi-card.component.html @@ -1,46 +1,59 @@ -
-
- +
+ +
+
+ +
+ + +
+
- - - - - - - - - - - - - {{ pokePOI.pokemon.name }} - - - - - {{ pokePOI.pokemon.description }} - +
+
+ {{ pokemon.name }} + + +
+
{{ pokemon.description }}
+
+ + +
+
+
+
Pokemon Sighting
+
- - + +
+
+ Pokemon Logo +
- - - - +
+
PokeMob
+
+ A lot of players seem to gather at this location!

+ Based on {{ poi.tweets.length }} tweets. +
+
+ +
+
-
-
- {{ getPOITypeBadgeLabel() }} -
+
+
+
+
PokeMob
diff --git a/ionic2/app/components/poi-card/poi-card.component.scss b/ionic2/app/components/poi-card/poi-card.component.scss index 0f33203..f8a046c 100644 --- a/ionic2/app/components/poi-card/poi-card.component.scss +++ b/ionic2/app/components/poi-card/poi-card.component.scss @@ -1,114 +1,90 @@ -:host .slide-card { - min-height: 100px; - width: 100%; +#slide-card { background: white; - position: absolute; - display: inline-block; - bottom: 0; - box-shadow: 0px -2px 3px 0 rgba(0,0,0,0.5); + position: absolute; right: 0; bottom: 0; left: 0; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.8); z-index: 99999; - .poke-poi-card-content { - padding-top: 12px; - - .poke-picture { - flex-grow: 1; - } - - .poke-name { - font-size: 28px; + > div { + margin: 0 auto; + max-width: 700px; + height: 170px; + padding: 10px; + display: flex; + + /* General */ + > .side-section { + width: 120px; + margin-right: 10px; + display: flex; + flex-direction: column; + align-items: center; } - poke-rarity-badge { - margin-left: 10px; - align-self: center; - } + > .main-section { + flex: 1 0 0; + display: flex; + flex-direction: column; - .poke-description { - font-size: 12px; - color: #525252; - padding: 2px 0; - } + .title { font-size: 2em; font-weight: 300; } - .poke-column { - flex-grow: 0; - flex-basis: 120px; - - ion-row { - justify-content: center; + > .description { + flex: 1 0 0; + color: #525252; } - poke-poi-bubble { - width: 100px; - height: 100px; - } + > .buttons { + display: flex; + justify-content: flex-end; - poke-type { - margin: 16px 0 6px 0; + > button { + color: #123784; + padding: 4px 10px; + margin: 0px 2px; - ion-badge { - font-size: 10px; - padding: 2px 5px; + ion-icon { font-size: 26px; } } } } - .action-button-bar { - justify-content: flex-end; - margin-top: 8px; - - button { - color: #123784; - padding: 4px 10px; - margin: 0px 2px; - - ion-icon { - font-size: 26px; - } - } - } - - .poke-poi-type-line { - position: absolute; - top:0; - right: 0; + > .line { + position: absolute; right: 0; top: 0; left: 0; height: 5px; - background: yellow; - display: inline-block; - width: 110%; - box-shadow: 4px 3px 4px -3px rgba(0, 0, 0, 0.75); } - .poke-poi-type-badge { - position: absolute; - display: inline-block; - top: 0; - right: 0; + > .line-badge { + position: absolute; right: 0; top: 0; padding: 3px 4px 2px 6px; font-size: 12px; font-weight: bold; color: white; } - &.poi-type-sighting { - .poke-poi-type-badge, - .poke-poi-type-line { - background: #123784; - } + /* Sightings only */ + > #sighting-side-section { + > poke-poi-bubble { width: 100px; height: 100px; margin-bottom: 10px; } + > div { text-align: center; } } - - &.poi-type-prediction { - .poke-poi-type-badge, - .poke-poi-type-line { - background: #149062; + > #sighting-main-section { + poke-rarity-badge { + margin-left: 10px; + vertical-align: 35%; } } + > #sighting-line, > #sighting-line-badge { background: #149062; } + + + /* Predictions only */ + > #prediction-line, > #prediction-line-badge { background: #123784; } - &.poi-type-mob { - .poke-poi-type-badge, - .poke-poi-type-line { - background: #ca1010; + /* Mobs only */ + > #mob-side-section { + justify-content: center; + + > img { + width: 100px; + display: block; } } + > #mob-line, > #mob-line-badge { background: #ca1010; } } } diff --git a/ionic2/app/components/poi-card/poi-card.component.ts b/ionic2/app/components/poi-card/poi-card.component.ts index 15757b8..31da2b2 100644 --- a/ionic2/app/components/poi-card/poi-card.component.ts +++ b/ionic2/app/components/poi-card/poi-card.component.ts @@ -7,8 +7,10 @@ import { ApiService } from '../../services/api.service'; import { POIBubbleComponent } from '../poi-bubble/poi-bubble.component'; import { PokeDetailPage } from '../../pages/poke-detail/poke-detail.page'; import { TypesComponent } from '../types/types.component'; -import { PokeSighting } from '../../models/poke-sighting'; import { RarityBadgeComponent } from '../rarity-badge/rarity-badge.component'; +import { Pokemon } from '../../models/pokemon'; +import { POI } from '../../models/poi'; +import { Sighting } from '../../models/sighting'; let Hammer = require('hammerjs'); @@ -33,7 +35,8 @@ export class POICardComponent implements OnInit { @ViewChild('slideCard') slideCard: ElementRef; - pokePOI: PokeSighting; + poi: POI; + pokemon: Pokemon; loadPokemon: Subscription; slideState: string = 'hidden'; @@ -43,28 +46,33 @@ export class POICardComponent implements OnInit { private events: Events) { } ngOnInit() { - this.events.subscribe('map:click', ([pokePOI]) => { - if (pokePOI instanceof PokeSighting) { - this.show(pokePOI); - } + this.events.subscribe('map:click', ([poi]) => { + this.show(poi); }); let hammer = new Hammer(this.slideCard.nativeElement); hammer.on('swipedown swipeleft swiperight', this.hide.bind(this)); } - show(pokePOI: PokeSighting) { + show(poi: POI) { this.cancelRequests(); - // Load pokemon for given pokemonId - this.loadPokemon = this.apiService.getPokemonById(pokePOI.pokemonId).subscribe(pokemon => { + this.poi = poi; + this.pokemon = null; + + // Load Pokemon for given pokemonId + if (poi instanceof Sighting) { + const sighting = poi; + this.loadPokemon = this.apiService + .getPokemonById(sighting.pokemonId) + .subscribe(pokemon => { + this.slideState = 'visible'; + this.pokemon = pokemon; + this.changeDetectorRef.detectChanges(); + }); + } else { this.slideState = 'visible'; - pokePOI.pokemon = pokemon; - this.pokePOI = pokePOI; - - // Change detection will only be triggered upon user interaction (e.g. moving the mouse cursor) - this.changeDetectorRef.detectChanges(); - }); + } } hide() { @@ -77,23 +85,15 @@ export class POICardComponent implements OnInit { } } - getPOITypeBadgeLabel(): string { - switch(this.pokePOI.getType()) { - case 'prediction': - return 'Pokemon Prediction'; - case 'sighting': - return 'Pokemon Sighting'; - case 'mob': - return 'Pokemon Mob'; - } - } - showDirections() { - this.events.publish('map:directions', this.pokePOI.getLocation()); + this.events.publish('map:directions', { + longitude: this.poi.longitude, + latitude: this.poi.latitude + }); } launchPokeDex() { - this.navCtrl.push(PokeDetailPage, {pokemon: this.pokePOI.pokemon}); + this.navCtrl.push(PokeDetailPage, { pokemon: this.pokemon }); } } diff --git a/ionic2/app/models/mob.ts b/ionic2/app/models/mob.ts new file mode 100644 index 0000000..18074d2 --- /dev/null +++ b/ionic2/app/models/mob.ts @@ -0,0 +1,17 @@ +import { POI } from './poi'; + +export class Mob extends POI { + clusterId: number; + tweets: MobTweet[]; + timestamp: number; + + type = 'mob'; +} + +export type MobTweet = { + id: string; + text: string; + latitude: number; + longitude: number; + timestamp: number; +} diff --git a/ionic2/app/models/poi.ts b/ionic2/app/models/poi.ts new file mode 100644 index 0000000..a47df4d --- /dev/null +++ b/ionic2/app/models/poi.ts @@ -0,0 +1,5 @@ +export abstract class POI { + latitude: number; + longitude: number; + type: string; +} diff --git a/ionic2/app/models/poke-mob.ts b/ionic2/app/models/poke-mob.ts deleted file mode 100644 index 3fe64ba..0000000 --- a/ionic2/app/models/poke-mob.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { PokePOI } from './poke-poi'; - -export class PokeMob extends PokePOI { - - clusterId: number; - tweets: PokeTweet[]; - coordinates: [number, number]; // [longitude, latitude] - timestamp: number; - isMob: boolean; - - getLocation(): {latitude:number, longitude:number} { - return { - latitude: this.coordinates[1], - longitude: this.coordinates[0] - }; - } - - getType(): string { - return 'mob'; - } - - static fromObject(object: Object): PokeMob { - let instance = Object.create(PokeMob.prototype); - return Object.assign(instance, object); - } -} - -export type PokeTweet = { - id: string; - text: string; - coordinates: [number, number]; // [longitude, latitude] - timestamp: number; -} diff --git a/ionic2/app/models/poke-poi.ts b/ionic2/app/models/poke-poi.ts deleted file mode 100644 index 5f0a3c0..0000000 --- a/ionic2/app/models/poke-poi.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Pokemon } from './pokemon'; - -export abstract class PokePOI { - - abstract getLocation(): {latitude:number, longitude:number}; - - abstract getType(): string; - - pokemon: Pokemon; -} diff --git a/ionic2/app/models/poke-prediction.ts b/ionic2/app/models/poke-prediction.ts deleted file mode 100644 index 6a4aa07..0000000 --- a/ionic2/app/models/poke-prediction.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { PokePOI } from './poke-poi'; -import { Pokemon } from './pokemon'; - -export class PokePrediction extends PokePOI { - - pokemonId: number; - pokemon: Pokemon; - - getLocation(): {latitude:number, longitude:number} { - return undefined; - } - - getType(): string { - return 'prediction'; - } - - static fromObject(object: Object): PokePrediction { - let instance = Object.create(PokePrediction.prototype); - return Object.assign(instance, object); - } -} diff --git a/ionic2/app/models/poke-sighting.ts b/ionic2/app/models/poke-sighting.ts deleted file mode 100644 index 4b60663..0000000 --- a/ionic2/app/models/poke-sighting.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { PokePOI } from './poke-poi'; -import { Pokemon } from './pokemon'; - -export class PokeSighting extends PokePOI { - - pokemonId: number; - pokemon: Pokemon; - source: string; - appearedOn: string; - - location: { - coordinates: [number, number]; // [longitude, latitude] - type: string; - }; - - getLocation(): {latitude:number, longitude:number} { - return { - latitude: this.location.coordinates[1], - longitude: this.location.coordinates[0] - }; - } - - getType(): string { - return 'sighting'; - } - - static fromObject(object: Object): PokeSighting { - let instance = Object.create(PokeSighting.prototype); - return Object.assign(instance, object); - } -} diff --git a/ionic2/app/models/pokemon.ts b/ionic2/app/models/pokemon.ts index 094e7ac..38b25f9 100644 --- a/ionic2/app/models/pokemon.ts +++ b/ionic2/app/models/pokemon.ts @@ -4,8 +4,8 @@ import { ConfigService } from '../services/config.service'; const configServiceInjector = ReflectiveInjector.resolveAndCreate([ConfigService]); const config: ConfigService = configServiceInjector.get(ConfigService); -export type PokeGender = 'm' | 'f' | 'g' | 'h'; -export type PokeAttackCategory = 'fast' | 'special'; +export type PokemonGender = 'm' | 'f' | 'g' | 'h'; +export type PokemonAttackCategory = 'fast' | 'special'; export type Attack = { type: string; name: string; @@ -35,7 +35,7 @@ export class Pokemon { appearanceLikelihood: number; gender: { - abbreviation: PokeGender; + abbreviation: PokemonGender; maleRatio: number; femaleRatio: number; breedable: boolean; diff --git a/ionic2/app/models/prediction.ts b/ionic2/app/models/prediction.ts new file mode 100644 index 0000000..ee6e068 --- /dev/null +++ b/ionic2/app/models/prediction.ts @@ -0,0 +1,8 @@ +import { POI } from './poi'; +import { Pokemon } from './pokemon'; + +export class Prediction extends POI { + pokemonId: number; + + type = 'prediction'; +} diff --git a/ionic2/app/models/sighting.ts b/ionic2/app/models/sighting.ts new file mode 100644 index 0000000..8f60b7d --- /dev/null +++ b/ionic2/app/models/sighting.ts @@ -0,0 +1,10 @@ +import { POI } from './poi'; +import { Pokemon } from './pokemon'; + +export class Sighting extends POI { + pokemonId: number; + source: string; + appearedOn: string; + + type = 'sighting'; +} diff --git a/ionic2/app/pages/map/map.page.html b/ionic2/app/pages/map/map.page.html index 3a1dc84..f7ea295 100644 --- a/ionic2/app/pages/map/map.page.html +++ b/ionic2/app/pages/map/map.page.html @@ -10,4 +10,10 @@ + + diff --git a/ionic2/app/pages/map/map.page.scss b/ionic2/app/pages/map/map.page.scss index e16929f..fa565d5 100644 --- a/ionic2/app/pages/map/map.page.scss +++ b/ionic2/app/pages/map/map.page.scss @@ -2,4 +2,10 @@ scroll-content { overflow: hidden; } -} \ No newline at end of file + + #artificial-mob-button { + position: absolute; + top: 10px; + left: 60px; + } +} diff --git a/ionic2/app/pages/map/map.page.ts b/ionic2/app/pages/map/map.page.ts index 6bd5f59..7473659 100644 --- a/ionic2/app/pages/map/map.page.ts +++ b/ionic2/app/pages/map/map.page.ts @@ -8,6 +8,7 @@ import { NavbarComponent } from '../../components/navbar/navbar.component'; import { ConfigService } from '../../services/config.service'; import { POICardComponent } from '../../components/poi-card/poi-card.component'; import { FilterService } from '../../services/filter.service'; +import { Mob } from '../../models/mob'; @Page({ template: require('./map.page.html'), @@ -29,7 +30,7 @@ export class MapPage { positionLoaded: Promise = null; constructor(private navParams: NavParams, - private config:ConfigService, + private config: ConfigService, private popoverCtrl: PopoverController, private events: Events, private filterService: FilterService) { @@ -75,4 +76,19 @@ export class MapPage { ev: $event }); } + + showArtificialMob() { + const mob = new Mob(); + mob.clusterId = 123; + mob.tweets = [ + { id: '1', text: 'hello', latitude: 1, longitude: 2, timestamp: 123 }, + { id: '2', text: 'world', latitude: 1, longitude: 2, timestamp: 123 }, + { id: '3', text: 'hello', latitude: 1, longitude: 2, timestamp: 123 }, + { id: '4', text: 'world', latitude: 1, longitude: 2, timestamp: 123 }, + ]; + mob.longitude = 48.184858933932304; + mob.latitude = 11.732025146484373; + mob.timestamp = 1476796355282; + this.events.publish('map:click', mob); + } } diff --git a/ionic2/app/services/api.service.ts b/ionic2/app/services/api.service.ts index 1f5e36b..4a3f1b6 100644 --- a/ionic2/app/services/api.service.ts +++ b/ionic2/app/services/api.service.ts @@ -2,10 +2,8 @@ import { Injectable } from '@angular/core'; import { Http, Response, URLSearchParams } from '@angular/http'; import { Observable } from 'rxjs'; -import { Pokemon } from '../models/pokemon'; -import { PokeSighting } from '../models/poke-sighting'; -import { PokeGender } from '../models/pokemon'; -import { PokeAttackCategory } from '../models/pokemon'; +import { Pokemon, PokemonGender, PokemonAttackCategory } from '../models/pokemon'; +import { Sighting } from '../models/sighting'; import { ConfigService } from './config.service'; import { TYPES } from './poke-types'; @@ -89,7 +87,7 @@ export class ApiService { * @param {string} gender - Gender of the Pokemon, allowed values: [m, f, g, h] * @returns {Observable} */ - getPokemonByGender(gender: PokeGender): Observable { + getPokemonByGender(gender: PokemonGender): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/gender/' + gender); return request.map(ApiService.handleResponse(Pokemon)); } @@ -130,7 +128,7 @@ export class ApiService { * @param {string} type - Type of the attack * @returns {Observable} */ - getPokemonByAttackType(category: PokeAttackCategory, type: string): Observable { + getPokemonByAttackType(category: PokemonAttackCategory, type: string): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/attack/' + category + '/type/' + type); return request.map(ApiService.handleResponse(Pokemon)); } @@ -141,7 +139,7 @@ export class ApiService { * @param {string} name - Name of the attack * @returns {Observable} */ - getPokemonByAttackName(category: PokeAttackCategory, name: string): Observable { + getPokemonByAttackName(category: PokemonAttackCategory, name: string): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/attack/' + category + '/name/' + name); return request.map(ApiService.handleResponse(Pokemon)); } @@ -152,7 +150,7 @@ export class ApiService { * @param {number} damage - Damage value of the attack * @returns {Observable} */ - getPokemonByAttackDamage(category: PokeAttackCategory, damage: number): Observable { + getPokemonByAttackDamage(category: PokemonAttackCategory, damage: number): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/attack/' + category + '/damage/' + damage); return request.map(ApiService.handleResponse(Pokemon)); } @@ -163,7 +161,7 @@ export class ApiService { * @param {number} id - ID of the evolved Pokemon, range 1-151 * @returns {Observable} */ - getPokemonByEvolutionId(category: PokeAttackCategory, id: number): Observable { + getPokemonByEvolutionId(category: PokemonAttackCategory, id: number): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/evolution/' + category + '/id/' + id); return request.map(ApiService.handleResponse(Pokemon)); } @@ -174,7 +172,7 @@ export class ApiService { * @param {string} name - Name of the evolved Pokemon * @returns {Observable} */ - getPokemonByEvolutionName(category: PokeAttackCategory, name: string): Observable { + getPokemonByEvolutionName(category: PokemonAttackCategory, name: string): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/evolution/' + category + '/name/' + name); return request.map(ApiService.handleResponse(Pokemon)); } @@ -194,57 +192,57 @@ export class ApiService { /** * Get all Pokemon sightings. - * @returns {Observable} + * @returns {Observable} */ - getAllSightings(): Observable { + getAllSightings(): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/sighting'); - return request.map(ApiService.handleResponse(PokeSighting)); + return request.map(ApiService.handleResponse(Sighting)); } /** * Get Pokemon sightings by Pokemon id. * @param {number} id - Pokemon ID, range 1-151 - * @returns {Observable} + * @returns {Observable} */ - getSightingById(id: number): Observable { + getSightingById(id: number): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/sighting/id/' + id); - return request.map(ApiService.handleResponse(PokeSighting, true)); + return request.map(ApiService.handleResponse(Sighting, true)); } /** * Get Pokemon sightings by specific source. * @param {string} source - Source of the data extraction, * allowed values: [twitter, pokesniper, pokeradar, skiplagged, pokecrew] - * @returns {Observable} + * @returns {Observable} */ - getSightingBySource(source: string): Observable { + getSightingBySource(source: string): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/sighting/source/' + source); - return request.map(ApiService.handleResponse(PokeSighting)); + return request.map(ApiService.handleResponse(Sighting)); } /** * Get Pokemon sightings at specific coordinates. * @param {Object} coordinates - Location coordinates specified by Longitude, Latitude - * @returns {Observable} + * @returns {Observable} */ - getSightingAtCoordinates(coordinates: {longitude:number, latitude:number}): Observable { + getSightingAtCoordinates(coordinates: {longitude:number, latitude:number}): Observable { let coords = coordinates.longitude + ',' + coordinates.latitude; let request = this.http.get(this.apiEndpoint + '/api/pokemon/sighting/coordinates/' + coords); - return request.map(ApiService.handleResponse(PokeSighting)); + return request.map(ApiService.handleResponse(Sighting)); } /** * Get Pokemon sightings between specific set of coordinates. * @param {Object} from - Coordinates of starting location specified by Longitude, Latitude * @param {Object} to - Coordinates of end location specified by Longitude, Latitude - * @returns {Observable} + * @returns {Observable} */ getSightingBetweenCoordinates(from: {longitude:number, latitude:number}, - to: {longitude:number, latitude:number}): Observable { + to: {longitude:number, latitude:number}): Observable { let fromCoords = from.longitude + ',' + from.latitude; let toCoords = to.longitude + ',' + to.latitude; let request = this.http.get(this.apiEndpoint + '/api/pokemon/sighting/coordinates/from/' + fromCoords + '/to/' + toCoords); - return request.map(ApiService.handleResponse(PokeSighting)); + return request.map(ApiService.handleResponse(Sighting)); } /** @@ -252,24 +250,24 @@ export class ApiService { * @param {string} timestamp - Starting time-stamp in UTC format * @param {string} range - w(Week), d(Day), h(Hour), m(Minute), * values can be specified preceding the letters. Example: 1w, 5d, 2h, 30m etc. - * @returns {Observable} + * @returns {Observable} */ - getSightingByTimeRange(timestamp: string, range: string): Observable { + getSightingByTimeRange(timestamp: string, range: string): Observable { let request = this.http.get(this.apiEndpoint + '/api/pokemon/sighting/ts/' + timestamp + '/range/' + range); - return request.map(ApiService.handleResponse(PokeSighting)); + return request.map(ApiService.handleResponse(Sighting)); } /** * Get Pokemon sightings by specified search parameters. * @param {Object} query - search parameters - * @returns {Observable} + * @returns {Observable} */ - searchSightings(query: Object): Observable { + searchSightings(query: Object): Observable { let params = ApiService.createSearchParamsFromObject(query); let request = this.http.get(this.apiEndpoint + '/api/pokemon/sighting/search', { search: params }); - return request.map(ApiService.handleResponse(PokeSighting)); + return request.map(ApiService.handleResponse(Sighting)); } /** diff --git a/ionic2/app/services/config.service.ts b/ionic2/app/services/config.service.ts index 62e1035..3111ff2 100644 --- a/ionic2/app/services/config.service.ts +++ b/ionic2/app/services/config.service.ts @@ -4,7 +4,6 @@ import env from '../env'; @Injectable() export class ConfigService { - get apiEndpoint(): string { if (env.BUILD_TARGET !== 'web' && env.API_ENDPOINT) { return env.API_ENDPOINT; @@ -25,4 +24,7 @@ export class ConfigService { } } + get isDevelopEnvironment(): boolean { + return env.BUILD_ENV === 'develop'; + } } diff --git a/ionic2/app/utils/poi-from-map-event-data.ts b/ionic2/app/utils/poi-from-map-event-data.ts new file mode 100644 index 0000000..cb9e28b --- /dev/null +++ b/ionic2/app/utils/poi-from-map-event-data.ts @@ -0,0 +1,34 @@ +import { POI } from '../models/poi'; +import { Sighting } from '../models/sighting'; +import { Mob, MobTweet } from '../models/mob'; + +export function poiFromMapEventData(rawData: any) : POI { + if ('source' in rawData) { + const sighting = new Sighting(); + sighting.latitude = rawData.location.coordinates[1]; + sighting.longitude = rawData.location.coordinates[0]; + sighting.pokemonId = rawData.pokemonId; + sighting.source = rawData.source; + sighting.appearedOn = rawData.appearedOn; + return sighting; + } else if ('clusterId' in rawData) { + const mob = new Mob(); + mob.clusterId = rawData.clusterId; + mob.timestamp = rawData.timestamp; + mob.latitude = rawData.coordinates[1]; + mob.longitude = rawData.coordinates[0]; + mob.tweets = rawData.tweets.map(t => { + return { + id: t.id, + text: t.text, + latitude: t.coordinates[1], + longitude: t.coordinates[0], + timestamp: t.timestamp + } + }) + return mob; + } else { + throw new Error('POI cannot be identified as ' + + 'Sighting or Mob:\n' + JSON.stringify(rawData)); + } +}