0% found this document useful (0 votes)
74 views

Integrated Development Environment

The document discusses different types of integrated development environments (IDEs) and applications. It describes what an IDE is and provides examples. It also discusses the history of IDEs and different features of IDEs. Finally, it outlines different types of applications like console, windows, client/server, web based, and enterprise applications.

Uploaded by

Ramu 2711
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views

Integrated Development Environment

The document discusses different types of integrated development environments (IDEs) and applications. It describes what an IDE is and provides examples. It also discusses the history of IDEs and different features of IDEs. Finally, it outlines different types of applications like console, windows, client/server, web based, and enterprise applications.

Uploaded by

Ramu 2711
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 62

Integrated Development Environment

1.INTRODUCTION

An integrated development environment (IDE) is an application that facilitates application


development. IDEs are designed to encompass all programming tasks in one application.
Therefore, IDEs offer a central interface featuring all the tools a developer needs, including the
following:

•Code editor: This feature is a text editor designed for writing and editing source code. Source
code editors are distinguished from text editors because they enhance or simplify the writing
and editing of code.

•Compiler: This tool transforms source code written in a human readable/writable language into a
form executable by a computer.

•Debugger: This tool is used during testing to help debug application programs.

•Build automation tools: These tools automate common developer tasks.

In addition, some IDEs might also include the following:

•Class browser: This tool is used to examine and reference the properties of an object-oriented
class hierarchy.

•Object browser: This feature is used to examine the objects instantiated in a running application
program.

•Class hierarchy diagram: This tool allows the programmer to visualize the structure of object-
oriented programming code.

The IDE may be a stand-alone application or may be included as part of one or more compatible
applications.

Examples of IDE: Pycharm, visual studio, phpstorm, intelliJ idea, Netbeans, eclipse, Rubymine.

History of IDEs
Before IDEs, developers wrote their programs in text editors. They would write and save an
application in a text editor; then run the compiler, taking note of the error messages; then go back
to the text editor to revise the code.

In 1983, Borland Ltd. acquired a Pascal compiler and released it as TurboPascal, which featured,
for the first time, an integrated editor and compiler.

While TurboPascal launched the idea of an integrated development environment, many believe
Microsoft’s Visual Basic (VB), launched in 1991, was the first real IDE. Visual Basic was built
on the older BASIC language, which was a popular programming language throughout the
1980s. With the emergence of Visual Basic, programming could be thought of in graphical
terms, and significant productivity benefits emerged.

Features of IDE

• Faster setup: Without an IDE interface, developers would need to spend time configuring
multiple development tools. With the application integration of an IDE, developers have
the same set of capabilities in one place, without the need for constantly switching tools.

• Faster development tasks: Tighter integration of all development tasks improves


developer productivity. For example, code can be parsed and syntax checked while being
edited, providing instant feedback when syntax errors are introduced. Developers don’t
need to switch between applications to complete tasks. In addition, the IDE’s tools and
features helps developers organize resources, prevent mistakes and take shortcuts.

• Continual learning: Staying up to date and educated is another benefit. For instance, the
IDE’s help topics are constantly being updated, as well as new samples, project
templates, etc. Programmers who are continually learning and current with best practices
are more likely to contribute value to the team and the enterprise, and to boost
productivity.

• Standardization: The IDE interface standardizes the development process, which helps
developers work together more smoothly and helps new hires get up to speed more
quickly.
Different Types of IDEs

There are a variety of different IDEs, catering to the many different ways developers work and
the different types of code they produce. There are IDEs that are designed to work with one
specific language, cloud-based IDEs, IDEs customized for the development of mobile
applications or for HTML, and IDEs meant specifically for Apple development or Microsoft
development.

Types of Applications

• Console Application:

A console application is a computer program designed to be used via a text-only computer


interface, such as a text terminal, the command line interface of some operating
systems (Unix, DOS, etc.) or the text-based interface included with most Graphical User
Interface (GUI) operating systems, such as the Win32 console in Microsoft Windows,
the Terminal in Unix. A user typically interacts with a console application using only
a keyboard and display screen, as opposed to GUI applications, which normally require the use
of a mouse or other pointing device. Many console applications such as command line
interpreters are command line tools, but numerous text-based user interface (TUI) programs also
exist.

• WindowsApplication:

Windows Application is a user build application that can run on a Windows platform. The
windows application has a graphical user interface that is provided by Windows Forms.
Windows forms provide a variety of controls including Button, Text Box, Radio Button, Check
Box, and other data and connection controls.

• Client/Server:
An application that runs on the client side and accesses the remote server for information is

called a client/server application. The client server always makes requests to the remote server to

get some information. The user interaction with the server is always through a user interface or

application on the client side.A client server application can be platform specific as well as cross

platform depending on the programming language used. The cross platform language makes an

application look native to the platform or the operation system of the client. The client/server

application is always installed on the client’s computer. A client server application uses a two-

tier architecture.

• Web Based Application:

A web application is a computer program that utilizes web browsers and web technology to
perform tasks over the internet.

Web applications are usually coded in browser-supported language such as JavaScript and
HTML as these languages rely on the browser to render the program executable. Some of the
applications are dynamic requiring server-side processing. Others are completely static with no
processing required at the server.

The web application requires a webserver to manage requests from the client, an application
server to perform the tasks requested and sometimes a database to store the information.
Application server technology ranges from ASP.Net Asp and ColdFusion to PHP and JSP.

• Enterprise Application:
In general, enterprise application software is large-scale software that is aimed to support or
solve the problems of an entire organization. This large-scale software allows for several
different user roles, and the roles define the actions a specific user can perform.

Web application runs on a web server like tomcat while enterprise application runs on an
application server like glassfish, jboss etc.

An enterprise application will contain enterprise beans(session/entity beans) and will run in
a J2EE Container which provides transaction and security services to the beans and it will be
named as .ear file. Whereas a web appliaction executes in a web-container like tomcat,
contains servlets/jsps alone and named with an extension of .war.

As more no. Of users increases we cant provide security to the application, remote client
cannot access the application, performance will be decreased, transactions cannot be
completed within specific time and so on.

The client tier in the three-tier architecture model is usually a web browser. Web
browser software processes and displays HTML resources, issues HTTP requests for
resources, and processes HTTP responses.
Jar—java archive file

A group of .class files

War—web archive

A group of files needed to develop a web application (Html,jsp,servlets) can be compressed


into a single zip file so that transportation, project delivery and deployment will be easy.

Ear—enterprise archive

A group of files needed to develop a enterprise application.

Anything from J2EE--- servlets, jsps,jsf,jms can be used

Types of Enterprise Applications


• Customer Relationship Management (CRM)

• Enterprise Resource Planning (ERP)

• Business Intelligence (BI)

• Business Continuity Planning (BCP)

• Enterprise Application Integration (EAI)

• Email marketing systems

• Payment processing system


• Enterprise Content Management

• Enterprise Messaging Systems (EMS)

• HR Management
Such organizations include businesses, schools, interest-based user groups, clubs, charities, and
governments. Enterprise software is an integral part of a (computer-based) information system.
Services provided by enterprise software are typically business-oriented tools, such as online
shopping, and Online payment processing, interactive product catalogue, automated billing
systems, security, Business Process Management, enterprise content management, IT service
management, customer relationship management, enterprise resource planning, business
intelligence, project management, collaboration, human resource management,
manufacturing, occupational health and safety, enterprise application integration, and enterprise
forms automation.

2. ECLIPSE IDE

Eclipse is an integrated development environment (IDE) used in computer programming, and is


the most widely used Java IDE. It contains a base workspace and an extensible plug-in system
for customizing the environment. Eclipse is written mostly in Java and its primary use is for
developing Java applications, but it may also be used to develop applications in
other programming languages via plug-ins.

• Console Application:

Program to take student name and student marks as input and display student name and
percentage of marks scored in console. To write console application:
1.open eclipse

2.click file tool ->new->javaproject

after click you can get bleow like screen:


now you can give file name at project name(here i am giving console)->it will active next
just click (like below screen)
after clicking next button it will show below like window
after above window just click finish button and its completion project creation
now you can create java file of your project for that just right click on your project-
>new->class after clicking you can get below like window
in the above sceen give namelike(file name here i was create like demo you can also
change package just replace package filed if you want but i didn't change here and also
check main of java at the time it will active finish button just click)its like below screen
in demo.java file i am writing below code

package console;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.Scanner;

public class demo {

public static void main(String[] args)throws IOException

{
// TODO Auto-generated method stub

System.out.println("input your name");

BufferedReader b=new BufferedReader(new InputStreamReader(System.in));

String name=b.readLine();

int marks[] = new int[6];

int i;

float total=0, avg;

Scanner scanner = new Scanner(System.in);

for(i=0; i<6; i++)

System.out.print("Enter Marks of Subject"+(i+1)+":");

marks[i] = scanner.nextInt();

total = total + marks[i];

scanner.close();

//Calculating average here

avg = total/6;

System.out.print("The "+name+" Grade is: ");

if(avg>=80)

{
System.out.print("A");

else if(avg>=60 && avg<80)

System.out.print("B");

else if(avg>=40 && avg<60)

System.out.print("C");

else

System.out.print("D");

after writting above file just save and click runbutton of eclipse-id

output:
• Windows Application

Write a Program to display login page.

To create window application first you need to download windowbuilder of eclipse then only we
can run window application on eclipseIDE.

Click help tool of eclipse->eclipse marketplace->search like windowbuilder->it will show you
like below and just click install->close that window and restart your eclipseIDE.(i was installed
in my eclipse)
Now go with new file->other->search like windowbuilder->just click Application Window (like
below)
in above screen name then click next(i was given name like Jlogin)->click finish button

Go to->Designphase->first select content pane of your application like(Absolute pane) like


below screen:

now edit window like below for that just drag the JLabel and JTextField ,JButton field to your
window its look like below screen.
first you should go components choose components and then drag to window like below screen:here i
was draging JLabel component to window

do same like to create login page after check your source phase also it will get below like code:

package simple;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JTextField;

import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.Font;

import javax.swing.JPasswordField;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

public class Jlogin {

protected static final String JoptionPane = null;

private JFrame frmLoginPage;

private JTextField textField;

private JPasswordField passwordField;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Jlogin window = new Jlogin();

window.frmLoginPage.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}
});

/**

* Create the application.

*/

public Jlogin() {

initialize();

/**

* Initialize the contents of the frame.

*/

private void initialize() {

frmLoginPage = new JFrame();

frmLoginPage.setTitle("login page");

frmLoginPage.setBounds(100, 100, 450, 300);

frmLoginPage.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frmLoginPage.getContentPane().setLayout(null);

textField = new JTextField();

textField.setBounds(149, 45, 116, 20);

frmLoginPage.getContentPane().add(textField);

textField.setColumns(10);

JLabel lblNewLabel = new JLabel("user name");

lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 13));

lblNewLabel.setBounds(51, 48, 69, 14);


frmLoginPage.getContentPane().add(lblNewLabel);

passwordField = new JPasswordField();

passwordField.setBounds(149, 86, 116, 20);

frmLoginPage.getContentPane().add(passwordField);

JLabel lblPassword = new JLabel("password");

lblPassword.setFont(new Font("Tahoma", Font.PLAIN, 13));

lblPassword.setBounds(50, 89, 70, 14);

frmLoginPage.getContentPane().add(lblPassword);

JButton btnLogin = new JButton("login");

btnLogin.addActionListener(new ActionListener() {

/*private void showMessageDialog(Object object, String string) {

// TODO Auto-generated method stub

}*/

});

btnLogin.setBounds(110, 151, 89, 23);

frmLoginPage.getContentPane().add(btnLogin);

Suppose if you want change the name of the Label ->click on that Label->go to properties and change
like below:
After creation of above like window just double click on login button it will create action lister for that
button.I am also editing that actionLister like if username is admin and password 1234 then it will
show message login success other wise login is failed.

package simple;

import java.awt.EventQueue;
import javax.swing.JFrame;

import javax.swing.JTextField;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import java.awt.Font;

import javax.swing.JPasswordField;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

public class Jlogin {

protected static final String JoptionPane = null;

private JFrame frmLoginPage;

private JTextField textField;

private JPasswordField passwordField;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Jlogin window = new Jlogin();

window.frmLoginPage.setVisible(true);

} catch (Exception e) {
e.printStackTrace();

});

/**

* Create the application.

*/

public Jlogin() {

initialize();

/**

* Initialize the contents of the frame.

*/

private void initialize() {

frmLoginPage = new JFrame();

frmLoginPage.setTitle("login page");

frmLoginPage.setBounds(100, 100, 450, 300);

frmLoginPage.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frmLoginPage.getContentPane().setLayout(null);

textField = new JTextField();

textField.setBounds(149, 45, 116, 20);

frmLoginPage.getContentPane().add(textField);

textField.setColumns(10);
JLabel lblNewLabel = new JLabel("user name");

lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 13));

lblNewLabel.setBounds(51, 48, 69, 14);

frmLoginPage.getContentPane().add(lblNewLabel);

passwordField = new JPasswordField();

passwordField.setBounds(149, 86, 116, 20);

frmLoginPage.getContentPane().add(passwordField);

JLabel lblPassword = new JLabel("password");

lblPassword.setFont(new Font("Tahoma", Font.PLAIN, 13));

lblPassword.setBounds(50, 89, 70, 14);

frmLoginPage.getContentPane().add(lblPassword);

JButton btnLogin = new JButton("login");

btnLogin.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String text=textField.getText();

@SuppressWarnings("deprecation")

String pass=passwordField.getText();

if(text.equals("admin")&& pass.equals("1234"))

JOptionPane.showMessageDialog(null,"login suceess");

else

{
JOptionPane.showMessageDialog(null,"wrong
username/password");

/*private void showMessageDialog(Object object, String string) {

// TODO Auto-generated method stub

}*/

});

btnLogin.setBounds(110, 151, 89, 23);

frmLoginPage.getContentPane().add(btnLogin);

}
• Client Server Application

Write a Program simple multiplication of client to server .

create new java project -->create two files like below:

server.java

import java.io.IOException;

import java.io.PrintStream;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.Scanner;

public class server

public static void main(String[] args) throws IOException

int port = 5631;


@SuppressWarnings("resource")

ServerSocket s1=new ServerSocket(port);

Socket ss=s1.accept();

@SuppressWarnings("resource")

Scanner sc= new Scanner(ss.getInputStream());

int number=sc.nextInt();

int temp=number*2;

PrintStream p=new PrintStream(ss.getOutputStream());

p.println(temp);

client.java:

import java.io.IOException;

import java.io.PrintStream;

import java.net.Socket;

import java.util.Scanner;

public class client {

public static void main(String args[]) throws IOException

int port=5631;

int number;

@SuppressWarnings("resource")

Scanner ss=new Scanner(System.in);


@SuppressWarnings("resource")

Socket s=new Socket("172.21.56.31",port);

@SuppressWarnings("resource")

Scanner s1 = new Scanner(s.getInputStream());

System. out.println("enter any number");

number=ss.nextInt();

PrintStream p=new PrintStream(s.getOutputStream());

p.println(number);

int temp=s1.nextInt();

System. out.println (temp);

output: first run server file later client file

enter any number 2

4
• Web Based Application

Create a login page and perform validations for username and password

If you want create web application after opening eclipse ->click file->new->Dynamic
webproject->click next->give name of the project(here i am giving demo2)->set apache to cat
server also(if you not have apache just click new runtime configuration and give path to store
apache software in your system)->Dynamic web module version like(2.5,3.0)->Once check
configuration version download same or not if it is ok then click next->it will show you src file
just click next->it will ask web.xml creation just click checkbox ->finish button
I was create file name demo2 you can below screen how it look like and I was created three jsp
files and one servlet file.(if you want create those file just rightclick on your project name -
>new->if you want jsp/servlet click that file)

In below file form tag action name your servlet name

index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<form method="post"action="Display">

user Name:<input type="text"name="uname">

Password:<input type="password"name="pass">

<input type="submit"value="login">

</form>

</body>

</html>
member.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

Welcome your logged in

</body>

</html>

error.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

Unsuccessful login

</body>

</html>
Display.java
import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* Servlet implementation class Display

*/

@WebServlet("/Display")

public class Display extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public Display() {

super();

// TODO Auto-generated constructor stub

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse


response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse


response) throws ServletException, IOException {

String name=request.getParameter("uname");

String password=request.getParameter("pass");
// TODO Auto-generated method stub

if(name.equals("admin")&&password.equals("123")) // if name equal to


admin and password 123 it will redirect to member.jsp other wise it will redirect to
error.jsp page

response.sendRedirect("Member.jsp");

else

response.sendRedirect("error.jsp");

web.xml
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

<display-name>demo2</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>
</web-app>

In the above just add your map pages in welcome-file-list tag

<welcome-file>index.jsp</welcome-file>(if your changing index.jsp)

Just add in web.xml file.

output: if you want run web application just right click on your project and
click->run as-> run on server -> check server name and your downlod version if it ok
then click next->it will show you project name just click your project name click
finish it will start your server.

After clicking server it will open on default browser like below


screen:
In above screen i was enter user name as admin and password 123 then it will show
like below screen(member.jsp file)

suppose if your enter user name as admin and password 12 (or)user name acvd
and password 123 then it will show like below screen(error.jsp file)
• connecting to database

Write program login page while giving user details it should store in database.

web with database:

• Download Mysql connector add that jar to java jrelib of next file

• create Dynamic project with web.xml file

• Download xamapp server also

1.Download Mysql connector :

after downloading connector add that jar to java jre->lib ->ext file.

2.Create Dynamic project with web.xml file same web application process(here i am creating
Regiter is the project name like below screen):
After creation project take new servlet file and edit below code :

RegisterServlet .java

package DataBase;

import javax.servlet.http.*;

import java.io.*;

import java.sql.*;

@SuppressWarnings("serial")

public class RegisterServlet extends HttpServlet

public void doGet(HttpServletRequest req,HttpServletResponse res)

try

//res.setContentType("text/html");

PrintWriter pw=res.getWriter();

@SuppressWarnings("unused")

String fname=req.getParameter("uname");

@SuppressWarnings("unused")

String lname=req.getParameter("lname");
Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root",
"");

PreparedStatement st=con.prepareStatement("insert into student values(?,?)");

st.setString(1, "fname");

st.setString(2, "lname");

int i= st.executeUpdate();

if(i>=1)

pw.println("registererd successfully");

catch(Exception e)

System.out.println(e); }

create one html file like below:

index.html
<!DOCTYPE html>

<html>

<head>

<meta charset="ISO-8859-1">

<title>Insert title here</title>

</head>

<body>
<form method="get"action="Display">

FirstName:<input type="text"name="uname">

LastName:<input type="text"name="lname">

<input type="submit"value="login">

</form>

</body>

</html>

web.xml
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"
version="3.0">

<servlet>

<servlet-name>register</servlet-name>

<servlet-class>DataBase.RegisterServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>register</servlet-name>

<url-pattern>/Display</url-pattern>

</servlet-mapping>

<display-name>Register</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

</web-app>

3.Download xamapp server


output:
clickstart buttonof apache and mysql server of xampp server and click admin button
also

After clicking admin it open server on in browser like below:


now click Databse it will redirect below like screen:

create database name as student(In registration.java i was written like


(jdbc:mysql://localhost:3306/student)):
create table like student you can see below screen:
click save on above screen and it will open below like screen just go databse again:
After completin of databse and table creation xampp go to eclipse just right click on your
application click Run as->run on server you will get below like screen
just click next button->it will show your application click finish button like below
it will open default browser below like:
just give the user details on above

after regitration completion you can see that data in database just click on
table like below:
it open table like below if you insert data:

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy