Search Results

Search found 41348 results on 1654 pages for 'java developer'.

Page 966/1654 | < Previous Page | 962 963 964 965 966 967 968 969 970 971 972 973  | Next Page >

  • JSF getter methods called BEFORE beforePhase fires

    - by Bill Leeper
    I got a recommendation to put all data lookups in the beforePhase for a given page, however, now that I am doing some deeper analysis it appears that some getter methods are being called before the beforePhase is fired. It became very obvious when I added support for a url parameter and I was getting NPEs on objects that are initialized in the beforePhase call. Any thoughts? Something I have set wrong. I have this in my JSP page: <f:view beforePhase="#{someController.beforePhaseSummary}"> That is only the 5th line in the JSP file and is right after the taglibs. Here is the code that is in the beforePhaseSummary method: public void beforePhaseSummary(PhaseEvent event) { logger.debug("Fired Before Phase Summary: " + event.getPhaseId()); if (event.getPhaseId() == PhaseId.RENDER_RESPONSE) { HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); if (request.getParameter("application_id") != null) { loadApplication(Long.parseLong(request.getParameter("application_id"))); } /* Do data fetches here */ } } The logging output above indicates that an event is fired. The servlet request is used to capture the url parameters. The data fetches gather data. However, the logging output is below: 2010-04-23 13:44:46,968 [http-8080-4] DEBUG ...SomeController 61 - Get Permit 2010-04-23 13:44:46,968 [http-8080-4] DEBUG ...SomeController 107 - Getting UnsubmittedCount 2010-04-23 13:44:46,984 [http-8080-4] DEBUG ...SomeController 61 - Get Permit 2010-04-23 13:44:47,031 [http-8080-4] DEBUG ...SomeController 133 - Fired Before Phase Summary: RENDER_RESPONSE(6) The logs indicate 2 calls to the getPermit method and one to getUnsubmittedCount before the beforePhase is fired.

    Read the article

  • best way to avoid sql injection

    - by aauser
    I got similar domain model 1) User. Every user got many cities. @OneToMany(targetEntity=adv.domain.City.class...) 2) City. Every city got many districts @OneToMany(targetEntity=adv.domain.Distinct.class) 3) Distintc My goal is to delete distinct when user press delete button in browser. After that controller get id of distinct and pass it to bussiness layer. Where method DistinctService.deleteDistinct(Long distinctId) should delegate deliting to DAO layer. So my question is where to put security restrictions and what is the best way to accomplish it. I want to be sure that i delete distinct of the real user, that is the real owner of city, and city is the real owner of distinct. So nobody exept the owner can't delete ditinct using simple url like localhost/deleteDistinct/5. I can get user from httpSession in my controller and pass it to bussiness layer. After that i can get all cities of this user and itrate over them to be sure, that of the citie.id == distinct.city_id and then delete distinct. But it's rather ridiculous in my opinion. Also i can write sql query like this ... delete from t_distinct where t_distinct.city_id in (select t_city.id from t_city left join t_user on t_user.id = t_city.owner_id where t_user.id = ?) and t_distinct.id = ? So what is the best practice to add restrictions like this. I'm using Hibernate, Spring, Spring MVC by the way.. Thank you

    Read the article

  • Problems in Binary Search Tree

    - by user2782324
    This is my first ever trial at implementing the BST, and I am unable to get it done. Please help The problem is that When I delete the node if the node is in the right subtree from the root or if its a right child in the left subtree, then it works fine. But if the node is in the left subtree from root and its any left child, then it does not get deleted. Can someone show me what mistake am I doing?? the markedNode here gets allocated to the parent node of the node to be deleted. the minValueNode here gets allocated to a node whose left value child is the smallest value and it will be used to replace the value to be deleted. package DataStructures; class Node { int value; Node rightNode; Node leftNode; } class BST { Node rootOfTree = null; public void insertintoBST(int value) { Node markedNode = rootOfTree; if (rootOfTree == null) { Node newNode = new Node(); newNode.value = value; rootOfTree = newNode; newNode.rightNode = null; newNode.leftNode = null; } else { while (true) { if (value >= markedNode.value) { if (markedNode.rightNode != null) { markedNode = markedNode.rightNode; } else { Node newNode = new Node(); newNode.value = value; markedNode.rightNode = newNode; newNode.rightNode = null; newNode.leftNode = null; break; } } if (value < markedNode.value) { if (markedNode.leftNode != null) { markedNode = markedNode.leftNode; } else { Node newNode = new Node(); newNode.value = value; markedNode.leftNode = newNode; newNode.rightNode = null; newNode.leftNode = null; break; } } } } } public void searchBST(int value) { Node markedNode = rootOfTree; if (rootOfTree == null) { System.out.println("Element Not Found"); } else { while (true) { if (value > markedNode.value) { if (markedNode.rightNode != null) { markedNode = markedNode.rightNode; } else { System.out.println("Element Not Found"); break; } } if (value < markedNode.value) { if (markedNode.leftNode != null) { markedNode = markedNode.leftNode; } else { System.out.println("Element Not Found"); break; } } if (value == markedNode.value) { System.out.println("Element Found"); break; } } } } public void deleteFromBST(int value) { Node markedNode = rootOfTree; Node minValueNode = null; if (rootOfTree == null) { System.out.println("Element Not Found"); return; } if (rootOfTree.value == value) { if (rootOfTree.leftNode == null && rootOfTree.rightNode == null) { rootOfTree = null; return; } else if (rootOfTree.leftNode == null ^ rootOfTree.rightNode == null) { if (rootOfTree.rightNode != null) { rootOfTree = rootOfTree.rightNode; return; } else { rootOfTree = rootOfTree.leftNode; return; } } else { minValueNode = rootOfTree.rightNode; if (minValueNode.leftNode == null) { rootOfTree.rightNode.leftNode = rootOfTree.leftNode; rootOfTree = rootOfTree.rightNode; } else { while (true) { if (minValueNode.leftNode.leftNode != null) { minValueNode = minValueNode.leftNode; } else { break; } } // Minvalue to the left of minvalue node rootOfTree.value = minValueNode.leftNode.value; // The value has been swapped if (minValueNode.leftNode.leftNode == null && minValueNode.leftNode.rightNode == null) { minValueNode.leftNode = null; } else { if (minValueNode.leftNode.leftNode != null) { minValueNode.leftNode = minValueNode.leftNode.leftNode; } else { minValueNode.leftNode = minValueNode.leftNode.rightNode; } // Minvalue deleted } } } } else { while (true) { if (value > markedNode.value) { if (markedNode.rightNode != null) { if (markedNode.rightNode.value == value) { break; } else { markedNode = markedNode.rightNode; } } else { System.out.println("Element Not Found"); return; } } if (value < markedNode.value) { if (markedNode.leftNode != null) { if (markedNode.leftNode.value == value) { break; } else { markedNode = markedNode.leftNode; } } else { System.out.println("Element Not Found"); return; } } } // Parent of the required element found // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (markedNode.rightNode != null) { if (markedNode.rightNode.value == value) { if (markedNode.rightNode.rightNode == null && markedNode.rightNode.leftNode == null) { markedNode.rightNode = null; return; } else if (markedNode.rightNode.rightNode == null ^ markedNode.rightNode.leftNode == null) { if (markedNode.rightNode.rightNode != null) { markedNode.rightNode = markedNode.rightNode.rightNode; return; } else { markedNode.rightNode = markedNode.rightNode.leftNode; return; } } else { if (markedNode.rightNode.value == value) { minValueNode = markedNode.rightNode.rightNode; } else { minValueNode = markedNode.leftNode.rightNode; } if (minValueNode.leftNode == null) { // MinNode has no left value markedNode.rightNode = minValueNode; return; } else { while (true) { if (minValueNode.leftNode.leftNode != null) { minValueNode = minValueNode.leftNode; } else { break; } } // Minvalue to the left of minvalue node if (markedNode.leftNode != null) { if (markedNode.leftNode.value == value) { markedNode.leftNode.value = minValueNode.leftNode.value; } } if (markedNode.rightNode != null) { if (markedNode.rightNode.value == value) { markedNode.rightNode.value = minValueNode.leftNode.value; } } // MarkedNode exchanged if (minValueNode.leftNode.leftNode == null && minValueNode.leftNode.rightNode == null) { minValueNode.leftNode = null; } else { if (minValueNode.leftNode.leftNode != null) { minValueNode.leftNode = minValueNode.leftNode.leftNode; } else { minValueNode.leftNode = minValueNode.leftNode.rightNode; } // Minvalue deleted } } } // //////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (markedNode.leftNode != null) { if (markedNode.leftNode.value == value) { if (markedNode.leftNode.rightNode == null && markedNode.leftNode.leftNode == null) { markedNode.leftNode = null; return; } else if (markedNode.leftNode.rightNode == null ^ markedNode.leftNode.leftNode == null) { if (markedNode.leftNode.rightNode != null) { markedNode.leftNode = markedNode.leftNode.rightNode; return; } else { markedNode.leftNode = markedNode.leftNode.leftNode; return; } } else { if (markedNode.rightNode.value == value) { minValueNode = markedNode.rightNode.rightNode; } else { minValueNode = markedNode.leftNode.rightNode; } if (minValueNode.leftNode == null) { // MinNode has no left value markedNode.leftNode = minValueNode; return; } else { while (true) { if (minValueNode.leftNode.leftNode != null) { minValueNode = minValueNode.leftNode; } else { break; } } // Minvalue to the left of minvalue node if (markedNode.leftNode != null) { if (markedNode.leftNode.value == value) { markedNode.leftNode.value = minValueNode.leftNode.value; } } if (markedNode.rightNode != null) { if (markedNode.rightNode.value == value) { markedNode.rightNode.value = minValueNode.leftNode.value; } } // MarkedNode exchanged if (minValueNode.leftNode.leftNode == null && minValueNode.leftNode.rightNode == null) { minValueNode.leftNode = null; } else { if (minValueNode.leftNode.leftNode != null) { minValueNode.leftNode = minValueNode.leftNode.leftNode; } else { minValueNode.leftNode = minValueNode.leftNode.rightNode; } // Minvalue deleted } } } } // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } } } } } } public class BSTImplementation { public static void main(String[] args) { BST newBst = new BST(); newBst.insertintoBST(19); newBst.insertintoBST(13); newBst.insertintoBST(10); newBst.insertintoBST(20); newBst.insertintoBST(5); newBst.insertintoBST(23); newBst.insertintoBST(28); newBst.insertintoBST(16); newBst.insertintoBST(27); newBst.insertintoBST(9); newBst.insertintoBST(4); newBst.insertintoBST(22); newBst.insertintoBST(17); newBst.insertintoBST(30); newBst.insertintoBST(40); newBst.deleteFromBST(5); newBst.deleteFromBST(4); newBst.deleteFromBST(9); newBst.deleteFromBST(10); newBst.deleteFromBST(13); newBst.deleteFromBST(16); newBst.deleteFromBST(17); newBst.searchBST(5); newBst.searchBST(4); newBst.searchBST(9); newBst.searchBST(10); newBst.searchBST(13); newBst.searchBST(16); newBst.searchBST(17); System.out.println(); newBst.deleteFromBST(20); newBst.deleteFromBST(23); newBst.deleteFromBST(27); newBst.deleteFromBST(28); newBst.deleteFromBST(30); newBst.deleteFromBST(40); newBst.searchBST(20); newBst.searchBST(23); newBst.searchBST(27); newBst.searchBST(28); newBst.searchBST(30); newBst.searchBST(40); } }

    Read the article

  • Solr autocommit and autooptimize?

    - by Camran
    I will be uploading my website to a VPS soon. It is a classifieds website which uses Solr integrated with MySql. Solr is updated whenever a new classified is put or deleted. I need a way to make the commit() and optimize() be automated, for example once every 3 hours or so. How can I do this? (Details Please) When is it ideal to optimize? Thanks

    Read the article

  • Can anybody explain the code

    - by girinie
    class giri{ public static void main(String args[]) { int x = 17; int y = 013; System.out.println("x+y = " + x+y); } } When I run the program I get the output 1711. Can anybody tell me How do I get 1711

    Read the article

  • How to have a run in an Service?

    - by user1497664
    I have implemented an service that runs in a seperate process. This service contains a separate thread where i have a socket connection. This thread has a run() where it is continuously sending data to the port. My problem is after triggering the run() in the thread i don't get any contact with it anymore, i can see in the program that have open the socket that it consciously sends the data but the idea was that i while it is running i could change data that it sends for an example time. here is my run in the external thread: public void run() { if(run) { // Team and player names message is sent when entering in a game setBaseMessage(); SendMessageToCOMPort(base_message + CalculateCRC(base_message)); sleep(); // waits for 100 ms } } Anyone have any idea what might be wrong ?

    Read the article

  • Detecting mouse enter/exit events anywhere on JPanel

    - by Mano
    Hi, Basically there is a JPanel on which I want to know when the mouse enters the area of the JPanel and exits the area of the JPanel. So I added a mouse listener, but if there are components on the JPanel and the mouse goes over one of them it is detected as an exit on the JPanel, even though the component is on the JPanel. I was wondering whether anyone knows any way to solve this problem without doing something like adding listeners onto all components on the JPanel?

    Read the article

  • Background image JFrame with content

    - by Petr Safar
    I have a JFrame with BorderLayout, there are panels on all sides (North, East ,...). In the panels there are labels and buttons mostly. Now I want the frame to have a background image, some research told me that i had to change the content pane of my frame. When I try this however, the content gets put in the background and isn't visible. Also, I don't know how to resize the image if the frame is resized. Is there an easy fix for this or will I have to rework most of my code?

    Read the article

  • Any way to make a generic List where I can add a type AND a subtype?

    - by user383178
    I understand why I cannot do the following: private class Parent { }; private class Child extends Parent { }; private class GrandChild extends Child { }; public void wontCompile(List<? extends Parent> genericList, Child itemToAdd) { genericList.add(itemToAdd); } My question is there ANY practical way to have a typesafe List where you can call add(E) where E is known to be only a Parent or a Child? I vaguely remember some use of the "|" operator as used for wildcard bounds, but I cannot find it in the spec... Thanks!

    Read the article

  • Configuring servlet for using spring

    - by dominolog
    Hello How to configure my web application in Eclipse (based on Servlets and deployed to Tomcat) to use Spring framework. I need only IoC container (Beans only and ApplicationContext), not Spring MVC. How to configure web.xml for this? Regards

    Read the article

  • Show menu when view is long pressed

    - by swift1691
    I've been looking around on the internet regarding my question but I couldn't find a straight answer. Is it possible to create a non-blocking menu similar to the overflow menu found in Android 4.0+ when a view is long pressed? I have a number of LinearLayout instances which have an OnLongClickListener which brings up a context menu, but it's not exactly what I am looking for. I was hoping for a smoother menu which is brought up when one of these instances is clicked, and removed when the user clicks outside of the menu's region. This is very similar to the way the overflow menu behaves in the Android ActionBar. So to sum up, is it possible to replicate the look-and-fell and the behavior of the overflow menu when using context menus? Here's hoping I don't have to jump through hoops to get the implementation that I desire. Thanks in advance. EDIT: After some digging I've found the PopupMenu which is exactly what I was looking for however it works only on devices running Honeycomb and above. Does anyone know of a way with which I can replicate this menu behavior in older versions of Android without using blocking windows like dialogs?

    Read the article

  • Figuring out QuadCurveTo's parameters

    - by Fev
    Could you guys help me figuring out QuadCurveTo's 4 parameters , I tried to find information on http://docs.oracle.com/javafx/2/api/javafx/scene/shape/QuadCurveTo.html, but it's hard for me to understand without picture , I search on google about 'Quadratic Bezier' but it shows me more than 2 coordinates, I'm confused and blind now. I know those 4 parameters draw 2 lines to control the path , but how we know/count exactly which coordinates the object will throught by only knowing those 2 path-controller. Are there some formulas? import javafx.animation.PathTransition; import javafx.animation.PathTransition.OrientationType; import javafx.application.Application; import static javafx.application.Application.launch; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.MoveTo; import javafx.scene.shape.Path; import javafx.scene.shape.QuadCurveTo; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; import javafx.util.Duration; public class _6 extends Application { public Rectangle r; @Override public void start(final Stage stage) { r = new Rectangle(50, 80, 80, 90); r.setFill(javafx.scene.paint.Color.ORANGE); r.setStrokeWidth(5); r.setStroke(Color.ANTIQUEWHITE); Path path = new Path(); path.getElements().add(new MoveTo(100.0f, 400.0f)); path.getElements().add(new QuadCurveTo(150.0f, 60.0f, 100.0f, 20.0f)); PathTransition pt = new PathTransition(Duration.millis(1000), path); pt.setDuration(Duration.millis(10000)); pt.setNode(r); pt.setPath(path); pt.setOrientation(OrientationType.ORTHOGONAL_TO_TANGENT); pt.setCycleCount(4000); pt.setAutoReverse(true); pt.play(); stage.setScene(new Scene(new Group(r), 500, 700)); stage.show(); } public static void main(String[] args) { launch(args); } } You can find those coordinates on this new QuadCurveTo(150.0f, 60.0f, 100.0f, 20.0f) line, and below is the picture of Quadratic Bezier

    Read the article

  • create jar file with images and database

    - by Samurai
    Hi I am using NetBeans IDE and I have my images (what I am using in my project) in a folder named Images. When I am building jar it doesn't take that images. The code I am using to set image is, buttonObj.setIcon(new ImageIcon("\Images\a.jpg") any help please.

    Read the article

  • No exit option if something is running

    - by max
    How can I catch something going on if the user chooses the exit option from a menu? I mean I'd like to be able to manage the event of a user who is going to close the application but some activity is being performed so he/she shouldn't be able to exit. Here's the code I wrote. In a nutshell : recording is being performed -- user clicks exit -- WARNING "Process is running you can't do it"(The process goes on) nothing is running -- user clicks exit -- application closes Is it possible to solve the problem by just adding a few lines of code without having to rewrite the entire program? thanks very much in advance. MAX exitAction = new AbstractAction("Exit") { public void actionPerformed(ActionEvent e) { System.exit(0); } }; exitAction.putValue(Action.NAME, "Exit"); // description exitAction.putValue(Action.SHORT_DESCRIPTION, "Exit application");

    Read the article

  • Directories with random numbers as foldername being created that contain .ser files

    - by Dur4ndal
    Hi all: So in our server there are folders being generated with random names (such as "7nxxd", "tpy16q"). Inside each of these is the same subdirectory structure: <randomfilename>/.tld_cache/WEB-INF/tld/ c.tld/ fn.tld/ spring-form.tld/ fmt.tld/ spring.tld/ tiles-jsp.tld/ Each of these directories has 2 files: crc.ser and des.ser. Why are these files being created? Is there a way to specify the directory that they get written to besides the random name?

    Read the article

  • isAlive problem..Help to understand how it works

    - by max
    I get this error: "non-static method isAlive() cannot be referenced from a static context" what's wrong with this code..please. I'd like to detect if the thread is alive... Any help in terms of code will be highly appreciated..thanks max class RecThread extends Thread { public void run() { recFile = new File("recorded_track.wav"); // Output file type AudioFileFormat.Type fileType = null; fileType = AudioFileFormat.Type.WAVE; // if rcOn =1 thread is alive int rcOn; try { // starts recording targetDataLine.open(audioFormat); targetDataLine.start(); AudioSystem.write(new AudioInputStream(targetDataLine), fileType, recFile); if (RecThread.isAlive() == true) { rcOn =1; } else { rcOn =0; } } catch (Exception e) { showException(e); } // update actions recAction.setEnabled(true); stopRecAction.setEnabled(false); } }

    Read the article

  • Redirect from docroot to an external url in glassfish

    - by tim_wonil
    I've googled around and only found solution where they suggest putting an apache httpd in front of glassfish. Sure, that works. But what if I do not wish to/cannot put any thing in front of glassfish? Without using the index.jsp in the docroot of the domain to have something like: <% String redirectURL = "http://stackoverflow.com/"; response.sendRedirect(redirectURL); %> Can I make browser to be redirected when I point it to: http://my.glassfish.domain/ ?

    Read the article

  • How to move positions within an array?

    - by Jade Mulholland
    A program that simply moves array elements. Two variables: userInputVariable and blankSpaceVariable. I have a 2D array named table. Defined as table[userInputVariable + 1][6] I am printing out this array in a table format, and the far left column is numbered by whatever number the user entered at the beginning of the program. I then ask the user where they would like to enter a blank space within the array. This blank space acts like a divider for all the other information in the array. For example, if the user enters 10 at the start for the userInputVariable, and then enters 5 for the blank space. Once printed, the numbers should go like this: 1, 2, 3, 4, --, 5, 6, 7, 8, 9, 10. My plan has been to create a for loop and try to move all the numbers in the array back a position starting from the blank space variable. What I currently have, but does not work: for (int i = blankSpaceVariable; i < table.length - 1; i++) { table[i] = table[i + 1]; } table[blankSpaceVariable] = "--"; With my current code, the numbers go like this: 1, 2, 3, 4, 6, 7, 8, 9, 10 Tried completing this a few different ways also, but the other info within my 2D array didn't move with the numbers. So I thought that this approach can hopefully move all the info within my 2D array down, and make way for a blank section. All help is greatly appreciated!

    Read the article

  • Circular increment: Which is "better"?

    - by Helper Method
    When you have a circular buffer represented as an array, and you need the index to wraparound (i.e., when you reach the highest possible index and increment it), is it "better" to: return (i++ == buffer.length) ? 0: i; Or return i++ % buffer.length; Has using the modulo operator any drawbacks? Is it less readable than the first solution?

    Read the article

  • which design choose? - pros and cons

    - by Guarava Makanili
    Which of these 3 approches would choose and why? // This is the one I would choose class Car { } class FeeCalculator { public double calculateFee(Car car) { return 0; } } // in that case the problem might be when we use ORM framework and we try to invoke save with parameter Car class Car { private FeeCalculator calculator; public double calculateFee() { return calculator.calculateFee(this); } } class FeeCalculator { public double calculateFee(Car car) { return 0; } } // in that case the problem mentioned above is solved, but I don't like this design class Car { public double calculateFee(FeeCalculator calculator) { return calculator.calculateFee(this); } } class FeeCalculator { public double calculateFee(Car car) { return 0; } }

    Read the article

  • JLabel wont change color twice

    - by Aly
    Hi, I have the following code: public class Test extends JFrame implements ActionListener{ private static final Color TRANSP_WHITE = new Color(new Float(1), new Float(1), new Float(1), new Float(0.5)); private static final Color TRANSP_RED = new Color(new Float(1), new Float(0), new Float(0), new Float(0.1)); private static final Color[] COLORS = new Color[]{ TRANSP_RED, TRANSP_WHITE}; private int index = 0; private JLabel label; private JButton button; public Test(){ super(); setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); label = new JLabel("hello world"); label.setOpaque(true); label.setBackground(TRANSP_WHITE); getContentPane().add(label); button = new JButton("Click Me"); button.addActionListener(this); getContentPane().add(button); pack(); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource().equals(button)){ label.setBackground(COLORS[index % (COLORS.length - 1)]); } } public static void main(String[] args) { new Test(); } } When I run it I get the label with the TRANSP_WHITE background and then when I click the button this color changes to TRANSP_RED but when I click it again I see no change in color. Does anyone know why? Thanks

    Read the article

  • JPA polymorphic oneToMany

    - by bob
    I couldn't figure out how to cleanly do a tag cloud with JPA where each db entity can have many tags. E.g Post can have 0 or more Tags User can have 0 or more Tags Is there a better way in JPA than having to make all the entities subclass something like Taggable abstract class? Where a a Tag entity would reference many Taggables. thank you

    Read the article

  • program to determine number of duplicates in a sentence

    - by bhavna raghuvanshi
    public class duplicate { public static void main(String[] args)throws IOException { System.out.println("Enter words separated by spaces ('.' to quit):"); Set<String> s = new HashSet<String>(); Scanner input = new Scanner(System.in); while (true) { String token = input.next(); if (".".equals(token)) break; if (!s.add(token)) System.out.println("Duplicate detected: " + token); } System.out.println(s.size() + " distinct words:\n" + s); } } my program detects and prints duplicate words but i need to print the number of duplicate words also. pls help me do it.

    Read the article

< Previous Page | 962 963 964 965 966 967 968 969 970 971 972 973  | Next Page >