Samstag, Mai 31
jeg er udhvilet og en danskopgave rigere. det er fedt. i går var kold, men i virkeligheden lige det jeg havde brug for - tak! min økonomi slikker bunden, og det er ikke helt fedt, når jeg bare godt lige kunne tænke mig de der sko, ing. så hvis du har lyst til at give mig 400 kr, så skal du være hjertelig velkommen!!
Freitag, Mai 30
lige nu forestiller jge mig en god, stor og varm seng, hvori jeg kan ligge ligeså længe jeg vil. jeg forestiller mig en kølig sommeraften med en god ven og en kold øl. men det er forvrenget. i virkeligheden har jeg 4½ timers søvn til en meget træt krop, og en forbandelse over en danskopgave, som jeg tror er færdig nu. det er vel næsten naturlov, at opgaver skal skrives færdige om natten. sov sødt på jh's bord om fem timer og tre kvarter. vi ses aldrig mere (det er også løgn).
Donnerstag, Mai 29
Mittwoch, Mai 28
hvor meget kan man vide om folk? kender vi overhovedet hinanden? for når jeg ser på dig, ser jeg jo en person. men hvem ser du selv? og hvem ser du, når du kigger på mig? jeg kunne godt tænke mig at kende migselv. jeg kunne godt tænke at se mig selv fra flere vinkler. for jeg er sikker på, jeg ikke er ens set fra højre og fra venstre. og slet ikke indefra. du kan se min højre og min venstre, men det er dig umuligt at se mig indefra. og jeg kan ikke se dig. jeg ved, jeg skjuler mange ting, og jeg ved, det ikke er alt jeg får ud. men måske har du mere? måske skjuler du et ekstra liv? kender jeg dig?
det synes jeg er underligt at tænke på.
det synes jeg er underligt at tænke på.
Dienstag, Mai 27
fra nu af og 50 timer frem hedder mit liv danskopgave. jeg vil gøre mit bedste (og det skal fandme være toppen), og jeg vil skrive om forestillinger. om per flys, mediernes og mine egne. først da håber jeg, jeg er glad og tilfreds, og jeg vil cykle i skole og lægge mine gennemskrevede papirer på bordet og glæde mig til sol og sommer.
jeg glæder mig til om 33 dage og 14 timer. jeg glæder mig til danskopgave er skrevet. jeg glæder mig til at jeg en dag får min egen lette lejlighed. jeg glæder mig til det værste er overstået. jeg glæder mig til at græde mine sidste tårer. jeg glæder mig til sol og sommer. jeg glæder mig til en ny kjole. jeg glæder mig til 2.g. jeg glæder mig til livet og glæden og sorgen og kærligheden.
Montag, Mai 26
rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod rod
Abonnieren
Posts (Atom)