Hierarchy of Exception classes Object All exception types are subclasses of the built-in class Throwable. Throwable Throwable has two subclasses, they are: EErroxrception: To handle excepEtixocnepatliocnonditions that user programs should catch. AWTError ARunnitmipmSoeQrEtLaxEncxtecspeutpbtiicoolnna,sswohficEhxcinecpltuiodnesisdRivuinstioimnebEyxczeeprtoion and invaClildasasrNraoytFionudnedxEinxcge.ption ThreadDeath … Erro…r: To handle exceptional conditions that are not expected to be caught uAnridthemrenticoErxmceapltion circumstances. i.e. stack oveNruflllPooiwnterException … Slide 101 of 92 Copyright © 2020
Hierarchy of Exception classeExsce3pt-io3n Description Exception Root class of exception hierarchy RuntimeException Base class for many java.lang exceptions ArithmeticException Arithmatic error condition, such as divide by zero IllegalArgumentException Method received illegal argument ArrayIndexOutOfBoundEx Array size is less or greater than actual array size ception NullPointerException Attempt to access null object member SecurityException Security settings do not allow operation ClassNotFoundException Unable to load requested class NumberFormatException Invalid conversion of a string to a numeric float IOException Root class for I/O exceptions FileNotFoundException Unable to locate a file EOFException End of file IllegalAccessException Access to a class denied NoSuchMethodException Requested method does not exist InterruptedException Thread interrupted Slide 102 of 92 Copyright © 2020
try and catch blocks 2-1 Block of code Unit try Throws Catch Exception Program control Program continues Copyright © 2020 Normally after Executing catch Slide 103 of 92
try and catch blocks 2-2 odclipvaesirss/saMpUit*****/}*pnreEoa*/*rdopssinnxt@*T@@o2ttubah.cihprpt)objtgeceCiaeaSoerltpsotrcreiec}pE}Sp/rtdtiaunat{ctrxyuy*ainmrmsmesotbsco*ccottnedhstlet{afkonrotoetpeieS/iCttRchpuIpETfamtccy*ncoraateocextrti.tshnryeildtrcraeieoectTsxscowaeaascdrlnhret(ceuginrpncuRaremeErnedlld.etdlvAas..sxued(aln1i2otrispouvccp){t*eoi.rsilautecteirr/indietAtrtpoi(seaRsa*nrhd.irtofttam/timap=.itnineuidcatleorbonsurseinhtboil*nhcamnennim(jben/lleado(bec\"jteatnrm(fE=tEl.r)lsiahi)oixixencnteensnccnca(s{ctxoaaeeEeulrskrcr{tlppwxelcoeeouttctuspipmrSiEieulceanttxoopialhriiirnntcstt/adnoni(ei)e/annidnpoo);d(sdve.dgtcn9eE1rii[ci{f,x,sv]o{uicoiinr0neffosaRr)epinirae;tntogidtiahnssoole)end:i{(\"n)t+; }deDfien}med}}eo.mirtneenotttS}eshut.torrrprdneirasnirutgnlei(tost)Su)tn=l;at:c;okEpTerxraaacnmed(1)p;/leop1erand2; // user Slide 104 of 92 Copyright © 2020
finally Block Execution flow of try, catch and finally blocks try block Exception catch block No Exception finally block Slide 105 of 92 Copyright © 2020
General form of exception-handling block try{ // block of code to monitor for errors methodGeneratingException(); } catch (Exception e) { // exception handler for Exception e } finally{ // block of code to be executed before try ends cleanup(); } Slide 106 of 92 Copyright © 2020
Multiple catch blocks • Single piece of code can generate more than one error. • When an exception is thrown, each catch statement is inspected in order, and the first one whose type matches that of the exception is executed. • After one catch statement executes, the others are bypassed. ……… try{ } catch(ArrayIndexOutOfBoundsException e) { } catch(Exception e) { } ………. Slide 107 of 92 Copyright © 2020
Nested try - catch blocks * All Rights ReservThis class demonstrate the nested try-catch statements. * class NestedException { /* Constructor. */ protected NestedException() { } /** This method test the format of the number Inner try * @param argument is used to store the value of args. executed first */ public test(String argumnet) { try { int num = args.length; /* Nested try block. */ try { int numValue = Integer.parseInt(args[0]); This is why exception System.out.println(\"The square of \" + args[0] + \"is \" handlers need to be nested + numValue * numValue); } catch (NumberFormatException nb) { /** Displaying the appropriate message, if exception * has occurred. */ System.out.println(\"Not a number! \"); } } catch (ArrayIndexOutOfBoundsException ne) { System.out.println(\"Please enter the number!!!\"); } public static void main(final String[] args) { NestedException obj = new NestedException(); obj.test(args[0]); }} Slide 108 of 92 Outer catch inspected in case inner try does not have a catch Copyright © 2020
Using throw & throws 2-1 Executable Program Statements Statement 1 Exception Statement 2 thrown throw ThrowableInstance HALT Statement 3 Exception Handler Slide 109 of 92 Copyright © 2020
Using throw & throws 2-2 Called Method Calling Method Can cause exceptions Guards against called method exceptions type calledmethod-name and handles them (parameter-list) throws exception-list type callingmethod-name { try { { // statements // body of method Calledmethod-name();} } catch(Exception e) { //statements} } Handle exceptions Handles exceptions Slide 110 of 92 Copyright © 2020
Summary • Whenever an error is encountered during run time, an Exception occurs. • A Java exception is an object that describes an exceptional condition that has occurred in a piece of code. • When an exceptional condition arises, an object representing that exception is created and thrown in the method that caused the error. • Java exception handling is managed using try, catch, throw, throws, and finally. • Program statements to monitor are contained within a try block. Code within catch block catches the exception and handles it. • Any code that absolutely must be executed before a method returns is put in a finally block. • To manually throw an exception, use the keyword throw. Any exception that is thrown out of a method must be specified by a throws clause. Slide 111 of 92 Copyright © 2020
Collection Framework java.util Package Slide 112 of 92 Copyright © 2020
Objectives Copyright © 2020 • Set Interface • HashSet • TreeSet • LinkedHashSet • Special Purpose implementation • EnumSet and CopyOnWriteArraySet • List Interface • ArrayList • LinkedList • Special Purpose implementation • CopyOnWriteArrayList • Map • HashMap • TreeMap • LinkedHashMap Slide 113 of 92
Collection Classes 2-1 An object of the Collection class groups multiple elements/objects into a single unit. • Collections are used to store, retrieve and manipulate data and to transmit data from one method to another. • Collection Framework is an unified architecture for representing and manipulating collections. Slide 114 of 92 Copyright © 2020
Collection Classes 2-2 Collection Framework is composed of three components. Interface Implementation Is abstract Is actual data types execution of representing collections interfaces Algorithms Copyright © 2020 Are methods that perform computations on objects that implement the interface Slide 115 of 92
Advantages of Collection Framework • Reduces programming effort by providing useful data structures and algorithms. • Increases program speed and quality since the implementation of each interface is interchangeable. • Allows interoperability among different APIs. • Extending or adapting a collection is easy. Slide 116 of 92 Copyright © 2020
Collection Framework Collection Set List AbstractSet SortedSet AbstractList AbstractSequentialList HashSet EnumSet CopyOnWriteArraySet TreeSet ArrayList LinkedList LinkedHashSet Slide 117 of 92 Copyright © 2020
HashSet • Use Hash table for storage • Store unique objects • Can store various objects • Doesn‘t arrange/sort objects • Information stored using Hashing • Same execution time irrespective of size of collection • Methods • add() • contains() • remove() • size() Slide 118 of 92 Copyright © 2020
LinkedHashSet • Extends HashSet • Same as HashSet • Data retrieval is in the manner as it inserted • Introduce from Java 1.4 Slide 119 of 92 Copyright © 2020
TreeSet Copyright © 2020 • Store unique objects • Information stored in Tree • Store similar types of objects • Arrange/sort objects • Methods • add() • contains() • remove() • size() • first() • last() Slide 120 of 92
EnumSet • Introduced in Java 1.5 • Specialized Set used with enum • All basic operations execute in constant time Slide 121 of 92 Copyright © 2020
CopyOnWriteArraySet • Available since Java 1.5 • Work with snap shot of CopyOnWriteArrayList • Thread safe Slide 122 of 92 Copyright © 2020
ArrayList Copyright © 2020 • An ArrayList object is a variable length array of object references. • It is used to create dynamic arrays. • Extends AbstractList and implements List interface. • ArrayLists are created with an initial size. • As elements are added, size increases and the array expands. • It gives better performance when accessing and iterating through objects. Slide 123 of 92
ArrayList 2-2 PlayerCspLoliasnyte(sr)Atr{rruayc=tnoewrsArroayfLiAstr(r);ayListArcIrnlaiatyiasLliiszsintagorbtewjeo:cts void sesaurbcLhi(s)tO{bj = new ArrayList(); } CoSSyynssttseetmmr..uoouuctt..tpporriirnnttllnn((\")*;****************D**e**s**c*r*i*p**t*i*o*n*****\" An ArrayList can store + \"***********************\"); void exStyrsatcetm(.)ou{t.println(\"Search for an object anodbrjeetcutsrno\"f different type AAArrrrrraaayyyLLLiiisssttt((()Cinot lsleizceti)on c) CCeTeCllhrrreeeeeemmaaaseettteeeinnzsssettssaaawnnaonirflaeleaarmgrargrarpdoaiyvtdwyyeleinAsalditsurcrttwtoaoobiylmtltheaLhacsiesgttetiiiaocvdraenrlon.alynysalitizsshete..voivdo}}iaddf}dd+S+S++SSSppSppo(iyyyyyS++SsSSS+S+rllyll)fSS}S+sss\"\"\"s\"ssyyuyyyysaaaayoyypttt*ttts\"\"sssb\"pss(yyyyt{\"sssrlS+\\\\eee*hee*l*Ltttttttpieeeee*tttay\"\"m*emmmm*hiee*eeaeenrrrmrlee*(eys\"SS...*..*mm*meysmmmatA.AAAmm*imS(t*eeof*oooont...*e*...yrrrro..*n.)e*yrruu*uuiuO*oooo*rooecrrruroo*otsm*eet*ttrttup*ubuuA*uurttaaaauuu*t{.*nn.s...*.t*ttj*trrttAry.yyyctt*teo*aapptp*ppr**.i.....r..p..*..t.mu*\\\\rrr*rr*p=pnppa*ppr=aaaarpr*pp.t*\"\"iiia*ii*rr*rytrrraddddirrr*o.*nn*nnnnip*.iii*iiy0ddnddi*=iiup*ii*ttdttt*nln*snntnn.;(((t(nnn*tr*ssllll*l*ttt*ithatta\"\"\"l\"ttt0*.i*n*nnlnn*llyl*zlelldcMSnVSll*;lpn*aa((a((*(nn*eenn*nndtea(een*nnrt*tt*\"\")s)\"(n(*((*(r(((r)rrnr((c*(il*;;*t*LFA)\"*e*\"\")\")n;teue\"*t)\"nn*pp**ai**Er*w;N;*e<nins;R*r*t(*oo*p*sr**xr+e**wnaa\"**e(\"\"sso**tstw**La**5\"\"a)*\"t<\"*)iis**t\"iry****I;)\");r*)*;ttio**sa*\"S*.*n);;pi;*\"*iit**co*icts*u)*tc;l*e*oo*ic*cu*stb*;*et*av+*nn**ouc-b\"***grye***r*nuLa)L*:\"*e+e*p*\"a\"\"*ri;i)**r+*orl*\")n*)as*ss\";*()b*Aa*+;c;*ntt*u*crj*y*+*ec*b+(*t{*ree*p*ef*l5*r*car*lp*or*is,*)ty*A*la*foosu**)*s.r*ya*fmtpb**;*sr*ey*t*lL**fia*re*htiai*a**zry*rA*ehnnys**\"oe.*Ar*edet*d*m(g*rrS*eOr**p)e*art*Sxb\"*A*ut;t*aayr*tjr**h(*ny.*ircr5*)r\"cec\"ti.*niala;*ittiln*gncty*nkArrad\"*go.\"ur+)ees*\"sh+r)ltx*\"iaa)a;oIO*zrnynf*ledL{d(\"d(Ai\"ea)vsrSx)tatreOa;a\"lfrtu)y(ey;en\"pwSaoee\"hf)roi)eacn;nhaly\")); } Searching the ArrayList for ExtraDctiisnpglaayipnogrttihoen of thecAornrtaenytLsiosfttahned Demonstratthieofinrs:t aEndxlaasmt opccleurr4ence storingAirt rinaythLeissetcond of an object using the ArrayList by using indexOSlfide(1)24 oaf 9n2d the CospyurigbhtL©i20s20t()
LinkedList 2-1 • LinkedList class is used to create a linked-list data structure. • Extends AbstractSequentialList and implements the List interface. • Constructors of LinkedList class are: Constructor Description LinkedList() Creates an empty linked list LinkedList(Collection Creates a linked list based on the c) elements of a given collection. Slide 125 of 92 Copyright © 2020
LinkedList 2-2 QueTuehTeesst(taa)rdL{ivstaObnjt=angeweLoinfkeduLissitn()g; A LinkedList object is LinkedLiniistiatliizsedthat it voihd}atesst(m) {ethods for access, retrieval and System.out.println(\"Adding data objects in the queue\"); deletion of data.enqueue(new String(\"Martina Navratilova\")); enqueue(new String(\"Serena Williams\")); LinkedListenqueue(new performs better whenString(\"Venus Williams\")); objects are enqueue(new String(\"Steffi Graff\")); added or removed.System.out.println(\"\\nThe queue contains:\"); System.out.println(\"\\n\" + starListObj); System.out.println(\"\\nRemoving data objects from the queue\"); try f{orSSyy(ssittneetmm..coonuuttt..=pprr0ii;nnttcllnnnt((\"\"\\<DneT4qh;ueecuqneutde+u+\"e)+c{odnetqauienuse:(\")));;toAdthduoeisbnLiLjgnRieigncneotkkmbtsehejodefedrvcLLoitinimssgst tthe concuespitnogfthe System.out.println(\"\\n\" + starListObj); Queuceo, tnhcaetpitsof } First-QInuFeiurset,-tOhuatt is } catch (Exception ex) { System.out.println(\"Error is: \" + ex); De}m}onstration: Example 5public void enqueue(Object obj) First-In First-Out public Objec{t dequeue() throws Exception { return starListObj.removeFirst(); } staSrliLdei1s2t6Oofb9j2 .addLast(obj); Copyright © 2020
CopyOnWriteArrayList • Available since Java 1.5 • Same as ArrayList • Work with snap shot of array Slide 127 of 92 Copyright © 2020
Iterator Interface • Used to navigate in Collection • Methods • hasNext() • next() • remove() Slide 128 of 92 Copyright © 2020
Map Interfaces and Classes Map Interfaces and Classes Map is an object and Keys should be Some maps can stores data in the form of unique but values can store null object a relationship between be duplicated for keys and keys and values values Slide 129 of 92 Copyright © 2020
Map Interfaces and Classes • It maps keys to values. • Each key can map to one value only. • It contains methods for basic operations, bulk operations and collection views. • SortedMap interface extends Map interface. • SortedMap interface maintains its entries in ascending order. Slide 130 of 92 Copyright © 2020
Map Interfaces and Classes 4-3 The classes that implement the map interfaces are: AbstractMap TreeMap Implements HashMap most of the Guarantees Used for that its map Hashtables interfaces. elements will Copyright © 2020 be sorted in Slide 131 of 92 ascending key order.
HashMap • Provides optional map operations. • Two parameters affect the performance of the instance of the HashMap. They are: • initial capacity: determines the capacity of the hash table when it is created • load factor: determines how full the hash table can become before its capacity is automatically increased. • It does not guarantee the order of its elements, that is, the order in which the iterator reads the HashMap is not constant. • Allows null values Slide 132 of 92 Copyright © 2020
TreeMap • Same as HashMap • It guarantees the order of its elements. • Allows null values Slide 133 of 92 Copyright © 2020
Map Interfaces and Classes 4-4 voidWfforScoerrql(tdiauwnosetosCnrcrcoseodyuuLC.snniosttu(tw=)n={0t(o;nScetrrowidunngHst[]a<wsiwhnooMrdrada).p{lne()n;gothb; cjoeuCcnrtte+a+o)te{fosbajHeHcaatsshhMaMp ap }// Get the next word voidCd/S/oitGsripenutlganthkyee(t)ysf{r=eqtwuhoerendc[cynoouufnttmh];e wboerdr of times a word appears. Inte//gDerisfrpelqauyetnhcey w= o(Inrdtesgaern)dwiotsrdList.get(key); /* I/f/ tchoerwreosrpdodnodesinngotfreexqisutesnincythe map TthreneMinaitpialsizoertferedqWueonrcdyLtiost1=enlseewinTcrreeemMeanpt i(twboyr1dList); */System.out.println(\"\\n***********************************\"); ifS(fyresqteumen.coyu=t.=pnriunltl)ln{(\"Calculating Frequency of WoTrhdesm\")e; thod checks for Sfryesqtueemnc.oyu=t.nperwinItnltne(g\"e*r*(*1*)*;******************************\\nth\")e; presence of the } eSlysest{em.out.println(sortedWordList); word and obtains the } int value = frequency.intValue(); value stored in Value by frequency = new Integer(value + 1); using the get() method. } Then it increments the wordList.put(key, frequency); Displays the contenvtaluuseinagndanpuotbsjetchteokfey } } TreeMap after popaunldatvinagluiet wbaitchkthine the data present in HthaeshoMbjaepctboyfuthsieng the Demonstration: Example 9 HashMap clpasust() method Slide 134 of 92 Copyright © 2020
LinkedHashMap • Extends HashMap • Same as HashMap • Data retrieval is in the manner as it inserted • Introduce from Java 1.4 Slide 135 of 92 Copyright © 2020
Java Data Base Connectivity java.sql package Slide 136 of 92 Copyright © 2020
Objectives • Discuss Java Database Connectivity (JDBC) • Describe the java.sql package in brief • Discuss types of JDBC drivers • Explain the anatomy of a JDBC program • Describe the PreparedStatement interface • Use ResultSet Interface Slide 137 of 92 Copyright © 2020
JDBC Java Application Java Application Programming Interface JDBC Communicates Database (Java Database Connectivity) Through API objects and methods Slide 138 of 92 Copyright © 2020
JDBC Architecture 2-1 Java Program JDBC Driver SQL Command Results Application Server Database Copyright © 2020 Slide 139 of 92
JDBC Architecture 2-2 Application layer Driver layer Implements Interfaces Driver Connection Statement ResultSet Slide 140 of 92 Copyright © 2020
Driver Types • Type 1 – JDBC ODBC Bridge • Type 2 – Native API partly Java • Type 3 – All Java Net Protocol • Type 4 – All Java Native Protocol Slide 141 of 92 Copyright © 2020
JDBC ODBC Driver Copyright © 2020 • driver translates all JDBC calls into ODBC calls and sends them to the ODBC driver. ODBC is a generic API. The JDBC-ODBC Bridge driver is recommended only for experimental use or when no other alternative is available Slide 142 of 92
Type -1 Driver Advantage Disadvantage • The JDBC-ODBC Bridge allows • Since the Bridge driver is not access to almost any database, written fully in Java, Type 1 since the database's ODBC drivers are not portable. drivers are already available. • A performance issue is seen as a JDBC call goes through the bridge to the ODBC driver, then to the database, and this applies even in the reverse process. They are the slowest of all driver types. • The client system requires the ODBC Installation to use the driver. • Not good for the Web Slide 143 of 92 Copyright © 2020
Native API/partly Java Copyright © 2020 • The distinctive characteristic of type 2 jdbc drivers are that Type 2 drivers convert JDBC calls into database-specific calls i.e. this driver is specific to a particular database. Some distinctive characteristic of type 2 jdbc drivers are shown below. Example: Oracle will have oracle native api Slide 144 of 92
Adv/Disadv • Advantage • Disadvantage • The distinctive characteristic of • Native API must be installed in type 2 jdbc drivers are that they the Client System and hence type are typically offer better 2 drivers cannot be used for the performance than the JDBC- Internet. ODBC Bridge as the layers of • Like Type 1 drivers, it‘s not communication (tiers) are less written in Java Language which than that of Type forms a portability issue. 1 and also it uses Native api • If we change the Database we which is Database specific. have to change the native api as it is specific to a database • Mostly obsolete now. • Usually not thread safe. Slide 145 of 92 Copyright © 2020
All Java Net Protocol Copyright © 2020 • Type 3 database requests are passed through the network to the middle-tier server. The middle-tier then translates the request to the database. If the middle- tier server can in turn use Type1, Type 2 or Type 4 drivers Slide 146 of 92
Advantage Disadvantage • This driver is server-based, so there is no need • It requires another server application to install for any vendor database library to be present and maintain. Traversing the recordset may on client machines. take longer, since the data comes through the • This driver is fully written in Java and hence backend server. Portable. It is suitable for the web. • There are many opportunities to optimize portability, performance, and scalability. • The net protocol can be designed to make the client JDBC driver very small and fast to load. • The type 3 driver typically provides support for features such as caching (connections, query results, and so on), load balancing, and advanced system administration such as logging and auditing. • This driver is very flexible allows access to multiple databases using one driver. • They are the most efficient amongst all driver types. Slide 147 of 92 Copyright © 2020
Native Protocol/All Java Protocol • The Type 4 uses java networking libraries to communicate directly with the database server Slide 148 of 92 Copyright © 2020
Adv / Disadv Advantage Disadvantage • The major benefit of using a type 4 jdbc • With type 4 drivers, the user needs a drivers are that they are completely different driver for each database written in Java to achieve platform independence and eliminate deployment administration issues. It is most suitable for the web. • Number of translation layers is very less i.e. type 4 JDBC drivers don't have to translate database requests to ODBC or a native connectivity interface or to pass the request on to another server, performance is typically quite good. • You don‘t need to install special software on the client or server. Further, these drivers can be downloaded dynamically. Slide 149 of 92 Copyright © 2020
Steps for Database Access Begin Import the java.sql Create a statement object Execute the package statement Load and register the driver Create a Connection object Close the Connection Close Statement object Close ResultSet object End Slide 150 of 92 Copyright © 2020
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355